mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-24 18:55:04 +08:00
Don't try to free executor state of an InitPlan early --- this breaks
EXPLAIN ANALYZE. (Premature optimization is the root of all evil?)
This commit is contained in:
parent
061d4e2079
commit
1dfbbd51e7
@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/executor/nodeSubplan.c,v 1.39 2002/12/15 16:17:46 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/executor/nodeSubplan.c,v 1.40 2002/12/26 22:37:42 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -475,15 +475,6 @@ ExecSetParamPlan(SubPlanState *node, ExprContext *econtext)
|
||||
}
|
||||
}
|
||||
|
||||
if (planstate->plan->extParam == NULL) /* un-correlated ... */
|
||||
{
|
||||
ExecEndPlan(planstate, node->sub_estate);
|
||||
/* mustn't free context while still in it... */
|
||||
MemoryContextSwitchTo(oldcontext);
|
||||
FreeExecutorState(node->sub_estate);
|
||||
node->needShutdown = false;
|
||||
}
|
||||
|
||||
MemoryContextSwitchTo(oldcontext);
|
||||
}
|
||||
|
||||
@ -502,6 +493,8 @@ ExecEndSubPlan(SubPlanState *node)
|
||||
ExecEndPlan(node->planstate, node->sub_estate);
|
||||
MemoryContextSwitchTo(oldcontext);
|
||||
FreeExecutorState(node->sub_estate);
|
||||
node->sub_estate = NULL;
|
||||
node->planstate = NULL;
|
||||
node->needShutdown = false;
|
||||
}
|
||||
if (node->curTuple)
|
||||
|
Loading…
Reference in New Issue
Block a user