1. 18 9月, 2004 4 次提交
  2. 17 9月, 2004 5 次提交
    • T
      Fix oversight: there's no reason for PG_TRY to use sigsetjmp(buf,1) · 9f6df6c4
      Tom Lane 提交于
      since we don't change the signal mask during normal backend operations.
      Use sigsetjmp(buf,0) to avoid many unnecessary kernel calls.
      9f6df6c4
    • T
      Remove erroneous Assert, per example from Kris Jurka. · 1cfd2012
      Tom Lane 提交于
      1cfd2012
    • T
      Add some marginal tweaks to eliminate memory leakages associated with · 257cccbe
      Tom Lane 提交于
      subtransactions.  Trivial subxacts (such as a plpgsql exception block
      containing no database access) now demonstrably leak zero bytes.
      257cccbe
    • T
      RecentXmin is too recent to use as the cutoff point for accessing · 86fff990
      Tom Lane 提交于
      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
    • T
      Restructure subtransaction handling to reduce resource consumption, · 8f9f1986
      Tom Lane 提交于
      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
  3. 16 9月, 2004 1 次提交
  4. 15 9月, 2004 1 次提交
  5. 14 9月, 2004 7 次提交
  6. 13 9月, 2004 9 次提交
  7. 12 9月, 2004 1 次提交
    • T
      Renumber SnapshotNow and the other special snapshot codes so that · 493f7260
      Tom Lane 提交于
      ((Snapshot) NULL) can no longer be confused with a valid snapshot,
      as per my recent suggestion.  Define a macro InvalidSnapshot for 0.
      Use InvalidSnapshot instead of SnapshotAny as the do-nothing special
      case for heap_update and heap_delete crosschecks; this seems a little
      cleaner even though the behavior is really the same.
      493f7260
  8. 11 9月, 2004 3 次提交
  9. 10 9月, 2004 9 次提交