diff --git a/src/backend/executor/execProcnode.c b/src/backend/executor/execProcnode.c index 1ae21d5f6c4..bf2b4f0a9f7 100644 --- a/src/backend/executor/execProcnode.c +++ b/src/backend/executor/execProcnode.c @@ -119,6 +119,7 @@ static TupleTableSlot *ExecProcNodeFirst(PlanState *node); static TupleTableSlot *ExecProcNodeInstr(PlanState *node); +static bool ExecShutdownNode_walker(PlanState *node, void *context); /* ------------------------------------------------------------------------ @@ -740,6 +741,12 @@ ExecEndNode(PlanState *node) */ bool ExecShutdownNode(PlanState *node) +{ + return ExecShutdownNode_walker(node, NULL); +} + +static bool +ExecShutdownNode_walker(PlanState *node, void *context) { if (node == NULL) return false; @@ -759,7 +766,7 @@ ExecShutdownNode(PlanState *node) if (node->instrument && node->instrument->running) InstrStartNode(node->instrument); - planstate_tree_walker(node, ExecShutdownNode, NULL); + planstate_tree_walker(node, ExecShutdownNode_walker, context); switch (nodeTag(node)) {