pgsql: Extend the ExecInitNode API so that plan nodes receive a set of

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Extend the ExecInitNode API so that plan nodes receive a set of
Date: 2006-02-28 04:10:28
Message-ID: 20060228041028.822E59DCBA5@postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Extend the ExecInitNode API so that plan nodes receive a set of flag
bits indicating which optional capabilities can actually be exercised
at runtime. This will allow Sort and Material nodes, and perhaps later
other nodes, to avoid unnecessary overhead in common cases.
This commit just adds the infrastructure and arranges to pass the correct
flag values down to plan nodes; none of the actual optimizations are here
yet. I'm committing this separately in case anyone wants to measure the
added overhead. (It should be negligible.)

Simon Riggs and Tom Lane

Modified Files:
--------------
pgsql/src/backend/commands:
explain.c (r1.143 -> r1.144)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/explain.c.diff?r1=1.143&r2=1.144)
pgsql/src/backend/executor:
execMain.c (r1.267 -> r1.268)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execMain.c.diff?r1=1.267&r2=1.268)
execProcnode.c (r1.52 -> r1.53)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execProcnode.c.diff?r1=1.52&r2=1.53)
functions.c (r1.99 -> r1.100)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/functions.c.diff?r1=1.99&r2=1.100)
nodeAgg.c (r1.136 -> r1.137)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeAgg.c.diff?r1=1.136&r2=1.137)
nodeAppend.c (r1.66 -> r1.67)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeAppend.c.diff?r1=1.66&r2=1.67)
nodeBitmapAnd.c (r1.4 -> r1.5)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeBitmapAnd.c.diff?r1=1.4&r2=1.5)
nodeBitmapHeapscan.c (r1.8 -> r1.9)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeBitmapHeapscan.c.diff?r1=1.8&r2=1.9)
nodeBitmapIndexscan.c (r1.15 -> r1.16)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeBitmapIndexscan.c.diff?r1=1.15&r2=1.16)
nodeBitmapOr.c (r1.3 -> r1.4)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeBitmapOr.c.diff?r1=1.3&r2=1.4)
nodeFunctionscan.c (r1.35 -> r1.36)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeFunctionscan.c.diff?r1=1.35&r2=1.36)
nodeGroup.c (r1.62 -> r1.63)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeGroup.c.diff?r1=1.62&r2=1.63)
nodeHash.c (r1.99 -> r1.100)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeHash.c.diff?r1=1.99&r2=1.100)
nodeHashjoin.c (r1.79 -> r1.80)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeHashjoin.c.diff?r1=1.79&r2=1.80)
nodeIndexscan.c (r1.110 -> r1.111)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeIndexscan.c.diff?r1=1.110&r2=1.111)
nodeLimit.c (r1.23 -> r1.24)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeLimit.c.diff?r1=1.23&r2=1.24)
nodeMaterial.c (r1.51 -> r1.52)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeMaterial.c.diff?r1=1.51&r2=1.52)
nodeMergejoin.c (r1.76 -> r1.77)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeMergejoin.c.diff?r1=1.76&r2=1.77)
nodeNestloop.c (r1.40 -> r1.41)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeNestloop.c.diff?r1=1.40&r2=1.41)
nodeResult.c (r1.32 -> r1.33)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeResult.c.diff?r1=1.32&r2=1.33)
nodeSeqscan.c (r1.56 -> r1.57)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeSeqscan.c.diff?r1=1.56&r2=1.57)
nodeSetOp.c (r1.19 -> r1.20)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeSetOp.c.diff?r1=1.19&r2=1.20)
nodeSort.c (r1.53 -> r1.54)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeSort.c.diff?r1=1.53&r2=1.54)
nodeSubplan.c (r1.72 -> r1.73)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeSubplan.c.diff?r1=1.72&r2=1.73)
nodeSubqueryscan.c (r1.27 -> r1.28)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeSubqueryscan.c.diff?r1=1.27&r2=1.28)
nodeTidscan.c (r1.46 -> r1.47)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeTidscan.c.diff?r1=1.46&r2=1.47)
nodeUnique.c (r1.50 -> r1.51)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeUnique.c.diff?r1=1.50&r2=1.51)
spi.c (r1.146 -> r1.147)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/spi.c.diff?r1=1.146&r2=1.147)
pgsql/src/backend/tcop:
pquery.c (r1.99 -> r1.100)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/tcop/pquery.c.diff?r1=1.99&r2=1.100)
pgsql/src/include/executor:
executor.h (r1.124 -> r1.125)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/executor.h.diff?r1=1.124&r2=1.125)
nodeAgg.h (r1.24 -> r1.25)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeAgg.h.diff?r1=1.24&r2=1.25)
nodeAppend.h (r1.23 -> r1.24)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeAppend.h.diff?r1=1.23&r2=1.24)
nodeBitmapAnd.h (r1.1 -> r1.2)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeBitmapAnd.h.diff?r1=1.1&r2=1.2)
nodeBitmapHeapscan.h (r1.1 -> r1.2)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeBitmapHeapscan.h.diff?r1=1.1&r2=1.2)
nodeBitmapIndexscan.h (r1.1 -> r1.2)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeBitmapIndexscan.h.diff?r1=1.1&r2=1.2)
nodeBitmapOr.h (r1.1 -> r1.2)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeBitmapOr.h.diff?r1=1.1&r2=1.2)
nodeFunctionscan.h (r1.7 -> r1.8)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeFunctionscan.h.diff?r1=1.7&r2=1.8)
nodeGroup.h (r1.28 -> r1.29)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeGroup.h.diff?r1=1.28&r2=1.29)
nodeHash.h (r1.38 -> r1.39)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeHash.h.diff?r1=1.38&r2=1.39)
nodeHashjoin.h (r1.30 -> r1.31)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeHashjoin.h.diff?r1=1.30&r2=1.31)
nodeIndexscan.h (r1.26 -> r1.27)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeIndexscan.h.diff?r1=1.26&r2=1.27)
nodeLimit.h (r1.11 -> r1.12)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeLimit.h.diff?r1=1.11&r2=1.12)
nodeMaterial.h (r1.23 -> r1.24)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeMaterial.h.diff?r1=1.23&r2=1.24)
nodeMergejoin.h (r1.22 -> r1.23)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeMergejoin.h.diff?r1=1.22&r2=1.23)
nodeNestloop.h (r1.23 -> r1.24)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeNestloop.h.diff?r1=1.23&r2=1.24)
nodeResult.h (r1.20 -> r1.21)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeResult.h.diff?r1=1.20&r2=1.21)
nodeSeqscan.h (r1.22 -> r1.23)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeSeqscan.h.diff?r1=1.22&r2=1.23)
nodeSetOp.h (r1.11 -> r1.12)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeSetOp.h.diff?r1=1.11&r2=1.12)
nodeSort.h (r1.20 -> r1.21)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeSort.h.diff?r1=1.20&r2=1.21)
nodeSubplan.h (r1.22 -> r1.23)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeSubplan.h.diff?r1=1.22&r2=1.23)
nodeSubqueryscan.h (r1.11 -> r1.12)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeSubqueryscan.h.diff?r1=1.11&r2=1.12)
nodeTidscan.h (r1.15 -> r1.16)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeTidscan.h.diff?r1=1.15&r2=1.16)
nodeUnique.h (r1.20 -> r1.21)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/nodeUnique.h.diff?r1=1.20&r2=1.21)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2006-02-28 05:48:44 pgsql: Teach nodeSort and nodeMaterial to optimize out unnecessary
Previous Message Peter Eisentraut 2006-02-27 16:09:51 pgsql: Clean up CREATE FUNCTION syntax usage in contrib and elsewhere,