1. 17 Mar, 2007 5 commits
  2. 16 Mar, 2007 5 commits
  3. 15 Mar, 2007 1 commit
    • Tom Lane's avatar
      Make use of plancache module for SPI plans. In particular, since plpgsql · 95f6d2d2
      Tom Lane authored
      uses SPI plans, this finally fixes the ancient gotcha that you can't
      drop and recreate a temp table used by a plpgsql function.
      
      Along the way, clean up SPI's API a little bit by declaring SPI plan
      pointers as "SPIPlanPtr" instead of "void *".  This is cosmetic but
      helps to forestall simple programming mistakes.  (I have changed some
      but not all of the callers to match; there are still some "void *"'s
      in contrib and the PL's.  This is intentional so that we can see if
      anyone's compiler complains about it.)
      95f6d2d2
  4. 14 Mar, 2007 6 commits
    • Tom Lane's avatar
      Fix a longstanding bug in VACUUM FULL's handling of update chains. The code · d3ff1801
      Tom Lane authored
      did not expect that a DEAD tuple could follow a RECENTLY_DEAD tuple in an
      update chain, but because the OldestXmin rule for determining deadness is a
      simplification of reality, it is possible for this situation to occur
      (implying that the RECENTLY_DEAD tuple is in fact dead to all observers,
      but this patch does not attempt to exploit that).  The code would follow a
      chain forward all the way, but then stop before a DEAD tuple when backing
      up, meaning that not all of the chain got moved.  This could lead to copying
      the chain multiple times (resulting in duplicate copies of the live tuple at
      its end), or leaving dangling index entries behind (which, aside from
      generating warnings from later vacuums, creates a risk of wrong query
      results or bogus duplicate-key errors once the heap slot the index entry
      points to is repopulated).
      
      The fix is to recheck HeapTupleSatisfiesVacuum while following a chain
      forward, and to stop if a DEAD tuple is reached.  Each contiguous group
      of RECENTLY_DEAD tuples will therefore be copied as a separate chain.
      The patch also adds a couple of extra sanity checks to verify correct
      behavior.
      
      Per report and test case from Pavan Deolasee.
      d3ff1801
    • Tom Lane's avatar
      Arrange to install a "posixrules" entry in our timezone database, so that · 0169c354
      Tom Lane authored
      POSIX-style timezone specs that don't exactly match any database entry will
      be treated as having correct USA DST rules.  Also, document that this can
      be changed if you want to use some other DST rules with a POSIX zone spec.
      
      We could consider changing localtime.c's TZDEFRULESTRING, but since that
      facility can only deal with one DST transition rule, it seems fairly useless
      now; might as well just plan to override it using a "posixrules" entry.
      
      Backpatch as far as 8.0.  There isn't much we can do in 7.x ... either your
      libc gets it right, or it doesn't.
      0169c354
    • Teodor Sigaev's avatar
      Add GIN support for pg_trgm. From Guillaume Smet <guillaume.smet@gmail.com> · 754148d8
      Teodor Sigaev authored
      with minor editorization by me.
      
      Hstore improvements
      * add operation hstore ? text - excat equivalent of exist()
      * remove undocumented behaviour of contains operation with NULL value
      * now 'key'::text=>NULL returns '"key"=>NULL' instead of NULL
      * Add GIN support for contains and exist operations
      * Add GiST support for exist operatiion
      * improve regression tests
      754148d8
    • Teodor Sigaev's avatar
      Add GIN support for pg_trgm. From Guillaume Smet <guillaume.smet@gmail.com> · 15f91f27
      Teodor Sigaev authored
      with minor editorization by me.
      15f91f27
    • Magnus Hagander's avatar
      547e41cd
    • Tom Lane's avatar
      Fix broken markup, strange tab width. · 68a6e5e8
      Tom Lane authored
      68a6e5e8
  5. 13 Mar, 2007 8 commits
  6. 12 Mar, 2007 2 commits
  7. 11 Mar, 2007 1 commit
  8. 10 Mar, 2007 1 commit
  9. 08 Mar, 2007 2 commits
  10. 07 Mar, 2007 2 commits
  11. 06 Mar, 2007 5 commits
  12. 05 Mar, 2007 2 commits