From 1a22877d4985d67cec7ae4af967b51ff0e0cbd89 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Mon, 21 Feb 2022 17:03:34 +0800 Subject: [PATCH] fix error in mode function --- src/query/src/qAggMain.c | 4 ++-- src/query/src/qExecutor.c | 6 +++--- src/query/src/qUtil.c | 4 ++++ 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/query/src/qAggMain.c b/src/query/src/qAggMain.c index a6ff8110ff..71997434b3 100644 --- a/src/query/src/qAggMain.c +++ b/src/query/src/qAggMain.c @@ -5411,8 +5411,8 @@ int32_t functionCompatList[] = { 1, 1, 1, 1, -1, 1, 1, 1, 5, 1, 1, // tid_tag, deriv, csum, mavg, sample, 6, 8, -1, -1, -1, - // block_info,elapsed,histogram,unique - 7, 1, -1, -1 + // block_info,elapsed,histogram,unique,mode + 7, 1, -1, -1, 1 }; SAggFunctionInfo aAggs[TSDB_FUNC_MAX_NUM] = {{ diff --git a/src/query/src/qExecutor.c b/src/query/src/qExecutor.c index ffee9d6b00..f09c56ff0a 100644 --- a/src/query/src/qExecutor.c +++ b/src/query/src/qExecutor.c @@ -3687,7 +3687,7 @@ void setDefaultOutputBuf(SQueryRuntimeEnv *pRuntimeEnv, SOptrBasicInfo *pInfo, i if (pCtx[i].functionId == TSDB_FUNC_UNIQUE) { pCtx[i].pUniqueSet = &pRow->uniqueHash; }else if (pCtx[i].functionId == TSDB_FUNC_MODE) { - pCtx[i].pUniqueSet = &pRow->modeHash; + pCtx[i].pModeSet = &pRow->modeHash; } pCtx[i].pOutput = pData->pData; pCtx[i].currentStage = stage; @@ -4026,7 +4026,7 @@ void setResultRowOutputBufInitCtx(SQueryRuntimeEnv *pRuntimeEnv, SResultRow *pRe if (pCtx[i].functionId == TSDB_FUNC_UNIQUE){ pCtx[i].pUniqueSet = &pResult->uniqueHash; }else if (pCtx[i].functionId == TSDB_FUNC_MODE){ - pCtx[i].pUniqueSet = &pResult->modeHash; + pCtx[i].pModeSet = &pResult->modeHash; } SResultRowCellInfo* pResInfo = pCtx[i].resultInfo; @@ -4124,7 +4124,7 @@ void setResultOutputBuf(SQueryRuntimeEnv *pRuntimeEnv, SResultRow *pResult, SQLF if (pCtx[i].functionId == TSDB_FUNC_UNIQUE) { pCtx[i].pUniqueSet = &pResult->uniqueHash; }else if (pCtx[i].functionId == TSDB_FUNC_MODE) { - pCtx[i].pUniqueSet = &pResult->modeHash; + pCtx[i].pModeSet = &pResult->modeHash; } } } diff --git a/src/query/src/qUtil.c b/src/query/src/qUtil.c index 22bdefd59e..be5abf8dae 100644 --- a/src/query/src/qUtil.c +++ b/src/query/src/qUtil.c @@ -92,6 +92,10 @@ void cleanupResultRowInfo(SResultRowInfo *pResultRowInfo) { taosHashCleanup(pResultRowInfo->pResult[i]->uniqueHash); pResultRowInfo->pResult[i]->uniqueHash = NULL; } + if (pResultRowInfo->pResult[i]->modeHash){ + taosHashCleanup(pResultRowInfo->pResult[i]->modeHash); + pResultRowInfo->pResult[i]->modeHash = NULL; + } } } -- GitLab