1. 08 Mar, 2008 4 commits
    • Tom Lane's avatar
      Refactor heap_page_prune so that instead of changing item states on-the-fly, · 6f10eb21
      Tom Lane authored
      it accumulates the set of changes to be made and then applies them.  It had
      to accumulate the set of changes anyway to prepare a WAL record for the
      pruning action, so this isn't an enormous change; the only new complexity is
      to not doubly mark tuples that are visited twice in the scan.  The main
      advantage is that we can substantially reduce the scope of the critical
      section in which the changes are applied, thus avoiding PANIC in foreseeable
      cases like running out of memory in inval.c.  A nice secondary advantage is
      that it is now far clearer that WAL replay will actually do the same thing
      that the original pruning did.
      
      This commit doesn't do anything about the open problem that
      CacheInvalidateHeapTuple doesn't have the right semantics for a CTID change
      caused by collapsing out a redirect pointer.  But whatever we do about that,
      it'll be a good idea to not do it inside a critical section.
      6f10eb21
    • Bruce Momjian's avatar
      Add: · cc05d051
      Bruce Momjian authored
      >
      > * Consider a function-based API for '@@' full text searches
      >
      >   http://archives.postgresql.org/pgsql-hackers/2007-11/msg00511.php
      >
      cc05d051
    • Andrew Dunstan's avatar
      Improve efficiency of attribute scanning in CopyReadAttributesCSV. · 95c238d9
      Andrew Dunstan authored
      The loop is split into two parts, inside quotes, and outside quotes, saving some instructions in both parts.
      
      Heikki Linnakangas
      95c238d9
    • Tom Lane's avatar
      Improve pglz_decompress() so that it cannot clobber memory beyond the · 9c767ad5
      Tom Lane authored
      available output buffer when presented with corrupt input.  Some testing
      suggests that this slows the decompression loop about 1%, which seems an
      acceptable price to pay for more robustness.  (Curiously, the penalty
      seems to be *less* on not-very-compressible data, which I didn't expect
      since the overhead per output byte ought to be more in the literal-bytes
      path.)
      
      Patch from Zdenek Kotala.  I fixed a corner case and did some renaming
      of variables to make the routine more readable.
      9c767ad5
  2. 07 Mar, 2008 17 commits
  3. 06 Mar, 2008 15 commits
  4. 05 Mar, 2008 4 commits