From 36b60ab082ef9aa3b0a4365fe9f8bb50c61b691a Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Mon, 22 Aug 2022 11:28:58 +0800 Subject: [PATCH] opti:grou by tag --- source/libs/executor/src/executil.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/source/libs/executor/src/executil.c b/source/libs/executor/src/executil.c index 0ba669c34e..66da50f2d5 100644 --- a/source/libs/executor/src/executil.c +++ b/source/libs/executor/src/executil.c @@ -634,8 +634,9 @@ int32_t getColInfoResultForGroupby(void* metaHandle, SNodeList* group, STableLis SScalarParam output = {0}; switch (nodeType(pNode)) { - case QUERY_NODE_COLUMN: case QUERY_NODE_VALUE: + break; + case QUERY_NODE_COLUMN: case QUERY_NODE_OPERATOR: case QUERY_NODE_FUNCTION:{ SExprNode* expNode = (SExprNode*)pNode; @@ -646,9 +647,18 @@ int32_t getColInfoResultForGroupby(void* metaHandle, SNodeList* group, STableLis break; } default: - ASSERT(0); + code = TSDB_CODE_OPS_NOT_SUPPORT; + goto end; + } + if(nodeType(pNode) == QUERY_NODE_COLUMN){ + SColumnNode* pSColumnNode = (SColumnNode*)pNode; + SColumnInfoData* pColInfo = (SColumnInfoData*)taosArrayGet(pResBlock->pDataBlock, pSColumnNode->slotId); + code = colDataAssign(output.columnData, pColInfo, rows, NULL); + }else if(nodeType(pNode) == QUERY_NODE_VALUE){ + continue; + }else{ + code = scalarCalculate(pNode, pBlockList, &output); } - code = scalarCalculate(pNode, pBlockList, &output); if(code != TSDB_CODE_SUCCESS){ releaseColInfoData(output.columnData); goto end;