summaryrefslogtreecommitdiff
path: root/src/backend/executor/execAmi.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2008-10-01 19:51:50 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2008-10-01 19:51:50 +0000
commitdad4cb6258382e99409c3e0673f1a5ec5b8bf03f (patch)
treefc13e11ae4ec12a824befec58c61fe8e5b398197 /src/backend/executor/execAmi.c
parent233f135144ffc02512490eaffdb2575284a3af9d (diff)
downloadpostgresql-dad4cb6258382e99409c3e0673f1a5ec5b8bf03f.tar.gz
Improve tuplestore.c to support multiple concurrent read positions.
This facility replaces the former mark/restore support but is otherwise upward-compatible with previous uses. It's expected to be needed for single evaluation of CTEs and also for window functions, so I'm committing it separately instead of waiting for either one of those patches to be finished. Per discussion with Greg Stark and Hitoshi Harada. Note: I removed nodeFunctionscan's mark/restore support, instead of bothering to update it for this change, because it was dead code anyway.
Diffstat (limited to 'src/backend/executor/execAmi.c')
-rw-r--r--src/backend/executor/execAmi.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/src/backend/executor/execAmi.c b/src/backend/executor/execAmi.c
index 1381a4a4f0..afddf4d392 100644
--- a/src/backend/executor/execAmi.c
+++ b/src/backend/executor/execAmi.c
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/executor/execAmi.c,v 1.97 2008/08/05 21:28:29 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/execAmi.c,v 1.98 2008/10/01 19:51:49 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -239,10 +239,6 @@ ExecMarkPos(PlanState *node)
ExecTidMarkPos((TidScanState *) node);
break;
- case T_FunctionScanState:
- ExecFunctionMarkPos((FunctionScanState *) node);
- break;
-
case T_ValuesScanState:
ExecValuesMarkPos((ValuesScanState *) node);
break;
@@ -296,10 +292,6 @@ ExecRestrPos(PlanState *node)
ExecTidRestrPos((TidScanState *) node);
break;
- case T_FunctionScanState:
- ExecFunctionRestrPos((FunctionScanState *) node);
- break;
-
case T_ValuesScanState:
ExecValuesRestrPos((ValuesScanState *) node);
break;
@@ -332,7 +324,7 @@ ExecRestrPos(PlanState *node)
* (However, since the only present use of mark/restore is in mergejoin,
* there is no need to support mark/restore in any plan type that is not
* capable of generating ordered output. So the seqscan, tidscan,
- * functionscan, and valuesscan support is actually useless code at present.)
+ * and valuesscan support is actually useless code at present.)
*/
bool
ExecSupportsMarkRestore(NodeTag plantype)
@@ -342,7 +334,6 @@ ExecSupportsMarkRestore(NodeTag plantype)
case T_SeqScan:
case T_IndexScan:
case T_TidScan:
- case T_FunctionScan:
case T_ValuesScan:
case T_Material:
case T_Sort: