postgresql/src/include/executor
Robert Haas 355d3993c5 Add a Gather Merge executor node.
Like Gather, we spawn multiple workers and run the same plan in each
one; however, Gather Merge is used when each worker produces the same
output ordering and we want to preserve that output ordering while
merging together the streams of tuples from various workers.  (In a
way, Gather Merge is like a hybrid of Gather and MergeAppend.)

This works out to a win if it saves us from having to perform an
expensive Sort.  In cases where only a small amount of data would need
to be sorted, it may actually be faster to use a regular Gather node
and then sort the results afterward, because Gather Merge sometimes
needs to wait synchronously for tuples whereas a pure Gather generally
doesn't.  But if this avoids an expensive sort then it's a win.

Rushabh Lathia, reviewed and tested by Amit Kapila, Thomas Munro,
and Neha Sharma, and reviewed and revised by me.

Discussion: http://postgr.es/m/CAGPqQf09oPX-cQRpBKS0Gq49Z+m6KBxgxd_p9gX8CKk_d75HoQ@mail.gmail.com
2017-03-09 07:49:29 -05:00
..
execdebug.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
execdesc.h Change representation of statement lists, and add statement location info. 2017-01-14 16:02:35 -05:00
execParallel.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
executor.h Logical replication 2017-01-20 09:04:49 -05:00
functions.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
hashjoin.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
instrument.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeAgg.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeAppend.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeBitmapAnd.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeBitmapHeapscan.h Support parallel bitmap heap scans. 2017-03-08 12:05:43 -05:00
nodeBitmapIndexscan.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeBitmapOr.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeCtescan.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeCustom.h Allow custom and foreign scans to have shutdown callbacks. 2017-02-26 13:41:12 +05:30
nodeForeignscan.h Allow custom and foreign scans to have shutdown callbacks. 2017-02-26 13:41:12 +05:30
nodeFunctionscan.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeGather.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeGatherMerge.h Add a Gather Merge executor node. 2017-03-09 07:49:29 -05:00
nodeGroup.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeHash.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeHashjoin.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeIndexonlyscan.h Add optimizer and executor support for parallel index-only scans. 2017-02-19 15:57:55 +05:30
nodeIndexscan.h Add optimizer and executor support for parallel index scans. 2017-02-15 13:53:24 -05:00
nodeLimit.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeLockRows.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeMaterial.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeMergeAppend.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeMergejoin.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeModifyTable.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeNestloop.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeProjectSet.h Move targetlist SRF handling from expression evaluation to new executor node. 2017-01-18 13:40:27 -08:00
nodeRecursiveunion.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeResult.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeSamplescan.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeSeqscan.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeSetOp.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeSort.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeSubplan.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeSubqueryscan.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeTableFuncscan.h Support XMLTABLE query expression 2017-03-08 12:40:26 -03:00
nodeTidscan.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeUnique.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeValuesscan.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeWindowAgg.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
nodeWorktablescan.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
spi.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
spi_priv.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
tablefunc.h Support XMLTABLE query expression 2017-03-08 12:40:26 -03:00
tqueue.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
tstoreReceiver.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00
tuptable.h Update copyright via script for 2017 2017-01-03 13:48:53 -05:00