1. 30 Mar, 2009 2 commits
    • Alvaro Herrera's avatar
      3fe3b811
    • Tom Lane's avatar
      Fix an oversight in the support for storing/retrieving "minimal tuples" in · 793d5662
      Tom Lane authored
      TupleTableSlots.  We have functions for retrieving a minimal tuple from a slot
      after storing a regular tuple in it, or vice versa; but these were implemented
      by converting the internal storage from one format to the other.  The problem
      with that is it invalidates any pass-by-reference Datums that were already
      fetched from the slot, since they'll be pointing into the just-freed version
      of the tuple.  The known problem cases involve fetching both a whole-row
      variable and a pass-by-reference value from a slot that is fed from a
      tuplestore or tuplesort object.  The added regression tests illustrate some
      simple cases, but there may be other failure scenarios traceable to the same
      bug.  Note that the added tests probably only fail on unpatched code if it's
      built with --enable-cassert; otherwise the bug leads to fetching from freed
      memory, which will not have been overwritten without additional conditions.
      
      Fix by allowing a slot to contain both formats simultaneously; which turns out
      not to complicate the logic much at all, if anything it seems less contorted
      than before.
      
      Back-patch to 8.2, where minimal tuples were introduced.
      793d5662
  2. 29 Mar, 2009 3 commits
  3. 28 Mar, 2009 6 commits
  4. 27 Mar, 2009 17 commits
  5. 26 Mar, 2009 12 commits