From 6cf47c0a38f980c56a3d59f87000dd2efa77075a Mon Sep 17 00:00:00 2001 From: aykut-bozkurt <51649454+aykut-bozkurt@users.noreply.github.com> Date: Fri, 17 Feb 2023 14:15:09 +0300 Subject: [PATCH] fix single tuple result memory leak (#6724) We should not omit to free PGResult when we receive single tuple result from an internal backend. Single tuple results are normally freed by our ReceiveResults for `tupleDescriptor != NULL` flow but not for those with `tupleDescriptor == NULL`. See PR #6722 for details. DESCRIPTION: Fixes memory leak issue with query results that returns single row. (cherry picked from commit 9e69dd0e7fac2f8854618941c51ce0d7654ba4f3) --- src/backend/distributed/executor/adaptive_executor.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/distributed/executor/adaptive_executor.c b/src/backend/distributed/executor/adaptive_executor.c index ed4ad6b07..892e5e126 100644 --- a/src/backend/distributed/executor/adaptive_executor.c +++ b/src/backend/distributed/executor/adaptive_executor.c @@ -4302,6 +4302,7 @@ ReceiveResults(WorkerSession *session, bool storeRows) TupleDesc tupleDescriptor = tupleDest->tupleDescForQuery(tupleDest, queryIndex); if (tupleDescriptor == NULL) { + PQclear(result); continue; }