1. 19 Sep, 2010 1 commit
  2. 18 Sep, 2010 2 commits
    • Tom Lane's avatar
      Make sure we wait for protocol-level EOF when ending binary COPY IN. · f906e078
      Tom Lane authored
      The previous coding just terminated the COPY immediately after seeing
      the EOF marker (-1 where a row field count is expected).  The expected
      CopyDone or CopyFail message just got thrown away later, since we weren't
      in COPY mode anymore.  This behavior complicated matters for the JDBC
      driver, and arguably was the wrong thing in any case since a CopyFail
      message after the marker wouldn't be honored.
      
      Note that there is a behavioral change here: extra data after the EOF
      marker was silently ignored before, but now it will cause an error.
      Hence not back-patching, although this is arguably a bug.
      
      Per report and patch by Kris Jurka.
      f906e078
    • Tom Lane's avatar
      Give a suitable HINT when an INSERT's data source is a RowExpr containing · af0161e5
      Tom Lane authored
      the same number of columns expected by the insert.  This suggests that there
      were extra parentheses that converted the intended column list into a row
      expression.
      
      Original patch by Marko Tiikkaja, rather heavily editorialized by me.
      af0161e5
  3. 17 Sep, 2010 3 commits
  4. 16 Sep, 2010 4 commits
    • Magnus Hagander's avatar
      Treat exit code 128 (ERROR_WAIT_NO_CHILDREN) as non-fatal on Win32, · 594419e7
      Magnus Hagander authored
      since it can happen when a process fails to start when the system
      is under high load.
      
      Per several bug reports and many peoples investigation.
      
      Back-patch to 8.4, which is as far back as the "deadman-switch"
      for shared memory access exists.
      594419e7
    • Tom Lane's avatar
      f7270a65
    • Tom Lane's avatar
      Fix bad grammar. · 7acf6f9b
      Tom Lane authored
      7acf6f9b
    • Tom Lane's avatar
      Fix two new-in-9.0 bugs in hstore. · cd55aa2e
      Tom Lane authored
      There was an incorrect Assert in hstoreValidOldFormat(), which would cause
      immediate core dumps when attempting to work with pre-9.0 hstore data,
      but of course only in an assert-enabled build.
      
      Also, ghstore_decompress() incorrectly applied DatumGetHStoreP() to a datum
      that wasn't actually an hstore, but rather a ghstore (ie, a gist signature
      bitstring).  That used to be harmless, but could now result in misbehavior
      if the hstore format conversion code happened to trigger.  In reality,
      since ghstore is not marked toastable (and doesn't need to be), this
      function is useless anyway; we can lobotomize it down to returning the
      passed-in pointer.
      
      Both bugs found by Andrew Gierth, though this isn't exactly his proposed
      patch.
      cd55aa2e
  5. 15 Sep, 2010 5 commits
  6. 14 Sep, 2010 3 commits
    • Tom Lane's avatar
      Fix join-removal logic for pseudoconstant and outerjoin-delayed quals. · 4e97631e
      Tom Lane authored
      In these cases a qual can get marked with the removable rel in its
      required_relids, but this is just to schedule its evaluation correctly, not
      because it really depends on the rel.  We were assuming that, in effect,
      we could throw away *all* quals so marked, which is nonsense.  Tighten up
      the logic to be a little more paranoid about which quals belong to the
      outer join being considered for removal, and arrange for all quals that
      don't belong to be updated so they will still get evaluated correctly.
      
      Also fix another problem that happened to be exposed by this test case,
      which was that make_join_rel() was failing to notice some cases where
      a constant-false qual could be used to prove a join relation empty.  If it's
      a pushed-down constant false, then the relation is empty even if it's an
      outer join, because the qual applies after the outer join expansion.
      
      Per report from Nathan Grange.  Back-patch into 9.0.
      4e97631e
    • Heikki Linnakangas's avatar
      3522217b
    • Heikki Linnakangas's avatar
      Don't warn about an in-progress online backup, when we're recovering from · 06e8c8e3
      Heikki Linnakangas authored
      an online backup instead of performing one. pg_ctl can detect that by
      checking if recovery.conf exists.
      
      Backup label file is renamed away early in recovery, so the window where
      backup label exists during recovery is normally very small, but you can run
      into it e.g if restore_command is set incorrectly and the startup process
      never finds even the first WAL segment containing the checkpoint record to
      start recovery from.
      
      Fujii Masao with comments by me.
      06e8c8e3
  7. 13 Sep, 2010 6 commits
  8. 12 Sep, 2010 1 commit
  9. 11 Sep, 2010 3 commits
    • Joe Conway's avatar
      SERIALIZABLE transactions are actually implemented beneath the covers with · 5eb15c99
      Joe Conway authored
      transaction snapshots, i.e. a snapshot registered at the beginning of
      a transaction. Change variable naming and comments to reflect this reality
      in preparation for a future, truly serializable mode, e.g.
      Serializable Snapshot Isolation (SSI).
      
      For the moment transaction snapshots are still used to implement
      SERIALIZABLE, but hopefully not for too much longer. Patch by Kevin
      Grittner and Dan Ports with review and some minor wording changes by me.
      5eb15c99
    • Heikki Linnakangas's avatar
      Add missing #includes, needed on some platforms. This should make · 262c71ab
      Heikki Linnakangas authored
      the unixware buildfarm animals happy again.
      262c71ab
    • Heikki Linnakangas's avatar
      Introduce latches. A latch is a boolean variable, with the capability to · 2746e5f2
      Heikki Linnakangas authored
      wait until it is set. Latches can be used to reliably wait until a signal
      arrives, which is hard otherwise because signals don't interrupt select()
      on some platforms, and even when they do, there's race conditions.
      
      On Unix, latches use the so called self-pipe trick under the covers to
      implement the sleep until the latch is set, without race conditions. On
      Windows, Windows events are used.
      
      Use the new latch abstraction to sleep in walsender, so that as soon as
      a transaction finishes, walsender is woken up to immediately send the WAL
      to the standby. This reduces the latency between master and standby, which
      is good.
      
      Preliminary work by Fujii Masao. The latch implementation is by me, with
      helpful comments from many people.
      2746e5f2
  10. 10 Sep, 2010 1 commit
  11. 09 Sep, 2010 2 commits
    • Tom Lane's avatar
      Remove obsolete claim that gzip is needed while installing PG's documentation. · 0b81c7c4
      Tom Lane authored
      It isn't, now that we ship the docs as loose files rather than a sub-tarball.
      
      Also adjust the wording in a couple of places to make the lists of required
      software read more consistently.
      0b81c7c4
    • Bruce Momjian's avatar
      Doc fixes: · 152c6261
      Bruce Momjian authored
      - remove excessive table cells
      - moving function parameters into function tags rather than having
        them being considered separate
      - add return type column on XML2 contrib module functions list and
        removing return types from function
      - add table header to XML2 contrib parameter table
      
      Thom Brown
      
      Backpatch to 9.0.X.
      152c6261
  12. 08 Sep, 2010 1 commit
  13. 07 Sep, 2010 2 commits
  14. 05 Sep, 2010 1 commit
  15. 04 Sep, 2010 1 commit
  16. 03 Sep, 2010 2 commits
    • Tom Lane's avatar
      Install a data-type-based solution for protecting pg_get_expr(). · 303696c3
      Tom Lane authored
      Since the code underlying pg_get_expr() is not secure against malformed
      input, and can't practically be made so, we need to prevent miscreants
      from feeding arbitrary data to it.  We can do this securely by declaring
      pg_get_expr() to take a new datatype "pg_node_tree" and declaring the
      system catalog columns that hold nodeToString output to be of that type.
      There is no way at SQL level to create a non-null value of type pg_node_tree.
      Since the backend-internal operations that fill those catalog columns
      operate below the SQL level, they are oblivious to the datatype relabeling
      and don't need any changes.
      303696c3
    • Tom Lane's avatar
      In HEAD only, revert kluge solution for preventing misuse of pg_get_expr(). · 8ab6a6b4
      Tom Lane authored
      A data-type-based solution, which is much cleaner and more bulletproof,
      will follow shortly.  It seemed best to make this a separate commit though.
      8ab6a6b4
  17. 02 Sep, 2010 2 commits