1. 04 4月, 2006 2 次提交
  2. 03 4月, 2006 9 次提交
  3. 02 4月, 2006 4 次提交
  4. 01 4月, 2006 2 次提交
    • T
      Remove the 'slow' path for btree index build, which built the btree · 89bda95d
      Tom Lane 提交于
      incrementally by successive inserts rather than by sorting the data.
      We were only using the slow path during bootstrap, apparently because
      when first written it failed during bootstrap --- but it works fine now
      AFAICT.  Removing it saves a hundred or so lines of code and produces
      noticeably (~10%) smaller initial states of the system catalog indexes.
      While that won't make much difference for heavily-modified catalogs,
      for the more static ones there may be a useful long-term performance
      improvement.
      89bda95d
    • T
      Clean up WAL/buffer interactions as per my recent proposal. Get rid of the · a8b8f4db
      Tom Lane 提交于
      misleadingly-named WriteBuffer routine, and instead require routines that
      change buffer pages to call MarkBufferDirty (which does exactly what it says).
      We also require that they do so before calling XLogInsert; this takes care of
      the synchronization requirement documented in SyncOneBuffer.  Note that
      because bufmgr takes the buffer content lock (in shared mode) while writing
      out any buffer, it doesn't matter whether MarkBufferDirty is executed before
      the buffer content change is complete, so long as the content change is
      completed before releasing exclusive lock on the buffer.  So it's OK to set
      the dirtybit before we fill in the LSN.
      This eliminates the former kluge of needing to set the dirtybit in LockBuffer.
      Aside from making the code more transparent, we can also add some new
      debugging assertions, in particular that the caller of MarkBufferDirty must
      hold the buffer content lock, not merely a pin.
      a8b8f4db
  5. 31 3月, 2006 2 次提交
    • T
      Improve gist XLOG code to follow the coding rules needed to prevent · 89395bfa
      Tom Lane 提交于
      torn-page problems.  This introduces some issues of its own, mainly
      that there are now some critical sections of unreasonably broad scope,
      but it's a step forward anyway.  Further cleanup will require some
      code refactoring that I'd prefer to get Oleg and Teodor involved in.
      89395bfa
    • T
      Suppress attempts to report dropped tables to the stats collector from a · 4243f238
      Tom Lane 提交于
      startup or recovery process.  Since such a process isn't a real backend,
      pgstat.c gets confused.  This accounts for recent reports of strange
      "invalid server process ID -1" log messages during crash recovery.
      There isn't any point in attempting to make the report, since we'll discard
      stats in such scenarios anyhow.
      4243f238
  6. 30 3月, 2006 2 次提交
  7. 29 3月, 2006 3 次提交
  8. 25 3月, 2006 1 次提交
    • T
      Comments in IndexBuildHeapScan describe the indexing of recently-dead · 4e7d10c7
      Tom Lane 提交于
      tuples as needed "to keep VACUUM from complaining", but actually there is
      a more compelling reason to do it: failure to do so violates MVCC semantics.
      This is because a pre-existing serializable transaction might try to use
      the index after we finish (re)building it, and it might fail to find tuples
      it should be able to see.  We got this mostly right, but not in the case
      of partial indexes: the code mistakenly discarded recently-dead tuples for
      partial indexes.  Fix that, and adjust the comments.
      4e7d10c7
  9. 24 3月, 2006 1 次提交
    • T
      Arrange to emit a description of the current XLOG record as error context · 0a202070
      Tom Lane 提交于
      when an error occurs during xlog replay.  Also, replace the former risky
      'write into a fixed-size buffer with no overflow detection' API for XLOG
      record description routines; use an expansible StringInfo instead.  (The
      latter accounts for most of the patch bulk.)
      
      Qingqing Zhou
      0a202070
  10. 23 3月, 2006 2 次提交
  11. 22 3月, 2006 3 次提交
  12. 21 3月, 2006 1 次提交
  13. 20 3月, 2006 2 次提交
  14. 19 3月, 2006 2 次提交
  15. 18 3月, 2006 2 次提交
    • T
      Fix bug introduced into mergejoin logic by performance improvement patch of · b3358e26
      Tom Lane 提交于
      2005-05-13.  When we find that a new inner tuple can't possibly match any
      outer tuple (because it contains a NULL), we can't immediately skip the
      tuple when we are in NEXTINNER state.  Doing so can lead to emitting
      multiple copies of the tuple in FillInner mode, because we may rescan the
      tuple after returning to a previous marked tuple.  Instead, proceed to
      NEXTOUTER state the same as we used to do.  After we've found that there's
      no need to return to the marked position, we can go to SKIPINNER_ADVANCE
      state instead of SKIP_TEST when the inner tuple is unmatchable; this
      preserves the performance improvement.  Per bug report from Bruce.
      I also made a couple of cosmetic code rearrangements and added a regression
      test for the problem.
      b3358e26
    • P
      Document long names for format options (plain, tar, custom). They already · 5094f998
      Peter Eisentraut 提交于
      worked and someone asked about them, so we might as well document them.
      5094f998
  16. 17 3月, 2006 2 次提交