From 4142ec3eb8de7c9e3dc648942e42af24f9e2799c Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Tue, 20 Apr 2021 17:08:27 +0800 Subject: [PATCH] [td-2859] refactor and fix memory leaks. --- src/query/src/qExecutor.c | 7 ++++++- src/query/src/qSqlParser.c | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/query/src/qExecutor.c b/src/query/src/qExecutor.c index 063eece4ff..1c1f3914a3 100644 --- a/src/query/src/qExecutor.c +++ b/src/query/src/qExecutor.c @@ -4409,6 +4409,11 @@ SArray* getResultGroupCheckColumns(SQueryAttr* pQuery) { return pOrderColumns; } +static void destroyGlobalAggOperatorInfo(void* param, int32_t numOfOutput) { + SMultiwayMergeInfo *pInfo = (SMultiwayMergeInfo*) param; + destroyBasicOperatorInfo(&pInfo->binfo, numOfOutput); +} + SOperatorInfo* createGlobalAggregateOperatorInfo(SQueryRuntimeEnv* pRuntimeEnv, SOperatorInfo* upstream, SExprInfo* pExpr, int32_t numOfOutput, void* param) { SMultiwayMergeInfo* pInfo = calloc(1, sizeof(SMultiwayMergeInfo)); @@ -4471,7 +4476,7 @@ SOperatorInfo* createGlobalAggregateOperatorInfo(SQueryRuntimeEnv* pRuntimeEnv, pOperator->pRuntimeEnv = pRuntimeEnv; pOperator->exec = doGlobalAggregate; - pOperator->cleanup = destroyBasicOperatorInfo; + pOperator->cleanup = destroyGlobalAggOperatorInfo; return pOperator; } diff --git a/src/query/src/qSqlParser.c b/src/query/src/qSqlParser.c index f51e87f404..ea8e45e63f 100644 --- a/src/query/src/qSqlParser.c +++ b/src/query/src/qSqlParser.c @@ -744,7 +744,7 @@ void destroyAllSqlNode(SArray *pList) { size_t size = taosArrayGetSize(pList); for(int32_t i = 0; i < size; ++i) { - SSqlNode *pNode = taosArrayGetP(pList, 0); + SSqlNode *pNode = taosArrayGetP(pList, i); destroySqlNode(pNode); } -- GitLab