diff options
Diffstat (limited to 'src/backend/executor/execProcnode.c')
-rw-r--r-- | src/backend/executor/execProcnode.c | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/src/backend/executor/execProcnode.c b/src/backend/executor/execProcnode.c index e8b2a2eacb..d1783ccf70 100644 --- a/src/backend/executor/execProcnode.c +++ b/src/backend/executor/execProcnode.c @@ -7,12 +7,12 @@ * ExecProcNode, or ExecEndNode on its subnodes and do the appropriate * processing. * - * Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group + * Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/executor/execProcnode.c,v 1.70 2010/01/02 16:57:41 momjian Exp $ + * src/backend/executor/execProcnode.c * *------------------------------------------------------------------------- */ @@ -85,6 +85,7 @@ #include "executor/nodeBitmapIndexscan.h" #include "executor/nodeBitmapOr.h" #include "executor/nodeCtescan.h" +#include "executor/nodeForeignscan.h" #include "executor/nodeFunctionscan.h" #include "executor/nodeGroup.h" #include "executor/nodeHash.h" @@ -93,6 +94,7 @@ #include "executor/nodeLimit.h" #include "executor/nodeLockRows.h" #include "executor/nodeMaterial.h" +#include "executor/nodeMergeAppend.h" #include "executor/nodeMergejoin.h" #include "executor/nodeModifyTable.h" #include "executor/nodeNestloop.h" @@ -160,6 +162,11 @@ ExecInitNode(Plan *node, EState *estate, int eflags) estate, eflags); break; + case T_MergeAppend: + result = (PlanState *) ExecInitMergeAppend((MergeAppend *) node, + estate, eflags); + break; + case T_RecursiveUnion: result = (PlanState *) ExecInitRecursiveUnion((RecursiveUnion *) node, estate, eflags); @@ -228,6 +235,11 @@ ExecInitNode(Plan *node, EState *estate, int eflags) estate, eflags); break; + case T_ForeignScan: + result = (PlanState *) ExecInitForeignScan((ForeignScan *) node, + estate, eflags); + break; + /* * join nodes */ @@ -350,7 +362,7 @@ ExecProcNode(PlanState *node) CHECK_FOR_INTERRUPTS(); if (node->chgParam != NULL) /* something changed */ - ExecReScan(node, NULL); /* let ReScan handle this */ + ExecReScan(node); /* let ReScan handle this */ if (node->instrument) InstrStartNode(node->instrument); @@ -372,6 +384,10 @@ ExecProcNode(PlanState *node) result = ExecAppend((AppendState *) node); break; + case T_MergeAppendState: + result = ExecMergeAppend((MergeAppendState *) node); + break; + case T_RecursiveUnionState: result = ExecRecursiveUnion((RecursiveUnionState *) node); break; @@ -421,6 +437,10 @@ ExecProcNode(PlanState *node) result = ExecWorkTableScan((WorkTableScanState *) node); break; + case T_ForeignScanState: + result = ExecForeignScan((ForeignScanState *) node); + break; + /* * join nodes */ @@ -519,7 +539,7 @@ MultiExecProcNode(PlanState *node) CHECK_FOR_INTERRUPTS(); if (node->chgParam != NULL) /* something changed */ - ExecReScan(node, NULL); /* let ReScan handle this */ + ExecReScan(node); /* let ReScan handle this */ switch (nodeTag(node)) { @@ -596,6 +616,10 @@ ExecEndNode(PlanState *node) ExecEndAppend((AppendState *) node); break; + case T_MergeAppendState: + ExecEndMergeAppend((MergeAppendState *) node); + break; + case T_RecursiveUnionState: ExecEndRecursiveUnion((RecursiveUnionState *) node); break; @@ -651,6 +675,10 @@ ExecEndNode(PlanState *node) ExecEndWorkTableScan((WorkTableScanState *) node); break; + case T_ForeignScanState: + ExecEndForeignScan((ForeignScanState *) node); + break; + /* * join nodes */ |