summaryrefslogtreecommitdiff
path: root/src/include/executor
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2002-02-27 19:36:13 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2002-02-27 19:36:13 +0000
commit6779c55c228ba5904dc767a7882b47a2b4c74ff7 (patch)
tree27a1df60ccf81098405bd477d653da6edebce6c0 /src/include/executor
parente22c9c44756da85bf1e453f83bf260c9e5ef5813 (diff)
Clean up BeginCommand and related routines. BeginCommand and EndCommand
are now both invoked once per received SQL command (raw parsetree) from pg_exec_query_string. BeginCommand is actually just an empty routine at the moment --- all its former operations have been pushed into tuple receiver setup routines in printtup.c. This makes for a clean distinction between BeginCommand/EndCommand (once per command) and the tuple receiver setup/teardown routines (once per ExecutorRun call), whereas the old code was quite ad hoc. Along the way, clean up the calling conventions for ExecutorRun a little bit.
Diffstat (limited to 'src/include/executor')
-rw-r--r--src/include/executor/execdefs.h19
-rw-r--r--src/include/executor/execdesc.h9
-rw-r--r--src/include/executor/executor.h4
3 files changed, 10 insertions, 22 deletions
diff --git a/src/include/executor/execdefs.h b/src/include/executor/execdefs.h
index b6e71957716..bdb4dce13c6 100644
--- a/src/include/executor/execdefs.h
+++ b/src/include/executor/execdefs.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: execdefs.h,v 1.11 2001/11/05 17:46:33 momjian Exp $
+ * $Id: execdefs.h,v 1.12 2002/02/27 19:35:51 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -15,23 +15,6 @@
#define EXECDEFS_H
/* ----------------
- * ExecutePlan() tuplecount definitions
- * ----------------
- */
-#define ALL_TUPLES 0 /* return all tuples */
-#define ONE_TUPLE 1 /* return only one tuple */
-
-/* ----------------
- * constants used by ExecMain
- * ----------------
- */
-#define EXEC_RUN 3
-#define EXEC_FOR 4
-#define EXEC_BACK 5
-#define EXEC_RETONE 6
-#define EXEC_RESULT 7
-
-/* ----------------
* Merge Join states
* ----------------
*/
diff --git a/src/include/executor/execdesc.h b/src/include/executor/execdesc.h
index 55bf52ed38d..87915e9c07e 100644
--- a/src/include/executor/execdesc.h
+++ b/src/include/executor/execdesc.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: execdesc.h,v 1.17 2001/11/05 17:46:33 momjian Exp $
+ * $Id: execdesc.h,v 1.18 2002/02/27 19:35:54 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -19,6 +19,7 @@
#include "nodes/plannodes.h"
#include "tcop/dest.h"
+
/* ----------------
* query descriptor:
* a QueryDesc encapsulates everything that the executor
@@ -31,10 +32,14 @@ typedef struct QueryDesc
Query *parsetree;
Plan *plantree;
CommandDest dest; /* the destination output of the execution */
+ const char *portalName; /* name of portal, or NULL */
+
+ TupleDesc tupDesc; /* set by ExecutorStart */
} QueryDesc;
/* in pquery.c */
extern QueryDesc *CreateQueryDesc(Query *parsetree, Plan *plantree,
- CommandDest dest);
+ CommandDest dest, const char *portalName);
+
#endif /* EXECDESC_H */
diff --git a/src/include/executor/executor.h b/src/include/executor/executor.h
index c089a47731f..63bc10f79dc 100644
--- a/src/include/executor/executor.h
+++ b/src/include/executor/executor.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: executor.h,v 1.62 2002/02/19 20:11:19 tgl Exp $
+ * $Id: executor.h,v 1.63 2002/02/27 19:35:59 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -50,7 +50,7 @@ extern HeapTuple ExecRemoveJunk(JunkFilter *junkfilter, TupleTableSlot *slot);
*/
extern TupleDesc ExecutorStart(QueryDesc *queryDesc, EState *estate);
extern TupleTableSlot *ExecutorRun(QueryDesc *queryDesc, EState *estate,
- int feature, long count);
+ ScanDirection direction, long count);
extern void ExecutorEnd(QueryDesc *queryDesc, EState *estate);
extern void ExecConstraints(char *caller, ResultRelInfo *resultRelInfo,
TupleTableSlot *slot, EState *estate);