Teach tuplestore.c to throw away data before the "mark" point when the caller

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 2415ad983174164ff30ce487c0e6b4b53321b83a
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2007-05-21T17:57:35Z
Releases: 8.3.0
Teach tuplestore.c to throw away data before the "mark" point when the caller
is using mark/restore but not rewind or backward-scan capability.  Insert a
materialize plan node between a mergejoin and its inner child if the inner
child is a sort that is expected to spill to disk.  The materialize shields
the sort from the need to do mark/restore and thereby allows it to perform
its final merge pass on-the-fly; while the materialize itself is normally
cheap since it won't spill to disk unless the number of tuples with equal
key values exceeds work_mem.

Greg Stark, with some kibitzing from Tom Lane.

Files