From 068e96f6f429121a59cb217aa63a26ce6d81ddca Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Tue, 23 Nov 2021 19:33:13 +0800 Subject: [PATCH] [TS-653]: forbidden count(tbname) to mix up with agg, proj etc. --- src/client/src/tscSQLParser.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index 556c5dd545..88082a4034 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -3516,6 +3516,7 @@ static bool functionCompatibleCheck(SQueryInfo* pQueryInfo, bool joinQuery, bool int32_t scalarUdf = 0; int32_t prjNum = 0; int32_t aggNum = 0; + int32_t countTbname = 0; size_t numOfExpr = tscNumOfExprs(pQueryInfo); assert(numOfExpr > 0); @@ -3566,9 +3567,13 @@ static bool functionCompatibleCheck(SQueryInfo* pQueryInfo, bool joinQuery, bool if (functionId == TSDB_FUNC_LAST_ROW && (joinQuery || twQuery || !groupbyTagsOrNull(pQueryInfo))) { return false; } + + if (functionId == TSDB_FUNC_COUNT && pExpr1->base.colInfo.colId == TSDB_TBNAME_COLUMN_INDEX) { + ++countTbname; + } } - aggNum = (int32_t)size - prjNum - aggUdf - scalarUdf; + aggNum = (int32_t)size - prjNum - aggUdf - scalarUdf - countTbname; assert(aggNum >= 0); @@ -3580,6 +3585,10 @@ static bool functionCompatibleCheck(SQueryInfo* pQueryInfo, bool joinQuery, bool return false; } + if (countTbname && (prjNum > 0 || aggNum > 0 || scalarUdf > 0)) { + return false; + } + return true; } -- GitLab