From e62315c244ec9fe592de3c738d0d4ec6f3b88316 Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Fri, 23 Dec 2022 15:12:53 +0800 Subject: [PATCH] fix: keepColumnName parameter changes the user alias --- include/libs/nodes/querynodes.h | 1 + source/libs/parser/src/parAstCreater.c | 1 + source/libs/parser/src/parTranslater.c | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/libs/nodes/querynodes.h b/include/libs/nodes/querynodes.h index 02dd971d9c..48b98fcf33 100644 --- a/include/libs/nodes/querynodes.h +++ b/include/libs/nodes/querynodes.h @@ -51,6 +51,7 @@ typedef struct SExprNode { char userAlias[TSDB_COL_NAME_LEN]; SArray* pAssociation; bool orderAlias; + bool asAlias; } SExprNode; typedef enum EColumnType { diff --git a/source/libs/parser/src/parAstCreater.c b/source/libs/parser/src/parAstCreater.c index b23adaabb5..4077c27840 100644 --- a/source/libs/parser/src/parAstCreater.c +++ b/source/libs/parser/src/parAstCreater.c @@ -680,6 +680,7 @@ SNode* setProjectionAlias(SAstCreateContext* pCxt, SNode* pNode, SToken* pAlias) pExpr->aliasName[len] = '\0'; strncpy(pExpr->userAlias, pAlias->z, len); pExpr->userAlias[len] = '\0'; + pExpr->asAlias = true; return pNode; } diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index d4feef6cb4..37703534d6 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -1579,7 +1579,7 @@ static int32_t translateMultiResFunc(STranslateContext* pCxt, SFunctionNode* pFu "%s(*) is only supported in SELECTed list", pFunc->functionName); } } - if (tsKeepColumnName && 1 == LIST_LENGTH(pFunc->pParameterList)) { + if (tsKeepColumnName && 1 == LIST_LENGTH(pFunc->pParameterList) && !pFunc->node.asAlias) { strcpy(pFunc->node.userAlias, ((SExprNode*)nodesListGetNode(pFunc->pParameterList, 0))->userAlias); } return TSDB_CODE_SUCCESS;