aboutsummaryrefslogtreecommitdiff
path: root/src/backend/nodes/copyfuncs.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2007-02-19 02:23:12 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2007-02-19 02:23:12 +0000
commitb8c326779246d6554a0868270639714cc4989a0e (patch)
tree886a2bb16966a9c3ef9e29a2a8767a98f46fa0dd /src/backend/nodes/copyfuncs.c
parentf1f2b2711a4c91064a5e64def9816c11f1bd4276 (diff)
downloadpostgresql-b8c326779246d6554a0868270639714cc4989a0e.tar.gz
postgresql-b8c326779246d6554a0868270639714cc4989a0e.zip
Put function expressions and values lists into FunctionScan and ValuesScan
plan nodes, so that the executor does not need to get these items from the range table at runtime. This will avoid needing to include these fields in the compact range table I'm expecting to make the executor use.
Diffstat (limited to 'src/backend/nodes/copyfuncs.c')
-rw-r--r--src/backend/nodes/copyfuncs.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c
index 2d38d7fd60c..cdf98de568a 100644
--- a/src/backend/nodes/copyfuncs.c
+++ b/src/backend/nodes/copyfuncs.c
@@ -15,7 +15,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.365 2007/02/03 14:06:54 petere Exp $
+ * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.366 2007/02/19 02:23:11 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -363,6 +363,14 @@ _copyFunctionScan(FunctionScan *from)
*/
CopyScanFields((Scan *) from, (Scan *) newnode);
+ /*
+ * copy remainder of node
+ */
+ COPY_NODE_FIELD(funcexpr);
+ COPY_NODE_FIELD(funccolnames);
+ COPY_NODE_FIELD(funccoltypes);
+ COPY_NODE_FIELD(funccoltypmods);
+
return newnode;
}
@@ -379,6 +387,11 @@ _copyValuesScan(ValuesScan *from)
*/
CopyScanFields((Scan *) from, (Scan *) newnode);
+ /*
+ * copy remainder of node
+ */
+ COPY_NODE_FIELD(values_lists);
+
return newnode;
}