diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 2842ea2d42..9b5ddcdb6e 100755 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -7548,6 +7548,9 @@ static int32_t rewriteColsFunction(STranslateContext* pCxt, SNodeList** nodeList SNodeList* pNewNodeList = NULL; if (needRewrite) { + if (pCxt->createStream) { + return TSDB_CODE_PAR_INVALID_COLS_FUNCTION; + } code = nodesMakeList(&pNewNodeList); if (NULL == pNewNodeList) { return code; diff --git a/tests/pytest/util/tserror.py b/tests/pytest/util/tserror.py index 0d88d78e80..6dca0012ef 100644 --- a/tests/pytest/util/tserror.py +++ b/tests/pytest/util/tserror.py @@ -15,3 +15,5 @@ TSDB_CODE_UDF_FUNC_EXEC_FAILURE = (TAOS_DEF_ERROR_CODE | 0x290A) TSDB_CODE_TSC_INTERNAL_ERROR = (TAOS_DEF_ERROR_CODE | 0x02FF) TSDB_CODE_PAR_SYNTAX_ERROR = (TAOS_DEF_ERROR_CODE | 0x2600) + +TSDB_CODE_PAR_INVALID_COLS_FUNCTION = (TAOS_DEF_ERROR_CODE | 0x2687) diff --git a/tests/system-test/2-query/cols_function.py b/tests/system-test/2-query/cols_function.py index 085c95dd9a..7707fbccb5 100644 --- a/tests/system-test/2-query/cols_function.py +++ b/tests/system-test/2-query/cols_function.py @@ -4,6 +4,7 @@ from util.log import * from util.cases import * from util.sql import * from util.common import * +from util.tserror import * import numpy as np @@ -935,8 +936,12 @@ class TDTestCase: tdSql.checkCols(3) tdSql.checkData(0, 0, 'd0') tdSql.checkData(0, 1, 1734574929000) - tdSql.checkData(0, 2, 1) - + tdSql.checkData(0, 2, 1) + + def stream_cols_test(self): + tdSql.error(f'CREATE STREAM last_col_s1 INTO last_col1 AS SELECT cols(last(ts), ts, c0) FROM meters PARTITION BY tbname INTERVAL(1s) SLIDING(1s);', TSDB_CODE_PAR_INVALID_COLS_FUNCTION) + tdSql.query(f'CREATE STREAM last_col_s INTO last_col AS SELECT last(ts), c0 FROM meters PARTITION BY tbname INTERVAL(1s) SLIDING(1s);') + def run(self): self.funcNestTest() self.funcSupperTableTest() @@ -947,6 +952,7 @@ class TDTestCase: self.subquery_test() self.window_test() self.join_test() + self.stream_cols_test() def stop(self): tdSql.close()