1. 22 Jun, 2011 1 commit
  2. 21 Jun, 2011 6 commits
    • Tom Lane's avatar
      Minor editing for README-SSI. · a3290f65
      Tom Lane authored
      Fix some grammatical issues, try to clarify a couple of proofs, make the
      terminology more consistent.
      a3290f65
    • Peter Eisentraut's avatar
      Message style and spelling improvements · e2a0cb1a
      Peter Eisentraut authored
      e2a0cb1a
    • Tom Lane's avatar
      Apply upstream fix for blowfish signed-character bug (CVE-2011-2483). · ca59dfa6
      Tom Lane authored
      A password containing a character with the high bit set was misprocessed
      on machines where char is signed (which is most).  This could cause the
      preceding one to three characters to fail to affect the hashed result,
      thus weakening the password.  The result was also unportable, and failed
      to match some other blowfish implementations such as OpenBSD's.
      
      Since the fix changes the output for such passwords, upstream chose
      to provide a compatibility hack: password salts beginning with $2x$
      (instead of the usual $2a$ for blowfish) are intentionally processed
      "wrong" to give the same hash as before.  Stored password hashes can
      thus be modified if necessary to still match, though it'd be better
      to change any affected passwords.
      
      In passing, sync a couple other upstream changes that marginally improve
      performance and/or tighten error checking.
      
      Back-patch to all supported branches.  Since this issue is already
      public, no reason not to commit the fix ASAP.
      ca59dfa6
    • Heikki Linnakangas's avatar
      Adjust the alternative expected output file for prepared_xacts test case, · 38c0e721
      Heikki Linnakangas authored
      used when max_prepared_transactions=0, for the recent changes in the test
      case.
      38c0e721
    • Heikki Linnakangas's avatar
      Fix bug in PreCommit_CheckForSerializationFailure. A transaction that has · 1eea8e8a
      Heikki Linnakangas authored
      already been marked as PREPARED cannot be killed. Kill the current
      transaction instead.
      
      One of the prepared_xacts regression tests actually hits this bug. I
      removed the anomaly from the duplicate-gids test so that it fails in the
      intended way, and added a new test to check serialization failures with
      a prepared transaction.
      
      Dan Ports
      1eea8e8a
    • Heikki Linnakangas's avatar
      Fix bug introduced by recent SSI patch to merge ROLLED_BACK and · 7cb2ff96
      Heikki Linnakangas authored
      MARKED_FOR_DEATH flags into one. We still need the ROLLED_BACK flag to
      mark transactions that are in the process of being rolled back. To be
      precise, ROLLED_BACK now means that a transaction has already been
      discounted from the count of transactions with the oldest xmin, but not
      yet removed from the list of active transactions.
      
      Dan Ports
      7cb2ff96
  3. 20 Jun, 2011 4 commits
    • Tom Lane's avatar
      Fix missed use of "cp -i" in an example, per Fujii Masao. · 31e8ab4d
      Tom Lane authored
      Also be more careful about markup: use & not just &.
      31e8ab4d
    • Tom Lane's avatar
      Fix thinko in previous patch for optimizing EXISTS-within-EXISTS. · cd1f0d04
      Tom Lane authored
      When recursing after an optimization in pull_up_sublinks_qual_recurse, the
      available_rels value passed down must include only the relations that are
      in the righthand side of the new SEMI or ANTI join; it's incorrect to pull
      up a sub-select that refers to other relations, as seen in the added test
      case.  Per report from BangarRaju Vadapalli.
      
      While at it, rethink the idea of recursing below a NOT EXISTS.  That is
      essentially the same situation as pulling up ANY/EXISTS sub-selects that
      are in the ON clause of an outer join, and it has the same disadvantage:
      we'd force the two joins to be evaluated according to the syntactic nesting
      order, because the lower join will most likely not be able to commute with
      the ANTI join.  That could result in having to form a rather large join
      product, whereas the handling of a correlated subselect is not quite that
      dumb.  So until we can handle those cases better, #ifdef NOT_USED that
      case.  (I think it's okay to pull up in the EXISTS/ANY cases, because SEMI
      joins aren't so inflexible about ordering.)
      
      Back-patch to 8.4, same as for previous patch in this area.  Fortunately
      that patch hadn't made it into any shipped releases yet.
      cd1f0d04
    • Alvaro Herrera's avatar
      Remove extra copying of TupleDescs for heap_create_with_catalog · a40a5d94
      Alvaro Herrera authored
      Some callers were creating copies of tuple descriptors to pass to that
      function, stating in code comments that it was necessary because it
      modified the passed descriptor.  Code inspection reveals this not to be
      true, and indeed not all callers are passing copies in the first place.
      So remove the extra ones and the misleading comments about this behavior
      as well.
      a40a5d94
    • Michael Meskes's avatar
      Fixed string in German translation that causes segfault. · bddc35ac
      Michael Meskes authored
      Applied patch by Christoph Berg <cb@df7cb.de> to replace placeholder "%s" by
      correct string.
      bddc35ac
  4. 19 Jun, 2011 3 commits
  5. 18 Jun, 2011 3 commits
  6. 17 Jun, 2011 8 commits
    • Tom Lane's avatar
      Don't use "cp -i" in the example WAL archive_command. · a2624c68
      Tom Lane authored
      This is a dangerous example to provide because on machines with GNU cp,
      it will silently do the wrong thing and risk archive corruption.  Worse,
      during the 9.0 cycle somebody "improved" the discussion by removing the
      warning that used to be there about that, and instead leaving the
      impression that the command would work as desired on most Unixen.
      It doesn't.  Try to rectify the damage by providing an example that is safe
      most everywhere, and then noting that you can try cp -i if you want but
      you'd better test that.
      
      In back-patching this to all supported branches, I also added an example
      command for Windows, which wasn't provided before 9.0.
      a2624c68
    • Andrew Dunstan's avatar
      Set FLEXIBLE_ARRAY_MEMBER to empty for MSVC. · ddef31c1
      Andrew Dunstan authored
      Per gripe from Tom Lane. I have tested this with VC 2008, and assume
      it will work with earlier versions.
      ddef31c1
    • Tom Lane's avatar
      Obtain table locks as soon as practical during pg_dump. · 68d977a7
      Tom Lane authored
      For some reason, when we (I) added table lock acquisition to pg_dump,
      we didn't think about making it happen as soon as possible after the
      start of the transaction.  What with subsequent additions, there was
      actually quite a lot going on before we got around to that; which sort
      of defeats the purpose.  Rearrange the order of calls in dumpSchema()
      to close the risk window as much as we easily can.  Back-patch to all
      supported branches.
      68d977a7
    • Robert Haas's avatar
      Add overflow checks to int4 and int8 versions of generate_series(). · 062780ec
      Robert Haas authored
      The previous code went into an infinite loop after overflow.  In fact,
      an overflow is not really an error; it just means that the current
      value is the last one we need to return.  So, just arrange to stop
      immediately when overflow is detected.
      
      Back-patch all the way.
      062780ec
    • Robert Haas's avatar
      Fix crash in CREATE UNLOGGED TABLE. · bf347c60
      Robert Haas authored
      The code that created the init fork neglected to make sure that the
      relation was open at the smgr level before attempting to invoke smgr.
      This didn't happen every time; only when the relcache entry was rebuilt
      along the way.
      
      Per report from Garick Hamlin.
      bf347c60
    • Robert Haas's avatar
      Fix minor thinko in ProcGlobalShmemSize(). · c573486c
      Robert Haas authored
      There's no need to add space for startupBufferPinWaitBufId, because
      it's part of the PROC_HDR object for which this function already
      allocates space.
      
      This has been wrong for a while, but the only consequence is that our
      shared memory allocation is increased by 4 bytes, so no back-patch.
      c573486c
    • Robert Haas's avatar
      Fix typo. · d61ec7c7
      Robert Haas authored
      Per Josh Kupershmidt and Tom Lane.
      d61ec7c7
    • Andrew Dunstan's avatar
      Define FLEXIBLE_ARRAY_MEMBER for MSVC. · 236a11dc
      Andrew Dunstan authored
      236a11dc
  7. 16 Jun, 2011 9 commits
  8. 15 Jun, 2011 6 commits
    • Tom Lane's avatar
      Rework parsing of ConstraintAttributeSpec to improve NOT VALID handling. · e1ccaff6
      Tom Lane authored
      The initial commit of the ALTER TABLE ADD FOREIGN KEY NOT VALID feature
      failed to support labeling such constraints as deferrable.  The best fix
      for this seems to be to fold NOT VALID into ConstraintAttributeSpec.
      That's a bit more general than the documented syntax, but it allows
      better-targeted syntax error messages.
      
      In addition, do some mostly-but-not-entirely-cosmetic code review for
      the whole NOT VALID patch.
      e1ccaff6
    • Bruce Momjian's avatar
    • Tom Lane's avatar
      Fix failure to account for memory used by tuplestore_putvalues(). · 10db3de6
      Tom Lane authored
      This oversight could result in a tuplestore using much more than the
      intended amount of memory.  It would only happen in a code path that loaded
      a tuplestore via tuplestore_putvalues(), and many of those won't emit huge
      amounts of data; but cases such as holdable cursors and plpgsql's RETURN
      NEXT command could have the problem.  The fix ensures that the tuplestore
      will switch to write-to-disk mode when it overruns work_mem.
      
      The potential overrun was finite, because we would still count the space
      used by the tuple pointer array, so the tuplestore code would eventually
      flip into write-to-disk mode anyway.  When storing wide tuples we would
      go far past the expected work_mem usage before that happened; but this
      may account for the lack of prior reports.
      
      Back-patch to 8.4, where tuplestore_putvalues was introduced.
      
      Per bug #6061 from Yann Delorme.
      10db3de6
    • Tom Lane's avatar
      Fix oversights in pg_basebackup's -z (compression) option. · 31156ce8
      Tom Lane authored
      The short-form -z switch didn't work, for lack of telling getopt_long
      about it; and even if specified long-form, it failed to do anything,
      because the various tests elsewhere in the file would take
      Z_DEFAULT_COMPRESSION (which is -1) as meaning "don't compress".
      
      Per bug #6060 from Shigehiro Honda, though I editorialized on his patch
      a bit.
      31156ce8
    • Heikki Linnakangas's avatar
      The rolled-back flag on serializable xacts was pointless and redundant with · 264a6b12
      Heikki Linnakangas authored
      the marked-for-death flag. It was only set for a fleeting moment while a
      transaction was being cleaned up at rollback. All the places that checked
      for the rolled-back flag should also check the marked-for-death flag, as
      both flags mean that the transaction will roll back. I also renamed the
      marked-for-death into "doomed", which is a lot shorter name.
      264a6b12
    • Heikki Linnakangas's avatar
      Make non-MVCC snapshots exempt from predicate locking. Scans with non-MVCC · 0a0e2b52
      Heikki Linnakangas authored
      snapshots, like in REINDEX, are basically non-transactional operations. The
      DDL operation itself might participate in SSI, but there's separate
      functions for that.
      
      Kevin Grittner and Dan Ports, with some changes by me.
      0a0e2b52