From 6779c55c228ba5904dc767a7882b47a2b4c74ff7 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Wed, 27 Feb 2002 19:36:13 +0000 Subject: 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. --- src/include/executor/execdefs.h | 19 +------------------ src/include/executor/execdesc.h | 9 +++++++-- src/include/executor/executor.h | 4 ++-- 3 files changed, 10 insertions(+), 22 deletions(-) (limited to 'src/include/executor') 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,30 +7,13 @@ * 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 $ * *------------------------------------------------------------------------- */ #ifndef EXECDEFS_H #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); -- cgit v1.2.3