From 1dfbbd51e778c924b2958c69308adf02681d0801 Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Thu, 26 Dec 2002 22:37:42 +0000 Subject: [PATCH] Don't try to free executor state of an InitPlan early --- this breaks EXPLAIN ANALYZE. (Premature optimization is the root of all evil?) --- src/backend/executor/nodeSubplan.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/backend/executor/nodeSubplan.c b/src/backend/executor/nodeSubplan.c index 2f5ab52e213..5a6950e0bee 100644 --- a/src/backend/executor/nodeSubplan.c +++ b/src/backend/executor/nodeSubplan.c @@ -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) -- GitLab