summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim B. Mikheev2000-04-07 07:24:47 +0000
committerVadim B. Mikheev2000-04-07 07:24:47 +0000
commit71b4790b6d7e35ba7a8f8197f2a2ddd663983ac2 (patch)
tree359c759c8cd7db6350f14be36010bf93d624a84d
parente4d8d43c52927960c4f0741c7183dc7b9259a4e1 (diff)
Commebts & one check in EndEvalPlanQual().
-rw-r--r--src/backend/executor/execMain.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index d19baaa84dc..bbcba0fbc12 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -27,7 +27,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.111 2000/04/07 00:59:17 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.112 2000/04/07 07:24:47 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2022,15 +2022,21 @@ EndEvalPlanQual(EState *estate)
EState *epqstate = &(epq->estate);
evalPlanQual *oldepq;
- if (epq->rti == 0) /* still live? */
+ if (epq->rti == 0) /* plans already shutdowned */
+ {
+ Assert(epq->estate.es_evalPlanQual == NULL);
return;
+ }
for (;;)
{
ExecEndNode(epq->plan, epq->plan);
epqstate->es_tupleTable->next = 0;
- heap_freetuple(epqstate->es_evTuple[epq->rti - 1]);
- epqstate->es_evTuple[epq->rti - 1] = NULL;
+ if (epqstate->es_evTuple[epq->rti - 1] != NULL)
+ {
+ heap_freetuple(epqstate->es_evTuple[epq->rti - 1]);
+ epqstate->es_evTuple[epq->rti - 1] = NULL;
+ }
/* pop old PQ from the stack */
oldepq = (evalPlanQual *) epqstate->es_evalPlanQual;
if (oldepq == (evalPlanQual *) NULL)