From fa3e3036e8682bf2ce487739a62343fed8b720ad Mon Sep 17 00:00:00 2001 From: Ganlin Zhao Date: Mon, 17 Jan 2022 10:49:41 +0800 Subject: [PATCH] [TD-12861](query): taoshell crash : coredump for such as "select first(c1)==max(c1) from st" --- src/client/src/tscSQLParser.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index 14a4c64d16..36b42532de 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -4665,6 +4665,8 @@ static int32_t validateSQLExprItemArithmeticExpr(SSqlCmd* pCmd, tSqlExpr* pExpr, const char* msg1 = "arithmetic expression composed with columns from different tables"; const char* msg2 = "arithmetic expression composed with functions/columns of different types"; const char* msg3 = "comparison/logical expression involving string operands is not supported"; + const char* msg4 = "comparison/logical expression involving fucntion result is not supported"; + int32_t leftHeight = 0; int32_t ret = validateSQLExprItem(pCmd, pExpr->pLeft, pQueryInfo, pList, &leftType, &uidLeft, &leftHeight); if (ret != TSDB_CODE_SUCCESS) { @@ -4707,6 +4709,10 @@ static int32_t validateSQLExprItemArithmeticExpr(SSqlCmd* pCmd, tSqlExpr* pExpr, (rightType == SQLEXPR_TYPE_VALUE && pExpr->pRight->tokenId == TK_STRING)) { return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg3); } + if (leftType == SQLEXPR_TYPE_AGG || leftType == SQLEXPR_TYPE_SCALAR || + rightType == SQLEXPR_TYPE_AGG || rightType == SQLEXPR_TYPE_SCALAR) { + return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg4); + } } } return TSDB_CODE_SUCCESS; -- GitLab