diff --git a/src/backend/executor/nodeGather.c b/src/backend/executor/nodeGather.c index b6e82d1664f83dedcdf1e1eb8e8e35071ffcff76..f8c1ba637d316028a984dce5749de76f5139c37b 100644 --- a/src/backend/executor/nodeGather.c +++ b/src/backend/executor/nodeGather.c @@ -190,7 +190,7 @@ ExecGather(GatherState *node) /* No workers? Then never mind. */ if (!got_any_worker) - ExecShutdownGather(node); + ExecShutdownGatherWorkers(node); } /* Run plan locally if no workers or not single-copy. */ @@ -402,6 +402,8 @@ ExecShutdownGatherWorkers(GatherState *node) for (i = 0; i < node->nreaders; ++i) DestroyTupleQueueReader(node->reader[i]); + + pfree(node->reader); node->reader = NULL; }