From f291039030b30f15ef9e6f820e5072bc9b147755 Mon Sep 17 00:00:00 2001 From: 54liuyao <54liuyao@163.com> Date: Fri, 9 Dec 2022 17:52:58 +0800 Subject: [PATCH] fix:max_row crash --- src/client/src/tscSQLParser.c | 2 +- tests/script/general/column/table.sim | 53 +++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index 4ddd16063a..6e3f6c2657 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -8366,7 +8366,7 @@ static void doUpdateSqlFunctionForColTagPrj(SQueryInfo* pQueryInfo) { SExprInfo* pExpr = tscExprGet(pQueryInfo, i); if (pExpr->base.functionId == TSDB_FUNC_MIN_ROW || pExpr->base.functionId == TSDB_FUNC_MAX_ROW) { continue; - } else if (pExpr->base.functionId == TSDB_FUNC_PRJ) { + } else if (pExpr->base.functionId == TSDB_FUNC_PRJ && pExpr->base.numOfParams == 0) { pExpr->base.functionId = TSDB_FUNC_COL_DUMMY; tagLength += pExpr->base.resBytes; } diff --git a/tests/script/general/column/table.sim b/tests/script/general/column/table.sim index 46d5de1e82..f7f880eeb2 100644 --- a/tests/script/general/column/table.sim +++ b/tests/script/general/column/table.sim @@ -212,4 +212,57 @@ if $data07 != 2.872281323 then return -1 endi +#for max_row +sql select ts, 'aaa' a, 1 b, 1.1111 c, max_row(c001), *, 'bbb' a1, 2 b1, 2.1111 c1 from d1.t1 + +print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 +print $data08 $data09 + +if $rows != 1 then + print =====rows=$rows; + return -1 +endi + +if $data01 != aaa then + print =====data01=$data01; + return -1 +endi + +if $data02 != 1 then + print =====data02=$data02; + return -1 +endi + +if $data03 != 1.111100000 then + print =====data03=$data03; + return -1 +endi + +#for min_row +sql select ts, 'aaa' a, 1 b, 1.1111 c, min_row(c001), *, 'bbb' a1, 2 b1, 2.1111 c1 from d1.t1 + +print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 +print $data08 $data09 + +if $rows != 1 then + print =====rows=$rows; + return -1 +endi + +if $data01 != aaa then + print =====data01=$data01; + return -1 +endi + +if $data02 != 1 then + print =====data02=$data02; + return -1 +endi + +if $data03 != 1.111100000 then + print =====data03=$data03; + return -1 +endi + + system sh/exec.sh -n dnode1 -s stop -x SIGINT \ No newline at end of file -- GitLab