aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/execProcnode.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor/execProcnode.c')
-rw-r--r--src/backend/executor/execProcnode.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/backend/executor/execProcnode.c b/src/backend/executor/execProcnode.c
index 5cbd2ea5622..c0f005f1e67 100644
--- a/src/backend/executor/execProcnode.c
+++ b/src/backend/executor/execProcnode.c
@@ -12,7 +12,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/execProcnode.c,v 1.28 2001/10/25 05:49:27 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execProcnode.c,v 1.29 2002/05/12 20:10:02 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -96,6 +96,7 @@
#include "executor/nodeSort.h"
#include "executor/nodeSubplan.h"
#include "executor/nodeSubqueryscan.h"
+#include "executor/nodeFunctionscan.h"
#include "executor/nodeUnique.h"
#include "miscadmin.h"
#include "tcop/tcopprot.h"
@@ -168,6 +169,11 @@ ExecInitNode(Plan *node, EState *estate, Plan *parent)
parent);
break;
+ case T_FunctionScan:
+ result = ExecInitFunctionScan((FunctionScan *) node, estate,
+ parent);
+ break;
+
/*
* join nodes
*/
@@ -297,6 +303,10 @@ ExecProcNode(Plan *node, Plan *parent)
result = ExecSubqueryScan((SubqueryScan *) node);
break;
+ case T_FunctionScan:
+ result = ExecFunctionScan((FunctionScan *) node);
+ break;
+
/*
* join nodes
*/
@@ -392,6 +402,9 @@ ExecCountSlotsNode(Plan *node)
case T_SubqueryScan:
return ExecCountSlotsSubqueryScan((SubqueryScan *) node);
+ case T_FunctionScan:
+ return ExecCountSlotsFunctionScan((FunctionScan *) node);
+
/*
* join nodes
*/
@@ -503,6 +516,10 @@ ExecEndNode(Plan *node, Plan *parent)
ExecEndSubqueryScan((SubqueryScan *) node);
break;
+ case T_FunctionScan:
+ ExecEndFunctionScan((FunctionScan *) node);
+ break;
+
/*
* join nodes
*/
@@ -640,6 +657,14 @@ ExecGetTupType(Plan *node)
}
break;
+ case T_FunctionScan:
+ {
+ CommonScanState *scanstate = ((FunctionScan *) node)->scan.scanstate;
+
+ slot = scanstate->cstate.cs_ResultTupleSlot;
+ }
+ break;
+
case T_Material:
{
MaterialState *matstate = ((Material *) node)->matstate;