diff options
Diffstat (limited to 'src/include/executor')
-rw-r--r-- | src/include/executor/execdesc.h | 22 | ||||
-rw-r--r-- | src/include/executor/executor.h | 61 | ||||
-rw-r--r-- | src/include/executor/nodeAgg.h | 12 | ||||
-rw-r--r-- | src/include/executor/nodeAppend.h | 12 | ||||
-rw-r--r-- | src/include/executor/nodeFunctionscan.h | 16 | ||||
-rw-r--r-- | src/include/executor/nodeGroup.h | 12 | ||||
-rw-r--r-- | src/include/executor/nodeHash.h | 13 | ||||
-rw-r--r-- | src/include/executor/nodeHashjoin.h | 13 | ||||
-rw-r--r-- | src/include/executor/nodeIndexscan.h | 19 | ||||
-rw-r--r-- | src/include/executor/nodeLimit.h | 12 | ||||
-rw-r--r-- | src/include/executor/nodeMaterial.h | 16 | ||||
-rw-r--r-- | src/include/executor/nodeMergejoin.h | 14 | ||||
-rw-r--r-- | src/include/executor/nodeNestloop.h | 13 | ||||
-rw-r--r-- | src/include/executor/nodeResult.h | 12 | ||||
-rw-r--r-- | src/include/executor/nodeSeqscan.h | 16 | ||||
-rw-r--r-- | src/include/executor/nodeSetOp.h | 12 | ||||
-rw-r--r-- | src/include/executor/nodeSort.h | 16 | ||||
-rw-r--r-- | src/include/executor/nodeSubplan.h | 20 | ||||
-rw-r--r-- | src/include/executor/nodeSubqueryscan.h | 12 | ||||
-rw-r--r-- | src/include/executor/nodeTidscan.h | 17 | ||||
-rw-r--r-- | src/include/executor/nodeUnique.h | 12 |
21 files changed, 185 insertions, 167 deletions
diff --git a/src/include/executor/execdesc.h b/src/include/executor/execdesc.h index 363dabe43b4..9a95551d7c8 100644 --- a/src/include/executor/execdesc.h +++ b/src/include/executor/execdesc.h @@ -8,7 +8,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: execdesc.h,v 1.20 2002/09/04 20:31:42 momjian Exp $ + * $Id: execdesc.h,v 1.21 2002/12/05 15:50:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -16,30 +16,38 @@ #define EXECDESC_H #include "nodes/parsenodes.h" -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" #include "tcop/dest.h" /* ---------------- * query descriptor: + * * a QueryDesc encapsulates everything that the executor * needs to execute the query * --------------------- */ typedef struct QueryDesc { + /* These fields are provided by CreateQueryDesc */ CmdType operation; /* CMD_SELECT, CMD_UPDATE, etc. */ - Query *parsetree; - Plan *plantree; + Query *parsetree; /* rewritten parsetree */ + Plan *plantree; /* planner's output */ CommandDest dest; /* the destination output of the execution */ const char *portalName; /* name of portal, or NULL */ + ParamListInfo params; /* param values being passed in */ + bool doInstrument; /* TRUE requests runtime instrumentation */ - TupleDesc tupDesc; /* set by ExecutorStart */ + /* These fields are set by ExecutorStart */ + TupleDesc tupDesc; /* descriptor for result tuples */ + EState *estate; /* executor's query-wide state */ + PlanState *planstate; /* tree of per-plan-node state */ } QueryDesc; /* in pquery.c */ extern QueryDesc *CreateQueryDesc(Query *parsetree, Plan *plantree, - CommandDest dest, const char *portalName); - + CommandDest dest, const char *portalName, + ParamListInfo params, + bool doInstrument); #endif /* EXECDESC_H */ diff --git a/src/include/executor/executor.h b/src/include/executor/executor.h index 33b83bce6fe..df3e52d4f0f 100644 --- a/src/include/executor/executor.h +++ b/src/include/executor/executor.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: executor.h,v 1.80 2002/12/01 20:27:32 tgl Exp $ + * $Id: executor.h,v 1.81 2002/12/05 15:50:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -16,6 +16,7 @@ #include "executor/execdesc.h" + /* ---------------- * TupIsNull * @@ -30,9 +31,9 @@ /* * prototypes from functions in execAmi.c */ -extern void ExecReScan(Plan *node, ExprContext *exprCtxt, Plan *parent); -extern void ExecMarkPos(Plan *node); -extern void ExecRestrPos(Plan *node); +extern void ExecReScan(PlanState *node, ExprContext *exprCtxt); +extern void ExecMarkPos(PlanState *node); +extern void ExecRestrPos(PlanState *node); extern bool ExecSupportsMarkRestore(NodeTag plantype); /* @@ -49,10 +50,12 @@ extern HeapTuple ExecRemoveJunk(JunkFilter *junkfilter, TupleTableSlot *slot); /* * prototypes from functions in execMain.c */ -extern TupleDesc ExecutorStart(QueryDesc *queryDesc, EState *estate); -extern TupleTableSlot *ExecutorRun(QueryDesc *queryDesc, EState *estate, +extern void ExecutorStart(QueryDesc *queryDesc); +extern TupleTableSlot *ExecutorRun(QueryDesc *queryDesc, ScanDirection direction, long count); -extern void ExecutorEnd(QueryDesc *queryDesc, EState *estate); +extern void ExecutorEnd(QueryDesc *queryDesc); +extern EState *CreateExecutorState(void); +extern void ExecCheckRTPerms(List *rangeTable, CmdType operation); extern void ExecConstraints(const char *caller, ResultRelInfo *resultRelInfo, TupleTableSlot *slot, EState *estate); extern TupleTableSlot *EvalPlanQual(EState *estate, Index rti, @@ -61,11 +64,11 @@ extern TupleTableSlot *EvalPlanQual(EState *estate, Index rti, /* * prototypes from functions in execProcnode.c */ -extern bool ExecInitNode(Plan *node, EState *estate, Plan *parent); -extern TupleTableSlot *ExecProcNode(Plan *node, Plan *parent); +extern PlanState *ExecInitNode(Plan *node, EState *estate); +extern TupleTableSlot *ExecProcNode(PlanState *node); extern int ExecCountSlotsNode(Plan *node); -extern void ExecEndNode(Plan *node, Plan *parent); -extern TupleDesc ExecGetTupType(Plan *node); +extern void ExecEndNode(PlanState *node); +extern TupleDesc ExecGetTupType(PlanState *node); /* * prototypes from functions in execQual.c @@ -89,6 +92,7 @@ extern Datum ExecEvalExpr(Node *expression, ExprContext *econtext, bool *isNull, ExprDoneCond *isDone); extern Datum ExecEvalExprSwitchContext(Node *expression, ExprContext *econtext, bool *isNull, ExprDoneCond *isDone); +extern Node *ExecInitExpr(Node *node, PlanState *parent); extern bool ExecQual(List *qual, ExprContext *econtext, bool resultForNull); extern int ExecTargetListLength(List *targetlist); extern int ExecCleanTargetListLength(List *targetlist); @@ -98,9 +102,9 @@ extern TupleTableSlot *ExecProject(ProjectionInfo *projInfo, /* * prototypes from functions in execScan.c */ -typedef TupleTableSlot *(*ExecScanAccessMtd) (Scan *node); +typedef TupleTableSlot *(*ExecScanAccessMtd) (ScanState *node); -extern TupleTableSlot *ExecScan(Scan *node, ExecScanAccessMtd accessMtd); +extern TupleTableSlot *ExecScan(ScanState *node, ExecScanAccessMtd accessMtd); /* * prototypes from functions in execTuples.c @@ -117,14 +121,13 @@ extern TupleTableSlot *ExecClearTuple(TupleTableSlot *slot); extern void ExecSetSlotDescriptor(TupleTableSlot *slot, TupleDesc tupdesc, bool shouldFree); extern void ExecSetSlotDescriptorIsNew(TupleTableSlot *slot, bool isNew); -extern void ExecInitResultTupleSlot(EState *estate, CommonState *commonstate); -extern void ExecInitScanTupleSlot(EState *estate, - CommonScanState *commonscanstate); +extern void ExecInitResultTupleSlot(EState *estate, PlanState *planstate); +extern void ExecInitScanTupleSlot(EState *estate, ScanState *scanstate); extern TupleTableSlot *ExecInitExtraTupleSlot(EState *estate); extern TupleTableSlot *ExecInitNullTupleSlot(EState *estate, TupleDesc tupType); extern TupleDesc ExecTypeFromTL(List *targetList, bool hasoid); -extern void SetChangedParamList(Plan *node, List *newchg); +extern void SetChangedParamList(PlanState *node, List *newchg); typedef struct TupOutputState { @@ -155,21 +158,19 @@ extern void end_tup_output(TupOutputState *tstate); * prototypes from functions in execUtils.c */ extern void ResetTupleCount(void); -extern void ExecAssignExprContext(EState *estate, CommonState *commonstate); -extern void ExecAssignResultType(CommonState *commonstate, +extern void ExecAssignExprContext(EState *estate, PlanState *planstate); +extern void ExecAssignResultType(PlanState *planstate, TupleDesc tupDesc, bool shouldFree); -extern void ExecAssignResultTypeFromOuterPlan(Plan *node, - CommonState *commonstate); -extern void ExecAssignResultTypeFromTL(Plan *node, CommonState *commonstate); -extern TupleDesc ExecGetResultType(CommonState *commonstate); -extern void ExecAssignProjectionInfo(Plan *node, CommonState *commonstate); -extern void ExecFreeProjectionInfo(CommonState *commonstate); -extern void ExecFreeExprContext(CommonState *commonstate); -extern TupleDesc ExecGetScanType(CommonScanState *csstate); -extern void ExecAssignScanType(CommonScanState *csstate, +extern void ExecAssignResultTypeFromOuterPlan(PlanState *planstate); +extern void ExecAssignResultTypeFromTL(PlanState *planstate); +extern TupleDesc ExecGetResultType(PlanState *planstate); +extern void ExecAssignProjectionInfo(PlanState *planstate); +extern void ExecFreeProjectionInfo(PlanState *planstate); +extern void ExecFreeExprContext(PlanState *planstate); +extern TupleDesc ExecGetScanType(ScanState *scanstate); +extern void ExecAssignScanType(ScanState *scanstate, TupleDesc tupDesc, bool shouldFree); -extern void ExecAssignScanTypeFromOuterPlan(Plan *node, - CommonScanState *csstate); +extern void ExecAssignScanTypeFromOuterPlan(ScanState *scanstate); extern ExprContext *MakeExprContext(TupleTableSlot *slot, MemoryContext queryContext); diff --git a/src/include/executor/nodeAgg.h b/src/include/executor/nodeAgg.h index c912d3c9c09..036d67ccaad 100644 --- a/src/include/executor/nodeAgg.h +++ b/src/include/executor/nodeAgg.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeAgg.h,v 1.17 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeAgg.h,v 1.18 2002/12/05 15:50:36 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -15,13 +15,13 @@ #define NODEAGG_H #include "fmgr.h" -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecAgg(Agg *node); -extern bool ExecInitAgg(Agg *node, EState *estate, Plan *parent); extern int ExecCountSlotsAgg(Agg *node); -extern void ExecEndAgg(Agg *node); -extern void ExecReScanAgg(Agg *node, ExprContext *exprCtxt, Plan *parent); +extern AggState *ExecInitAgg(Agg *node, EState *estate); +extern TupleTableSlot *ExecAgg(AggState *node); +extern void ExecEndAgg(AggState *node); +extern void ExecReScanAgg(AggState *node, ExprContext *exprCtxt); extern Datum aggregate_dummy(PG_FUNCTION_ARGS); diff --git a/src/include/executor/nodeAppend.h b/src/include/executor/nodeAppend.h index 4e9255b795d..3d18b66d164 100644 --- a/src/include/executor/nodeAppend.h +++ b/src/include/executor/nodeAppend.h @@ -7,19 +7,19 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeAppend.h,v 1.17 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeAppend.h,v 1.18 2002/12/05 15:50:37 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODEAPPEND_H #define NODEAPPEND_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern bool ExecInitAppend(Append *node, EState *estate, Plan *parent); extern int ExecCountSlotsAppend(Append *node); -extern TupleTableSlot *ExecProcAppend(Append *node); -extern void ExecEndAppend(Append *node); -extern void ExecReScanAppend(Append *node, ExprContext *exprCtxt, Plan *parent); +extern AppendState *ExecInitAppend(Append *node, EState *estate); +extern TupleTableSlot *ExecProcAppend(AppendState *node); +extern void ExecEndAppend(AppendState *node); +extern void ExecReScanAppend(AppendState *node, ExprContext *exprCtxt); #endif /* NODEAPPEND_H */ diff --git a/src/include/executor/nodeFunctionscan.h b/src/include/executor/nodeFunctionscan.h index 9a59cd217a4..893d6b097ef 100644 --- a/src/include/executor/nodeFunctionscan.h +++ b/src/include/executor/nodeFunctionscan.h @@ -7,21 +7,21 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeFunctionscan.h,v 1.2 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeFunctionscan.h,v 1.3 2002/12/05 15:50:37 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODEFUNCTIONSCAN_H #define NODEFUNCTIONSCAN_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecFunctionScan(FunctionScan *node); -extern void ExecEndFunctionScan(FunctionScan *node); -extern bool ExecInitFunctionScan(FunctionScan *node, EState *estate, Plan *parent); extern int ExecCountSlotsFunctionScan(FunctionScan *node); -extern void ExecFunctionMarkPos(FunctionScan *node); -extern void ExecFunctionRestrPos(FunctionScan *node); -extern void ExecFunctionReScan(FunctionScan *node, ExprContext *exprCtxt, Plan *parent); +extern FunctionScanState *ExecInitFunctionScan(FunctionScan *node, EState *estate); +extern TupleTableSlot *ExecFunctionScan(FunctionScanState *node); +extern void ExecEndFunctionScan(FunctionScanState *node); +extern void ExecFunctionMarkPos(FunctionScanState *node); +extern void ExecFunctionRestrPos(FunctionScanState *node); +extern void ExecFunctionReScan(FunctionScanState *node, ExprContext *exprCtxt); #endif /* NODEFUNCTIONSCAN_H */ diff --git a/src/include/executor/nodeGroup.h b/src/include/executor/nodeGroup.h index b3c4e5bbd05..211e55b6cad 100644 --- a/src/include/executor/nodeGroup.h +++ b/src/include/executor/nodeGroup.h @@ -7,20 +7,20 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeGroup.h,v 1.22 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeGroup.h,v 1.23 2002/12/05 15:50:37 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODEGROUP_H #define NODEGROUP_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecGroup(Group *node); -extern bool ExecInitGroup(Group *node, EState *estate, Plan *parent); extern int ExecCountSlotsGroup(Group *node); -extern void ExecEndGroup(Group *node); -extern void ExecReScanGroup(Group *node, ExprContext *exprCtxt, Plan *parent); +extern GroupState *ExecInitGroup(Group *node, EState *estate); +extern TupleTableSlot *ExecGroup(GroupState *node); +extern void ExecEndGroup(GroupState *node); +extern void ExecReScanGroup(GroupState *node, ExprContext *exprCtxt); extern bool execTuplesMatch(HeapTuple tuple1, HeapTuple tuple2, diff --git a/src/include/executor/nodeHash.h b/src/include/executor/nodeHash.h index 654906cd3c2..c30073ec8cf 100644 --- a/src/include/executor/nodeHash.h +++ b/src/include/executor/nodeHash.h @@ -7,19 +7,21 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeHash.h,v 1.26 2002/11/30 00:08:20 tgl Exp $ + * $Id: nodeHash.h,v 1.27 2002/12/05 15:50:37 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODEHASH_H #define NODEHASH_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecHash(Hash *node); -extern bool ExecInitHash(Hash *node, EState *estate, Plan *parent); extern int ExecCountSlotsHash(Hash *node); -extern void ExecEndHash(Hash *node); +extern HashState *ExecInitHash(Hash *node, EState *estate); +extern TupleTableSlot *ExecHash(HashState *node); +extern void ExecEndHash(HashState *node); +extern void ExecReScanHash(HashState *node, ExprContext *exprCtxt); + extern HashJoinTable ExecHashTableCreate(Hash *node); extern void ExecHashTableDestroy(HashJoinTable hashtable); extern void ExecHashTableInsert(HashJoinTable hashtable, @@ -31,7 +33,6 @@ extern int ExecHashGetBucket(HashJoinTable hashtable, extern HeapTuple ExecScanHashBucket(HashJoinState *hjstate, List *hjclauses, ExprContext *econtext); extern void ExecHashTableReset(HashJoinTable hashtable, long ntuples); -extern void ExecReScanHash(Hash *node, ExprContext *exprCtxt, Plan *parent); extern void ExecChooseHashTableSize(double ntuples, int tupwidth, int *virtualbuckets, int *physicalbuckets, diff --git a/src/include/executor/nodeHashjoin.h b/src/include/executor/nodeHashjoin.h index d13a8c9b05b..9233c0758a4 100644 --- a/src/include/executor/nodeHashjoin.h +++ b/src/include/executor/nodeHashjoin.h @@ -7,20 +7,21 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeHashjoin.h,v 1.23 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeHashjoin.h,v 1.24 2002/12/05 15:50:37 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODEHASHJOIN_H #define NODEHASHJOIN_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecHashJoin(HashJoin *node); -extern bool ExecInitHashJoin(HashJoin *node, EState *estate, Plan *parent); extern int ExecCountSlotsHashJoin(HashJoin *node); -extern void ExecEndHashJoin(HashJoin *node); +extern HashJoinState *ExecInitHashJoin(HashJoin *node, EState *estate); +extern TupleTableSlot *ExecHashJoin(HashJoinState *node); +extern void ExecEndHashJoin(HashJoinState *node); +extern void ExecReScanHashJoin(HashJoinState *node, ExprContext *exprCtxt); + extern void ExecHashJoinSaveTuple(HeapTuple heapTuple, BufFile *file); -extern void ExecReScanHashJoin(HashJoin *node, ExprContext *exprCtxt, Plan *parent); #endif /* NODEHASHJOIN_H */ diff --git a/src/include/executor/nodeIndexscan.h b/src/include/executor/nodeIndexscan.h index 26596e5fdd4..392807cce05 100644 --- a/src/include/executor/nodeIndexscan.h +++ b/src/include/executor/nodeIndexscan.h @@ -7,22 +7,23 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeIndexscan.h,v 1.16 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeIndexscan.h,v 1.17 2002/12/05 15:50:38 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODEINDEXSCAN_H #define NODEINDEXSCAN_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecIndexScan(IndexScan *node); -extern void ExecIndexReScan(IndexScan *node, ExprContext *exprCtxt, Plan *parent); -extern void ExecEndIndexScan(IndexScan *node); -extern void ExecIndexMarkPos(IndexScan *node); -extern void ExecIndexRestrPos(IndexScan *node); -extern void ExecUpdateIndexScanKeys(IndexScan *node, ExprContext *econtext); -extern bool ExecInitIndexScan(IndexScan *node, EState *estate, Plan *parent); extern int ExecCountSlotsIndexScan(IndexScan *node); +extern IndexScanState *ExecInitIndexScan(IndexScan *node, EState *estate); +extern TupleTableSlot *ExecIndexScan(IndexScanState *node); +extern void ExecEndIndexScan(IndexScanState *node); +extern void ExecIndexMarkPos(IndexScanState *node); +extern void ExecIndexRestrPos(IndexScanState *node); +extern void ExecIndexReScan(IndexScanState *node, ExprContext *exprCtxt); + +extern void ExecUpdateIndexScanKeys(IndexScanState *node, ExprContext *econtext); #endif /* NODEINDEXSCAN_H */ diff --git a/src/include/executor/nodeLimit.h b/src/include/executor/nodeLimit.h index 16fa6072bee..5b50335ee42 100644 --- a/src/include/executor/nodeLimit.h +++ b/src/include/executor/nodeLimit.h @@ -7,19 +7,19 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeLimit.h,v 1.6 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeLimit.h,v 1.7 2002/12/05 15:50:38 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODELIMIT_H #define NODELIMIT_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecLimit(Limit *node); -extern bool ExecInitLimit(Limit *node, EState *estate, Plan *parent); extern int ExecCountSlotsLimit(Limit *node); -extern void ExecEndLimit(Limit *node); -extern void ExecReScanLimit(Limit *node, ExprContext *exprCtxt, Plan *parent); +extern LimitState *ExecInitLimit(Limit *node, EState *estate); +extern TupleTableSlot *ExecLimit(LimitState *node); +extern void ExecEndLimit(LimitState *node); +extern void ExecReScanLimit(LimitState *node, ExprContext *exprCtxt); #endif /* NODELIMIT_H */ diff --git a/src/include/executor/nodeMaterial.h b/src/include/executor/nodeMaterial.h index 818fe7590ae..8235bc82c83 100644 --- a/src/include/executor/nodeMaterial.h +++ b/src/include/executor/nodeMaterial.h @@ -7,21 +7,21 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeMaterial.h,v 1.18 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeMaterial.h,v 1.19 2002/12/05 15:50:38 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODEMATERIAL_H #define NODEMATERIAL_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecMaterial(Material *node); -extern bool ExecInitMaterial(Material *node, EState *estate, Plan *parent); extern int ExecCountSlotsMaterial(Material *node); -extern void ExecEndMaterial(Material *node); -extern void ExecMaterialMarkPos(Material *node); -extern void ExecMaterialRestrPos(Material *node); -extern void ExecMaterialReScan(Material *node, ExprContext *exprCtxt, Plan *parent); +extern MaterialState *ExecInitMaterial(Material *node, EState *estate); +extern TupleTableSlot *ExecMaterial(MaterialState *node); +extern void ExecEndMaterial(MaterialState *node); +extern void ExecMaterialMarkPos(MaterialState *node); +extern void ExecMaterialRestrPos(MaterialState *node); +extern void ExecMaterialReScan(MaterialState *node, ExprContext *exprCtxt); #endif /* NODEMATERIAL_H */ diff --git a/src/include/executor/nodeMergejoin.h b/src/include/executor/nodeMergejoin.h index b7ed7cd75b4..1187d6bce29 100644 --- a/src/include/executor/nodeMergejoin.h +++ b/src/include/executor/nodeMergejoin.h @@ -7,19 +7,19 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeMergejoin.h,v 1.17 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeMergejoin.h,v 1.18 2002/12/05 15:50:38 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODEMERGEJOIN_H #define NODEMERGEJOIN_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecMergeJoin(MergeJoin *node); -extern bool ExecInitMergeJoin(MergeJoin *node, EState *estate, Plan *parent); extern int ExecCountSlotsMergeJoin(MergeJoin *node); -extern void ExecEndMergeJoin(MergeJoin *node); -extern void ExecReScanMergeJoin(MergeJoin *node, ExprContext *exprCtxt, Plan *parent); +extern MergeJoinState *ExecInitMergeJoin(MergeJoin *node, EState *estate); +extern TupleTableSlot *ExecMergeJoin(MergeJoinState *node); +extern void ExecEndMergeJoin(MergeJoinState *node); +extern void ExecReScanMergeJoin(MergeJoinState *node, ExprContext *exprCtxt); -#endif /* NODEMERGEJOIN_H; */ +#endif /* NODEMERGEJOIN_H */ diff --git a/src/include/executor/nodeNestloop.h b/src/include/executor/nodeNestloop.h index e6224753edc..fd48820bbd9 100644 --- a/src/include/executor/nodeNestloop.h +++ b/src/include/executor/nodeNestloop.h @@ -7,20 +7,19 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeNestloop.h,v 1.18 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeNestloop.h,v 1.19 2002/12/05 15:50:38 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODENESTLOOP_H #define NODENESTLOOP_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecNestLoop(NestLoop *node); -extern bool ExecInitNestLoop(NestLoop *node, EState *estate, Plan *parent); extern int ExecCountSlotsNestLoop(NestLoop *node); -extern void ExecEndNestLoop(NestLoop *node); -extern void ExecReScanNestLoop(NestLoop *node, ExprContext *exprCtxt, - Plan *parent); +extern NestLoopState *ExecInitNestLoop(NestLoop *node, EState *estate); +extern TupleTableSlot *ExecNestLoop(NestLoopState *node); +extern void ExecEndNestLoop(NestLoopState *node); +extern void ExecReScanNestLoop(NestLoopState *node, ExprContext *exprCtxt); #endif /* NODENESTLOOP_H */ diff --git a/src/include/executor/nodeResult.h b/src/include/executor/nodeResult.h index 5d90cda001d..8a446408309 100644 --- a/src/include/executor/nodeResult.h +++ b/src/include/executor/nodeResult.h @@ -7,19 +7,19 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeResult.h,v 1.15 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeResult.h,v 1.16 2002/12/05 15:50:38 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODERESULT_H #define NODERESULT_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecResult(Result *node); -extern bool ExecInitResult(Result *node, EState *estate, Plan *parent); extern int ExecCountSlotsResult(Result *node); -extern void ExecEndResult(Result *node); -extern void ExecReScanResult(Result *node, ExprContext *exprCtxt, Plan *parent); +extern ResultState *ExecInitResult(Result *node, EState *estate); +extern TupleTableSlot *ExecResult(ResultState *node); +extern void ExecEndResult(ResultState *node); +extern void ExecReScanResult(ResultState *node, ExprContext *exprCtxt); #endif /* NODERESULT_H */ diff --git a/src/include/executor/nodeSeqscan.h b/src/include/executor/nodeSeqscan.h index 86d591c88c9..683c4ab7dc9 100644 --- a/src/include/executor/nodeSeqscan.h +++ b/src/include/executor/nodeSeqscan.h @@ -7,21 +7,21 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeSeqscan.h,v 1.15 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeSeqscan.h,v 1.16 2002/12/05 15:50:38 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODESEQSCAN_H #define NODESEQSCAN_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecSeqScan(SeqScan *node); -extern bool ExecInitSeqScan(SeqScan *node, EState *estate, Plan *parent); extern int ExecCountSlotsSeqScan(SeqScan *node); -extern void ExecEndSeqScan(SeqScan *node); -extern void ExecSeqReScan(SeqScan *node, ExprContext *exprCtxt, Plan *parent); -extern void ExecSeqMarkPos(SeqScan *node); -extern void ExecSeqRestrPos(SeqScan *node); +extern SeqScanState *ExecInitSeqScan(SeqScan *node, EState *estate); +extern TupleTableSlot *ExecSeqScan(SeqScanState *node); +extern void ExecEndSeqScan(SeqScanState *node); +extern void ExecSeqMarkPos(SeqScanState *node); +extern void ExecSeqRestrPos(SeqScanState *node); +extern void ExecSeqReScan(SeqScanState *node, ExprContext *exprCtxt); #endif /* NODESEQSCAN_H */ diff --git a/src/include/executor/nodeSetOp.h b/src/include/executor/nodeSetOp.h index eb1b8c25189..73b1e7f5fc5 100644 --- a/src/include/executor/nodeSetOp.h +++ b/src/include/executor/nodeSetOp.h @@ -7,19 +7,19 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeSetOp.h,v 1.6 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeSetOp.h,v 1.7 2002/12/05 15:50:38 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODESETOP_H #define NODESETOP_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecSetOp(SetOp *node); -extern bool ExecInitSetOp(SetOp *node, EState *estate, Plan *parent); extern int ExecCountSlotsSetOp(SetOp *node); -extern void ExecEndSetOp(SetOp *node); -extern void ExecReScanSetOp(SetOp *node, ExprContext *exprCtxt, Plan *parent); +extern SetOpState *ExecInitSetOp(SetOp *node, EState *estate); +extern TupleTableSlot *ExecSetOp(SetOpState *node); +extern void ExecEndSetOp(SetOpState *node); +extern void ExecReScanSetOp(SetOpState *node, ExprContext *exprCtxt); #endif /* NODESETOP_H */ diff --git a/src/include/executor/nodeSort.h b/src/include/executor/nodeSort.h index ca2d1d5fb8a..7836b32ab5b 100644 --- a/src/include/executor/nodeSort.h +++ b/src/include/executor/nodeSort.h @@ -7,21 +7,21 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeSort.h,v 1.15 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeSort.h,v 1.16 2002/12/05 15:50:38 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODESORT_H #define NODESORT_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecSort(Sort *node); -extern bool ExecInitSort(Sort *node, EState *estate, Plan *parent); extern int ExecCountSlotsSort(Sort *node); -extern void ExecEndSort(Sort *node); -extern void ExecSortMarkPos(Sort *node); -extern void ExecSortRestrPos(Sort *node); -extern void ExecReScanSort(Sort *node, ExprContext *exprCtxt, Plan *parent); +extern SortState *ExecInitSort(Sort *node, EState *estate); +extern TupleTableSlot *ExecSort(SortState *node); +extern void ExecEndSort(SortState *node); +extern void ExecSortMarkPos(SortState *node); +extern void ExecSortRestrPos(SortState *node); +extern void ExecReScanSort(SortState *node, ExprContext *exprCtxt); #endif /* NODESORT_H */ diff --git a/src/include/executor/nodeSubplan.h b/src/include/executor/nodeSubplan.h index a061a420258..c573cf900df 100644 --- a/src/include/executor/nodeSubplan.h +++ b/src/include/executor/nodeSubplan.h @@ -2,18 +2,26 @@ * * nodeSubplan.h * + * + * + * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * $Id: nodeSubplan.h,v 1.12 2002/12/05 15:50:38 tgl Exp $ + * *------------------------------------------------------------------------- */ #ifndef NODESUBPLAN_H #define NODESUBPLAN_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern Datum ExecSubPlan(SubPlan *node, List *pvar, ExprContext *econtext, +extern SubPlanState *ExecInitSubPlan(SubPlan *node, EState *estate); +extern Datum ExecSubPlan(SubPlanState *node, List *pvar, ExprContext *econtext, bool *isNull); -extern bool ExecInitSubPlan(SubPlan *node, EState *estate, Plan *parent); -extern void ExecReScanSetParamPlan(SubPlan *node, Plan *parent); -extern void ExecSetParamPlan(SubPlan *node, ExprContext *econtext); -extern void ExecEndSubPlan(SubPlan *node); +extern void ExecEndSubPlan(SubPlanState *node); +extern void ExecReScanSetParamPlan(SubPlanState *node, PlanState *parent); + +extern void ExecSetParamPlan(SubPlanState *node, ExprContext *econtext); #endif /* NODESUBPLAN_H */ diff --git a/src/include/executor/nodeSubqueryscan.h b/src/include/executor/nodeSubqueryscan.h index e1a5f01aaf2..5c5d5c88439 100644 --- a/src/include/executor/nodeSubqueryscan.h +++ b/src/include/executor/nodeSubqueryscan.h @@ -7,19 +7,19 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeSubqueryscan.h,v 1.6 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeSubqueryscan.h,v 1.7 2002/12/05 15:50:38 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODESUBQUERYSCAN_H #define NODESUBQUERYSCAN_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecSubqueryScan(SubqueryScan *node); -extern void ExecEndSubqueryScan(SubqueryScan *node); -extern bool ExecInitSubqueryScan(SubqueryScan *node, EState *estate, Plan *parent); extern int ExecCountSlotsSubqueryScan(SubqueryScan *node); -extern void ExecSubqueryReScan(SubqueryScan *node, ExprContext *exprCtxt, Plan *parent); +extern SubqueryScanState *ExecInitSubqueryScan(SubqueryScan *node, EState *estate); +extern TupleTableSlot *ExecSubqueryScan(SubqueryScanState *node); +extern void ExecEndSubqueryScan(SubqueryScanState *node); +extern void ExecSubqueryReScan(SubqueryScanState *node, ExprContext *exprCtxt); #endif /* NODESUBQUERYSCAN_H */ diff --git a/src/include/executor/nodeTidscan.h b/src/include/executor/nodeTidscan.h index 72e6c3e78f2..9aadb592ca1 100644 --- a/src/include/executor/nodeTidscan.h +++ b/src/include/executor/nodeTidscan.h @@ -7,22 +7,21 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeTidscan.h,v 1.10 2002/11/30 05:21:03 tgl Exp $ + * $Id: nodeTidscan.h,v 1.11 2002/12/05 15:50:38 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODETIDSCAN_H #define NODETIDSCAN_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecTidScan(TidScan *node); -extern void ExecTidReScan(TidScan *node, ExprContext *exprCtxt, Plan *parent); -extern void ExecEndTidScan(TidScan *node); -extern void ExecTidMarkPos(TidScan *node); -extern void ExecTidRestrPos(TidScan *node); -extern bool ExecInitTidScan(TidScan *node, EState *estate, Plan *parent); extern int ExecCountSlotsTidScan(TidScan *node); -extern void ExecTidReScan(TidScan *node, ExprContext *exprCtxt, Plan *parent); +extern TidScanState *ExecInitTidScan(TidScan *node, EState *estate); +extern TupleTableSlot *ExecTidScan(TidScanState *node); +extern void ExecEndTidScan(TidScanState *node); +extern void ExecTidMarkPos(TidScanState *node); +extern void ExecTidRestrPos(TidScanState *node); +extern void ExecTidReScan(TidScanState *node, ExprContext *exprCtxt); #endif /* NODETIDSCAN_H */ diff --git a/src/include/executor/nodeUnique.h b/src/include/executor/nodeUnique.h index f829b653389..d71997e531c 100644 --- a/src/include/executor/nodeUnique.h +++ b/src/include/executor/nodeUnique.h @@ -7,19 +7,19 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodeUnique.h,v 1.15 2002/06/20 20:29:49 momjian Exp $ + * $Id: nodeUnique.h,v 1.16 2002/12/05 15:50:38 tgl Exp $ * *------------------------------------------------------------------------- */ #ifndef NODEUNIQUE_H #define NODEUNIQUE_H -#include "nodes/plannodes.h" +#include "nodes/execnodes.h" -extern TupleTableSlot *ExecUnique(Unique *node); -extern bool ExecInitUnique(Unique *node, EState *estate, Plan *parent); extern int ExecCountSlotsUnique(Unique *node); -extern void ExecEndUnique(Unique *node); -extern void ExecReScanUnique(Unique *node, ExprContext *exprCtxt, Plan *parent); +extern UniqueState *ExecInitUnique(Unique *node, EState *estate); +extern TupleTableSlot *ExecUnique(UniqueState *node); +extern void ExecEndUnique(UniqueState *node); +extern void ExecReScanUnique(UniqueState *node, ExprContext *exprCtxt); #endif /* NODEUNIQUE_H */ |