From ba2d8b0fac1812b6ca09398a9ef4778690cc3201 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 948d65791..1f9bf8d45 100644 --- a/src/backend/distributed/executor/adaptive_executor.c +++ b/src/backend/distributed/executor/adaptive_executor.c @@ -4558,6 +4558,7 @@ ReceiveResults(WorkerSession *session, bool storeRows) TupleDesc tupleDescriptor = tupleDest->tupleDescForQuery(tupleDest, queryIndex); if (tupleDescriptor == NULL) { + PQclear(result); continue; }