From f2c871f2f5fe98d3137e232ca1e7cebb0e2a5e19 Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Fri, 12 Apr 2024 11:07:26 +0800 Subject: [PATCH] fix: union precision issue --- source/libs/parser/src/parTranslater.c | 2 ++ tests/parallel_test/cases.task | 1 + tests/script/tsim/query/union_precision.sim | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 tests/script/tsim/query/union_precision.sim diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 3a37d841aa..da2bde4b87 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -11093,6 +11093,8 @@ static int32_t setQuery(STranslateContext* pCxt, SQuery* pQuery) { if (nodeType(pQuery->pRoot) == QUERY_NODE_SELECT_STMT) { pQuery->precision = extractResultTsPrecision((SSelectStmt*)pQuery->pRoot); + } else if (nodeType(pQuery->pRoot) == QUERY_NODE_SET_OPERATOR) { + pQuery->precision = ((SSetOperator*)pQuery->pRoot)->precision; } } diff --git a/tests/parallel_test/cases.task b/tests/parallel_test/cases.task index 2402f6a94a..e62af177ef 100644 --- a/tests/parallel_test/cases.task +++ b/tests/parallel_test/cases.task @@ -1167,6 +1167,7 @@ ,,y,script,./test.sh -f tsim/query/apercentile.sim ,,y,script,./test.sh -f tsim/query/query_count0.sim ,,y,script,./test.sh -f tsim/query/query_count_sliding0.sim +,,y,script,./test.sh -f tsim/query/union_precision.sim ,,y,script,./test.sh -f tsim/qnode/basic1.sim ,,y,script,./test.sh -f tsim/snode/basic1.sim ,,y,script,./test.sh -f tsim/mnode/basic1.sim diff --git a/tests/script/tsim/query/union_precision.sim b/tests/script/tsim/query/union_precision.sim new file mode 100644 index 0000000000..1377bf2c52 --- /dev/null +++ b/tests/script/tsim/query/union_precision.sim @@ -0,0 +1,18 @@ +system sh/stop_dnodes.sh +system sh/deploy.sh -n dnode1 -i 1 +system sh/exec.sh -n dnode1 -s start +sql connect + +sql create database tt precision 'us'; +sql use tt ; +sql CREATE TABLE t_test_table ( ts TIMESTAMP, a NCHAR(80), b NCHAR(80), c NCHAR(80) ); +sql insert into t_test_table values('2024-04-07 14:30:22.823','aa','aa', 'aa'); +sql select * from t_test_table t union all select * from t_test_table t ; +if $rows != 2 then + return -1 +endi +if $data00 != @24-04-07 14:30:22.823000@ then + return -1 +endi + +system sh/exec.sh -n dnode1 -s stop -x SIGINT