1. 16 Sep, 2004 4 commits
    • Tom Lane's avatar
      RecentXmin is too recent to use as the cutoff point for accessing · 86fff990
      Tom Lane authored
      pg_subtrans --- what we need is the oldest xmin of any snapshot in use
      in the current top transaction.  Introduce a new variable TransactionXmin
      to play this role.  Fixes intermittent regression failure reported by
      Neil Conway.
      86fff990
    • Tom Lane's avatar
      Restructure subtransaction handling to reduce resource consumption, · 8f9f1986
      Tom Lane authored
      as per recent discussions.  Invent SubTransactionIds that are managed like
      CommandIds (ie, counter is reset at start of each top transaction), and
      use these instead of TransactionIds to keep track of subtransaction status
      in those modules that need it.  This means that a subtransaction does not
      need an XID unless it actually inserts/modifies rows in the database.
      Accordingly, don't assign it an XID nor take a lock on the XID until it
      tries to do that.  This saves a lot of overhead for subtransactions that
      are only used for error recovery (eg plpgsql exceptions).  Also, arrange
      to release a subtransaction's XID lock as soon as the subtransaction
      exits, in both the commit and abort cases.  This avoids holding many
      unique locks after a long series of subtransactions.  The price is some
      additional overhead in XactLockTableWait, but that seems acceptable.
      Finally, restructure the state machine in xact.c to have a more orthogonal
      set of states for subtransactions.
      8f9f1986
    • Neil Conway's avatar
      42c0d1f3
    • Neil Conway's avatar
      Fix a read of uninitialized memory in array_out(). Perform some minor · 6a2869f6
      Neil Conway authored
      cosmetic code cleanup at the same time.
      6a2869f6
  2. 14 Sep, 2004 11 commits
  3. 13 Sep, 2004 9 commits
  4. 12 Sep, 2004 3 commits
  5. 11 Sep, 2004 4 commits
  6. 10 Sep, 2004 9 commits