diff --git a/src/query/src/qAggMain.c b/src/query/src/qAggMain.c index a6ff8110ff221470d6444cd87ed51610f1257dad..71997434b30f7a5329a36a0ee938eca6c3363aa0 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 ffee9d6b00260b44a53d80698324c0c953b828da..f09c56ff0a892da9c47ad3131dac631b6518d936 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 22bdefd59ef8844a560bb2944f8e61ad15f5f27f..be5abf8daefdacf6a5164e504d616eb550166c17 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; + } } }