diff --git a/src/client/src/tscGlobalmerge.c b/src/client/src/tscGlobalmerge.c index d4f2b36262c408e95e98898d12559b227731f08c..14e426ee69f1b11fe09ef23d66190c75a2628e10 100644 --- a/src/client/src/tscGlobalmerge.c +++ b/src/client/src/tscGlobalmerge.c @@ -595,7 +595,7 @@ static void doMergeResultImpl(SMultiwayMergeInfo* pInfo, SQLFunctionCtx *pCtx, i for (int32_t j = 0; j < numOfExpr; ++j) { int32_t functionId = pCtx[j].functionId; - if (functionId == TSDB_FUNC_TS_DUMMY) { + if (functionId == TSDB_FUNC_TAG_DUMMY || functionId == TSDB_FUNC_TS_DUMMY) { continue; } diff --git a/src/query/src/qAggMain.c b/src/query/src/qAggMain.c index ebcf04d678de039fff7f1e12b48e625e0bef5dcb..ee56f2927f427dd711eb986b5e3f1f3fa7df19d8 100644 --- a/src/query/src/qAggMain.c +++ b/src/query/src/qAggMain.c @@ -2972,6 +2972,17 @@ static void copy_function(SQLFunctionCtx *pCtx) { assignVal(pCtx->pOutput, pData, pCtx->inputBytes, pCtx->inputType); } +static void full_copy_function(SQLFunctionCtx *pCtx) { + copy_function(pCtx); + + for (int t = 0; t < pCtx->tagInfo.numOfTagCols; ++t) { + SQLFunctionCtx* tagCtx = pCtx->tagInfo.pTagCtxList[t]; + if (tagCtx->functionId == TSDB_FUNC_TAG_DUMMY) { + aAggs[TSDB_FUNC_TAGPRJ].xFunction(tagCtx); + } + } +} + enum { INITIAL_VALUE_NOT_ASSIGNED = 0, }; @@ -5294,7 +5305,7 @@ SAggFunctionInfo aAggs[] = {{ function_setup, interp_function, doFinalizer, - copy_function, + full_copy_function, dataBlockRequired, }, {