postgresql/src/include/executor
Tom Lane 9bb342811b Rewrite the planner's handling of materialized plan types so that there is
an explicit model of rescan costs being different from first-time costs.
The costing of Material nodes in particular now has some visible relationship
to the actual runtime behavior, where before it was essentially fantasy.
This also fixes up a couple of places where different materialized plan types
were treated differently for no very good reason (probably just oversights).

A couple of the regression tests are affected, because the planner now chooses
to put the other relation on the inside of a nestloop-with-materialize.
So far as I can see both changes are sane, and the planner is now more
consistently following the expectation that it should prefer to materialize
the smaller of two relations.

Per a recent discussion with Robert Haas.
2009-09-12 22:12:09 +00:00
..
execdebug.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
execdefs.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
execdesc.h Include a pointer to the query's source text in QueryDesc structs. This is 2009-01-02 20:42:00 +00:00
executor.h Rewrite the planner's handling of materialized plan types so that there is 2009-09-12 22:12:09 +00:00
functions.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
hashjoin.h 8.4 pgindent run, with new combined Linux/FreeBSD/MinGW typedef list 2009-06-11 14:49:15 +00:00
instrument.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeAgg.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeAppend.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeBitmapAnd.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeBitmapHeapscan.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeBitmapIndexscan.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeBitmapOr.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeCtescan.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeFunctionscan.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeGroup.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeHash.h Optimize multi-batch hash joins when the outer relation has a nonuniform 2009-03-21 00:04:40 +00:00
nodeHashjoin.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeIndexscan.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeLimit.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeMaterial.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeMergejoin.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeNestloop.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeRecursiveunion.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeResult.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeSeqscan.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeSetOp.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeSort.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeSubplan.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeSubqueryscan.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeTidscan.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeUnique.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeValuesscan.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeWindowAgg.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
nodeWorktablescan.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
spi.h 8.4 pgindent run, with new combined Linux/FreeBSD/MinGW typedef list 2009-06-11 14:49:15 +00:00
spi_priv.h Update copyright for 2009. 2009-01-01 17:24:05 +00:00
tstoreReceiver.h 8.4 pgindent run, with new combined Linux/FreeBSD/MinGW typedef list 2009-06-11 14:49:15 +00:00
tuptable.h 8.4 pgindent run, with new combined Linux/FreeBSD/MinGW typedef list 2009-06-11 14:49:15 +00:00