This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-4.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-4.0 by this push:
new bd6dad23957 [test](variable)add up and down test case of variables
persistence (#58818)
bd6dad23957 is described below
commit bd6dad2395716693a5d3079986542cf31d81c0f4
Author: zfr95 <[email protected]>
AuthorDate: Fri Dec 12 09:26:21 2025 +0800
[test](variable)add up and down test case of variables persistence (#58818)
[test](variable)add up and down test case of variables persistence
### What problem does this PR solve?
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
### Release note
None
### Check List (For Author)
- Test <!-- At least one of them must be included. -->
- [ ] Regression test
- [ ] Unit Test
- [ ] Manual test (add detailed scripts or steps below)
- [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
- [ ] Previous test can cover this change.
- [ ] No code files have been changed.
- [ ] Other reason <!-- Add your reason? -->
- Behavior changed:
- [ ] No.
- [ ] Yes. <!-- Explain the behavior change -->
- Does this need documentation?
- [ ] No.
- [ ] Yes. <!-- Add document PR link here. eg:
https://github.com/apache/doris-website/pull/1214 -->
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
---
.../data/variables_up_down_alias_function/load.out | 37 +++
.../variables_up_down_test_alias_function.out | 37 +++
.../data/variables_up_down_decimalv3/load.out | 9 +
.../variables_up_down_test_decimalv3.out | 17 ++
.../variables_up_down_generated_column/load.out | 25 ++
.../variables_up_down_test_generated_column.out | 49 ++++
.../data/variables_up_down_mtmv/load.out | 13 ++
.../variables_up_down_test_mtmv.out | 21 ++
.../variables_up_down_view_var_persist/load.out | 95 ++++++++
.../variables_up_down_test_view_var_persist.out | 95 ++++++++
.../variables_up_down_alias_function/load.groovy | 106 +++++++++
.../variables_up_down_test_alias_function.groovy | 50 ++++
.../suites/variables_up_down_decimalv3/load.groovy | 31 +++
.../variables_up_down_test_decimalv3.groovy | 54 +++++
.../variables_up_down_generated_column/load.groovy | 172 ++++++++++++++
.../variables_up_down_test_generated_column.groovy | 61 +++++
.../suites/variables_up_down_mtmv/load.groovy | 65 ++++++
.../variables_up_down_test_mtmv.groovy | 55 +++++
.../variables_up_down_view_var_persist/load.groovy | 258 +++++++++++++++++++++
.../variables_up_down_test_view_var_persist.groovy | 95 ++++++++
20 files changed, 1345 insertions(+)
diff --git a/regression-test/data/variables_up_down_alias_function/load.out
b/regression-test/data/variables_up_down_alias_function/load.out
new file mode 100644
index 00000000000..f0b7e8c365d
--- /dev/null
+++ b/regression-test/data/variables_up_down_alias_function/load.out
@@ -0,0 +1,37 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !multiply_add_master_sql --
+999999999999998246906000000001.76833464
+
+-- !multiply_add_master_sql --
+999999999999998246906000000001.76833464
+
+-- !add_master_sql --
+2.02469136
+
+-- !add_master_sql --
+2.02469136
+
+-- !subtract_master_sql --
+0E-8
+
+-- !subtract_master_sql --
+0E-8
+
+-- !divide_master_sql --
+0.9999999990
+
+-- !divide_master_sql --
+0.9999999990
+
+-- !mod_master_sql --
+1.012345678
+
+-- !mod_master_sql --
+1.012345678
+
+-- !nested_master_sql --
+1000000000000000246905999999999.0152346
+
+-- !nested_master_sql --
+1000000000000000246905999999999.0152346
+
diff --git
a/regression-test/data/variables_up_down_alias_function/variables_up_down_test_alias_function.out
b/regression-test/data/variables_up_down_alias_function/variables_up_down_test_alias_function.out
new file mode 100644
index 00000000000..f0b7e8c365d
--- /dev/null
+++
b/regression-test/data/variables_up_down_alias_function/variables_up_down_test_alias_function.out
@@ -0,0 +1,37 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !multiply_add_master_sql --
+999999999999998246906000000001.76833464
+
+-- !multiply_add_master_sql --
+999999999999998246906000000001.76833464
+
+-- !add_master_sql --
+2.02469136
+
+-- !add_master_sql --
+2.02469136
+
+-- !subtract_master_sql --
+0E-8
+
+-- !subtract_master_sql --
+0E-8
+
+-- !divide_master_sql --
+0.9999999990
+
+-- !divide_master_sql --
+0.9999999990
+
+-- !mod_master_sql --
+1.012345678
+
+-- !mod_master_sql --
+1.012345678
+
+-- !nested_master_sql --
+1000000000000000246905999999999.0152346
+
+-- !nested_master_sql --
+1000000000000000246905999999999.0152346
+
diff --git a/regression-test/data/variables_up_down_decimalv3/load.out
b/regression-test/data/variables_up_down_decimalv3/load.out
new file mode 100644
index 00000000000..45268ad5dfa
--- /dev/null
+++ b/regression-test/data/variables_up_down_decimalv3/load.out
@@ -0,0 +1,9 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !sum0_master_sql --
+21.200000
+30.200000
+
+-- !avg0_master_sql --
+10.600000
+15.100000
+
diff --git
a/regression-test/data/variables_up_down_decimalv3/variables_up_down_test_decimalv3.out
b/regression-test/data/variables_up_down_decimalv3/variables_up_down_test_decimalv3.out
new file mode 100644
index 00000000000..ce2542cfdfe
--- /dev/null
+++
b/regression-test/data/variables_up_down_decimalv3/variables_up_down_test_decimalv3.out
@@ -0,0 +1,17 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !sum0_master_sql --
+21.200000
+30.200000
+
+-- !avg0_master_sql --
+10.600000
+15.100000
+
+-- !sum_256_0_master_sql --
+21.200000
+30.200000
+
+-- !avg_256_0_master_sql --
+10.600000
+15.100000
+
diff --git a/regression-test/data/variables_up_down_generated_column/load.out
b/regression-test/data/variables_up_down_generated_column/load.out
new file mode 100644
index 00000000000..b7c6a674651
--- /dev/null
+++ b/regression-test/data/variables_up_down_generated_column/load.out
@@ -0,0 +1,25 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !c_scale_is_11_master_sql --
+1.12343 1.123457 1.26212530000
+
+-- !divide_scale_master_sql --
+100.123456789012345678 2.123456789012345678 47.151162814846538704
+
+-- !add_sub_mod_master_sql --
+1.012345678 1.0123456789 2.0246913569 -9E-10 9E-10
+
+-- !nested_cols_master_sql --
+1.12343 1.123457 1.26212529751 2.26212529751
+
+-- !complex_expr_master_sql --
+1.12343 1.123457 1.26212529751 2.38555529751 0.13866829751
+
+-- !gen_col_case_master_sql --
+1.12343 1.123457 1.26212529751 1.26212529751
+
+-- !gen_col_if_master_sql --
+1.12343 1.123457 1.26212529751
+
+-- !gen_col_funcs_master_sql --
+1.12343 1.123457 1.26212529751 1.26212529751 1.12345700000
+
diff --git
a/regression-test/data/variables_up_down_generated_column/variables_up_down_test_generated_column.out
b/regression-test/data/variables_up_down_generated_column/variables_up_down_test_generated_column.out
new file mode 100644
index 00000000000..6c1491c2ee0
--- /dev/null
+++
b/regression-test/data/variables_up_down_generated_column/variables_up_down_test_generated_column.out
@@ -0,0 +1,49 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !c_scale_is_128_master_sql --
+1.12343 1.123457 1.26212530000
+
+-- !c_scale_is_256_master_sql --
+1.12343 1.123457 1.26212530000
+
+-- !divide_scale_master_sql --
+100.123456789012345678 2.123456789012345678 47.151162814846538704
+
+-- !divide_scale_256_master_sql --
+100.123456789012345678 2.123456789012345678 47.151162814846538704
+
+-- !add_sub_mod1_master_sql --
+1.012345678 1.0123456789 2.0246913569 -9E-10 9E-10
+
+-- !add_sub_mod2_master_sql --
+1.012345678 1.0123456789 2.0246913569 -9E-10 9E-10
+
+-- !nested_cols1_master_sql --
+1.12343 1.123457 1.26212529751 2.26212529751
+
+-- !nested_cols2_master_sql --
+1.12343 1.123457 1.26212529751 2.26212529751
+
+-- !complex_expr1_master_sql --
+1.12343 1.123457 1.26212529751 2.38555529751 0.13866829751
+
+-- !complex_expr2_master_sql --
+1.12343 1.123457 1.26212529751 2.38555529751 0.13866829751
+
+-- !gen_col_case1_master_sql --
+1.12343 1.123457 1.26212529751 1.26212529751
+
+-- !gen_col_case2_master_sql --
+1.12343 1.123457 1.26212529751 1.26212529751
+
+-- !gen_col_if1_master_sql --
+1.12343 1.123457 1.26212529751
+
+-- !gen_col_if2_master_sql --
+1.12343 1.123457 1.26212529751
+
+-- !gen_col_funcs1_master_sql --
+1.12343 1.123457 1.26212529751 1.26212529751 1.12345700000
+
+-- !gen_col_funcs2_master_sql --
+1.12343 1.123457 1.26212529751 1.26212529751 1.12345700000
+
diff --git a/regression-test/data/variables_up_down_mtmv/load.out
b/regression-test/data/variables_up_down_mtmv/load.out
new file mode 100644
index 00000000000..449254cbd5d
--- /dev/null
+++ b/regression-test/data/variables_up_down_mtmv/load.out
@@ -0,0 +1,13 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !refresh_master_sql --
+1.12345 1.234567 1.38697430000
+999999999999999.12345 999999999999999.123456
999999999999998246906000000000.76833464000
+
+-- !rewite_open256_master_sql --
+1.12345 1.234567 1.38697430000
+999999999999999.12345 999999999999999.123456
999999999999998246906000000000.76833464000
+
+-- !rewite_open128_master_sql --
+1.12345 1.234567 1.38697430000
+999999999999999.12345 999999999999999.123456
999999999999998246906000000000.76833464000
+
diff --git
a/regression-test/data/variables_up_down_mtmv/variables_up_down_test_mtmv.out
b/regression-test/data/variables_up_down_mtmv/variables_up_down_test_mtmv.out
new file mode 100644
index 00000000000..59520e498f4
--- /dev/null
+++
b/regression-test/data/variables_up_down_mtmv/variables_up_down_test_mtmv.out
@@ -0,0 +1,21 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !refresh_master_sql --
+1.12345 1.234567 1.38697430000
+999999999999999.12345 999999999999999.123456
999999999999998246906000000000.76833464000
+
+-- !rewite_open256_master_sql --
+1.12345 1.234567 1.38697430000
+999999999999999.12345 999999999999999.123456
999999999999998246906000000000.76833464000
+
+-- !rewite_open128_master_sql --
+1.12345 1.234567 1.38697430000
+999999999999999.12345 999999999999999.123456
999999999999998246906000000000.76833464000
+
+-- !directe_sql256_master_sql --
+1.12345 1.234567 1.38697430000
+999999999999999.12345 999999999999999.123456
999999999999998246906000000000.76833464000
+
+-- !directe_sql128_master_sql --
+1.12345 1.234567 1.38697430000
+999999999999999.12345 999999999999999.123456
999999999999998246906000000000.76833464000
+
diff --git a/regression-test/data/variables_up_down_view_var_persist/load.out
b/regression-test/data/variables_up_down_view_var_persist/load.out
new file mode 100644
index 00000000000..8110ac116af
--- /dev/null
+++ b/regression-test/data/variables_up_down_view_var_persist/load.out
@@ -0,0 +1,95 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !scale_is_11_master_sql --
+999999999999998246906000000000.76833464
+
+-- !scale_is_8_master_sql --
+999999999999998246906000000001.76833464
+
+-- !plus_master_sql --
+2.024691357
+
+-- !subtract_master_sql --
+-1E-9
+
+-- !divide_master_sql --
+0.9999999991
+
+-- !mod_master_sql --
+1.012345678
+
+-- !view_inner_expression_master_sql --
+999999999999998246906000000000.76833464
999999999999998246906000000000.76833464
+
+-- !nest_view_master_sql --
+999999999999998246906000000000.76833464
999999999999998246906000000000.76833464
+
+-- !nest_view_expr_256_master_sql --
+999999999999998246906000000001.76833464
+
+-- !nest_view_expr_128_master_sql --
+999999999999998246906000000001.76833464
+
+-- !sum1_master_sql --
+999999999999999.123456
+
+-- !avg1_master_sql --
+999999999999999.123456
+
+-- !sum2_master_sql --
+999999999999999.123456
+
+-- !avg2_master_sql --
+999999999999999.123456
+
+-- !agg_expr_sum1_master_sql --
+999999999999998246906000000000.76833464
+
+-- !agg_expr_avg1_master_sql --
+999999999999998246906000000000.76833464
+
+-- !agg_expr_sum2_master_sql --
+999999999999998246906000000000.76833464
+
+-- !agg_expr_avg2_master_sql --
+999999999999998246906000000000.76833464
+
+-- !agg_distinct_master_sql --
+999999999999998246906000000000.76833464
+
+-- !agg_funcs_master_sql --
+999999999999999.12345 999999999999998246906000000000.76833464
999999999999998246906000000000.76833464 999999999999998246906000000000.76833464
999999999999998246906000000000.76833464
+
+-- !two_phase_agg_master_sql --
+999999999999999.123456 999999999999998246906000000000.76833464
+
+-- !agg_without_gby_master_sql --
+999999999999998246906000000000.76833464
+
+-- !distinct_agg_rewrite_master_sql --
+999999999999998246906000000000.76833464 1
+
+-- !window_master_sql --
+999999999999999.12345
+
+-- !window_expr_master_sql --
+999999999999998246906000000000.76833464
+
+-- !if_master_sql --
+1.012345679
+
+-- !casewhen_master_sql --
+1.012345679
+
+-- !if_condition_func_master_sql --
+1.012345678 1.0123456789 1.012345679 1.012345679 0.012345679
1.012345679 1.012345679
+
+-- !compare_expr_master_sql --
+1.012345678 1.0123456781 true true false false
+
+-- !int_master_sql --
+true
+
+-- !union_master_sql --
+1.012345678
+1.012345678
+
diff --git
a/regression-test/data/variables_up_down_view_var_persist/variables_up_down_test_view_var_persist.out
b/regression-test/data/variables_up_down_view_var_persist/variables_up_down_test_view_var_persist.out
new file mode 100644
index 00000000000..8110ac116af
--- /dev/null
+++
b/regression-test/data/variables_up_down_view_var_persist/variables_up_down_test_view_var_persist.out
@@ -0,0 +1,95 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !scale_is_11_master_sql --
+999999999999998246906000000000.76833464
+
+-- !scale_is_8_master_sql --
+999999999999998246906000000001.76833464
+
+-- !plus_master_sql --
+2.024691357
+
+-- !subtract_master_sql --
+-1E-9
+
+-- !divide_master_sql --
+0.9999999991
+
+-- !mod_master_sql --
+1.012345678
+
+-- !view_inner_expression_master_sql --
+999999999999998246906000000000.76833464
999999999999998246906000000000.76833464
+
+-- !nest_view_master_sql --
+999999999999998246906000000000.76833464
999999999999998246906000000000.76833464
+
+-- !nest_view_expr_256_master_sql --
+999999999999998246906000000001.76833464
+
+-- !nest_view_expr_128_master_sql --
+999999999999998246906000000001.76833464
+
+-- !sum1_master_sql --
+999999999999999.123456
+
+-- !avg1_master_sql --
+999999999999999.123456
+
+-- !sum2_master_sql --
+999999999999999.123456
+
+-- !avg2_master_sql --
+999999999999999.123456
+
+-- !agg_expr_sum1_master_sql --
+999999999999998246906000000000.76833464
+
+-- !agg_expr_avg1_master_sql --
+999999999999998246906000000000.76833464
+
+-- !agg_expr_sum2_master_sql --
+999999999999998246906000000000.76833464
+
+-- !agg_expr_avg2_master_sql --
+999999999999998246906000000000.76833464
+
+-- !agg_distinct_master_sql --
+999999999999998246906000000000.76833464
+
+-- !agg_funcs_master_sql --
+999999999999999.12345 999999999999998246906000000000.76833464
999999999999998246906000000000.76833464 999999999999998246906000000000.76833464
999999999999998246906000000000.76833464
+
+-- !two_phase_agg_master_sql --
+999999999999999.123456 999999999999998246906000000000.76833464
+
+-- !agg_without_gby_master_sql --
+999999999999998246906000000000.76833464
+
+-- !distinct_agg_rewrite_master_sql --
+999999999999998246906000000000.76833464 1
+
+-- !window_master_sql --
+999999999999999.12345
+
+-- !window_expr_master_sql --
+999999999999998246906000000000.76833464
+
+-- !if_master_sql --
+1.012345679
+
+-- !casewhen_master_sql --
+1.012345679
+
+-- !if_condition_func_master_sql --
+1.012345678 1.0123456789 1.012345679 1.012345679 0.012345679
1.012345679 1.012345679
+
+-- !compare_expr_master_sql --
+1.012345678 1.0123456781 true true false false
+
+-- !int_master_sql --
+true
+
+-- !union_master_sql --
+1.012345678
+1.012345678
+
diff --git
a/regression-test/suites/variables_up_down_alias_function/load.groovy
b/regression-test/suites/variables_up_down_alias_function/load.groovy
new file mode 100644
index 00000000000..b0ab17d4c67
--- /dev/null
+++ b/regression-test/suites/variables_up_down_alias_function/load.groovy
@@ -0,0 +1,106 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("variables_up_down_load_alias_function", "restart_fe") {
+
+ multi_sql """
+ drop table if exists test_decimal_mul_overflow1;
+ CREATE TABLE `test_decimal_mul_overflow1` (
+ `f1` decimal(20,5) NULL,
+ `f2` decimal(21,6) NULL
+ )DISTRIBUTED BY HASH(f1)
+ PROPERTIES("replication_num" = "1");
+ insert into test_decimal_mul_overflow1
values(999999999999999.12345,999999999999999.123456);
+ """
+
+ multi_sql """
+ drop table if exists t_decimalv3;
+ create table t_decimalv3(a decimal(38,9),b decimal(38,10))
+ DISTRIBUTED BY HASH(a)
+ PROPERTIES("replication_num" = "1");
+ insert into t_decimalv3 values(1.012345678,1.0123456789);
+ """
+
+ multi_sql """
+ drop table if exists t_decimalv3_for_compare;
+ create table t_decimalv3_for_compare(a decimal(38,9),b decimal(38,10))
+ DISTRIBUTED BY HASH(a)
+ PROPERTIES("replication_num" = "1");
+ insert into t_decimalv3_for_compare values(1.012345678,1.0123456781);
+ """
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop function if exists multiply_plus_1(decimalv3(20,5),
decimalv3(20,6));
+ CREATE ALIAS FUNCTION multiply_plus_1(decimalv3(20,5),
decimalv3(20,6)) WITH PARAMETER(a,b) AS add(multiply(a,b),1);
+ set enable_decimal256=false;
+ """
+
+ order_qt_multiply_add_master_sql "select multiply_plus_1(f1,f2) from
test_decimal_mul_overflow1;"
+ sql "set enable_decimal256=true;"
+ order_qt_multiply_add_master_sql "select multiply_plus_1(f1,f2) from
test_decimal_mul_overflow1;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop function if exists func_add(decimalv3(38,9), decimalv3(38,10));
+ CREATE ALIAS FUNCTION func_add(decimalv3(38,9), decimalv3(38,10)) WITH
PARAMETER(a,b) AS add(a,b);
+ set enable_decimal256=false;
+ """
+ order_qt_add_master_sql "select func_add(a,b) from t_decimalv3;"
+ sql "set enable_decimal256=true;"
+ order_qt_add_master_sql "select func_add(a,b) from t_decimalv3;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop function if exists func_subtract(decimalv3(38,9),
decimalv3(38,10));
+ CREATE ALIAS FUNCTION func_subtract(decimalv3(38,9), decimalv3(38,10))
WITH PARAMETER(a,b) AS subtract(a,b);
+ set enable_decimal256=false;
+ """
+ order_qt_subtract_master_sql "select func_subtract(a,b) from t_decimalv3;"
+ sql "set enable_decimal256=true;"
+ order_qt_subtract_master_sql "select func_subtract(a,b) from t_decimalv3;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop function if exists func_divide(decimalv3(38,18),
decimalv3(38,18));
+ CREATE ALIAS FUNCTION func_divide(decimalv3(38,18), decimalv3(38,18))
WITH PARAMETER(a,b) AS divide(a,b);
+ set enable_decimal256=false;
+ """
+ order_qt_divide_master_sql "select func_divide(a,b) from t_decimalv3;"
+ sql "set enable_decimal256=true;"
+ order_qt_divide_master_sql "select func_divide(a,b) from t_decimalv3;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop function if exists func_mod(decimalv3(38,9), decimalv3(38,10));
+ CREATE ALIAS FUNCTION func_mod(decimalv3(38,9), decimalv3(38,10)) WITH
PARAMETER(a,b) AS mod(a,b);
+ set enable_decimal256=false;
+ """
+ order_qt_mod_master_sql "select func_mod(a,b) from t_decimalv3;"
+ sql "set enable_decimal256=true;"
+ order_qt_mod_master_sql "select func_mod(a,b) from t_decimalv3;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop function if exists func_nested(decimalv3(20,5), decimalv3(21,6));
+ CREATE ALIAS FUNCTION func_nested(decimalv3(20,5), decimalv3(21,6))
WITH PARAMETER(a,b) AS add(multiply(a,b),multiply(a,2));
+ set enable_decimal256=false;
+ """
+ order_qt_nested_master_sql "select func_nested(f1,f2) from
test_decimal_mul_overflow1;"
+ sql "set enable_decimal256=true;"
+ order_qt_nested_master_sql "select func_nested(f1,f2) from
test_decimal_mul_overflow1;"
+}
diff --git
a/regression-test/suites/variables_up_down_alias_function/variables_up_down_test_alias_function.groovy
b/regression-test/suites/variables_up_down_alias_function/variables_up_down_test_alias_function.groovy
new file mode 100644
index 00000000000..b5cf2181581
--- /dev/null
+++
b/regression-test/suites/variables_up_down_alias_function/variables_up_down_test_alias_function.groovy
@@ -0,0 +1,50 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("variables_up_down_test_alias_function", "restart_fe") {
+
+ sql "set enable_decimal256=false;"
+ order_qt_multiply_add_master_sql "select multiply_plus_1(f1,f2) from
test_decimal_mul_overflow1;"
+ sql "set enable_decimal256=true;"
+ order_qt_multiply_add_master_sql "select multiply_plus_1(f1,f2) from
test_decimal_mul_overflow1;"
+
+ sql "set enable_decimal256=false;"
+ order_qt_add_master_sql "select func_add(a,b) from t_decimalv3;"
+ sql "set enable_decimal256=true;"
+ order_qt_add_master_sql "select func_add(a,b) from t_decimalv3;"
+
+ sql "set enable_decimal256=false;"
+ order_qt_subtract_master_sql "select func_subtract(a,b) from t_decimalv3;"
+ sql "set enable_decimal256=true;"
+ order_qt_subtract_master_sql "select func_subtract(a,b) from t_decimalv3;"
+
+ sql "set enable_decimal256=false;"
+ order_qt_divide_master_sql "select func_divide(a,b) from t_decimalv3;"
+ sql "set enable_decimal256=true;"
+ order_qt_divide_master_sql "select func_divide(a,b) from t_decimalv3;"
+
+ sql "set enable_decimal256=false;"
+ order_qt_mod_master_sql "select func_mod(a,b) from t_decimalv3;"
+ sql "set enable_decimal256=true;"
+ order_qt_mod_master_sql "select func_mod(a,b) from t_decimalv3;"
+
+ sql "set enable_decimal256=false;"
+ order_qt_nested_master_sql "select func_nested(f1,f2) from
test_decimal_mul_overflow1;"
+ sql "set enable_decimal256=true;"
+ order_qt_nested_master_sql "select func_nested(f1,f2) from
test_decimal_mul_overflow1;"
+
+}
diff --git a/regression-test/suites/variables_up_down_decimalv3/load.groovy
b/regression-test/suites/variables_up_down_decimalv3/load.groovy
new file mode 100644
index 00000000000..ece4c2f49b3
--- /dev/null
+++ b/regression-test/suites/variables_up_down_decimalv3/load.groovy
@@ -0,0 +1,31 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("variables_up_down_load_decimalv3", "restart_fe") {
+
+ sql "set enable_agg_state=true"
+ sql "set enable_decimal256=false;"
+ sql """ DROP TABLE IF EXISTS t01; """
+ sql """
+ create table t01(id int, col_sum agg_state<sum(decimalv3(20,6))>
generic, col_avg agg_state<avg(decimalv3(20,6))> generic) properties
("replication_num" = "1");
+ """
+
+ sql """insert into t01 values (1, sum_state(10.1), avg_state(10.1)), (1,
sum_state(20.1), avg_state(20.1)), (2, sum_state(10.2), avg_state(10.2)), (2,
sum_state(11.0), avg_state(11.0));"""
+
+ order_qt_sum0_master_sql """ select sum_merge(col_sum) from t01 group by
id order by id;"""
+ order_qt_avg0_master_sql """ select avg_merge(col_avg) from t01 group by
id order by id;"""
+}
diff --git
a/regression-test/suites/variables_up_down_decimalv3/variables_up_down_test_decimalv3.groovy
b/regression-test/suites/variables_up_down_decimalv3/variables_up_down_test_decimalv3.groovy
new file mode 100644
index 00000000000..8f75cefc5c4
--- /dev/null
+++
b/regression-test/suites/variables_up_down_decimalv3/variables_up_down_test_decimalv3.groovy
@@ -0,0 +1,54 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("variables_up_down_test_decimalv3", "restart_fe") {
+
+ sql "set enable_agg_state=true"
+ sql "set enable_decimal256=false;"
+
+ order_qt_sum0_master_sql """ select sum_merge(col_sum) from t01 group by
id order by id;"""
+ order_qt_avg0_master_sql """ select avg_merge(col_avg) from t01 group by
id order by id;"""
+
+ sql "set enable_decimal256=true;"
+ test {
+ sql """ select sum_merge(col_sum) from t01 group by id order by id;"""
+ exception "INTERNAL_ERROR"
+ }
+
+ test {
+ sql """ select avg_merge(col_avg) from t01 group by id order by id;"""
+ exception "INTERNAL_ERROR"
+ }
+
+ sql "set enable_decimal256=false;"
+ order_qt_sum_256_0_master_sql """
+ select sum_merge(col_sum) from t01 group by id order by id;
+ """
+ order_qt_avg_256_0_master_sql """ select avg_merge(col_avg) from t01 group
by id order by id;
+ """
+ sql "set enable_decimal256=true;"
+ test {
+ sql """select sum_merge(col_sum) from t01 group by id order by id;"""
+ exception "INTERNAL_ERROR"
+ }
+
+ test {
+ sql """ select avg_merge(col_avg) from t01 group by id order by id;"""
+ exception "INTERNAL_ERROR"
+ }
+
+}
diff --git
a/regression-test/suites/variables_up_down_generated_column/load.groovy
b/regression-test/suites/variables_up_down_generated_column/load.groovy
new file mode 100644
index 00000000000..9965140c7cf
--- /dev/null
+++ b/regression-test/suites/variables_up_down_generated_column/load.groovy
@@ -0,0 +1,172 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("variables_up_down_load_generated_column", "restart_fe") {
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop table if exists t_gen_col_multi_decimalv3;
+ create table t_gen_col_multi_decimalv3(a decimal(20,5),b
decimal(21,6),c decimal(38,11) generated always as (a*b) not null)
+ DISTRIBUTED BY HASH(a)
+ PROPERTIES("replication_num" = "1");
+ """
+ sql "set enable_decimal256=false;"
+ sql "insert into t_gen_col_multi_decimalv3
values(1.12343,1.123457,default);"
+
+ order_qt_c_scale_is_11_master_sql "select * from
t_gen_col_multi_decimalv3;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop table if exists t_gen_col_divide_decimalv3;
+ create table t_gen_col_divide_decimalv3(a decimal(38,18),b
decimal(38,18),c decimal(38,18) generated always as (a/b) not null)
+ DISTRIBUTED BY HASH(a)
+ PROPERTIES("replication_num" = "1");
+ """
+ sql "set enable_decimal256=false;"
+ test {
+ sql "insert into t_gen_col_divide_decimalv3
values(100.123456789012345678,2.123456789012345678,default);"
+ exception "Not Supported"
+ }
+ sql "set enable_decimal256=true;"
+ sql "insert into t_gen_col_divide_decimalv3
values(100.123456789012345678,2.123456789012345678,default);"
+
+ order_qt_divide_scale_master_sql "select * from
t_gen_col_divide_decimalv3;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop table if exists t_gen_col_add_sub_mod_decimalv3;
+ create table t_gen_col_add_sub_mod_decimalv3(a decimal(38,9),b
decimal(38,10),c decimal(38,10) generated always as (a+b) not null, d
decimal(38,10) generated always as (a-b) not null,
+ f decimal(38,10) generated always as (mod(b,a)) not null)
+ DISTRIBUTED BY HASH(a)
+ PROPERTIES("replication_num" = "1");
+ """
+ sql "set enable_decimal256=false;"
+ test {
+ sql "insert into t_gen_col_add_sub_mod_decimalv3
values(1.012345678,1.0123456789,default,default,default);"
+ exception "Not Supported"
+ }
+ sql "set enable_decimal256=true;"
+ sql "insert into t_gen_col_add_sub_mod_decimalv3
values(1.012345678,1.0123456789,default,default,default);"
+ order_qt_add_sub_mod_master_sql "select * from
t_gen_col_add_sub_mod_decimalv3;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop table if exists t_gen_col_nested;
+ create table t_gen_col_nested(
+ a decimal(20,5),
+ b decimal(21,6),
+ c decimal(38,11) generated always as (a*b) not null,
+ d decimal(38,11) generated always as (c+1) not null
+ )
+ DISTRIBUTED BY HASH(a)
+ PROPERTIES("replication_num" = "1");
+ """
+ sql "set enable_decimal256=false;"
+ test {
+ sql "insert into t_gen_col_nested
values(1.12343,1.123457,default,default);"
+ exception "Not Supported"
+ }
+ sql "set enable_decimal256=true;"
+ sql "insert into t_gen_col_nested
values(1.12343,1.123457,default,default);"
+
+ order_qt_nested_cols_master_sql "select * from t_gen_col_nested;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop table if exists t_gen_col_complex;
+ create table t_gen_col_complex(
+ a decimal(20,5),
+ b decimal(21,6),
+ c decimal(38,11) generated always as (a*b) not null,
+ d decimal(38,11) generated always as (a*b+a) not null,
+ e decimal(38,11) generated always as (a*b-b) not null
+ )
+ DISTRIBUTED BY HASH(a)
+ PROPERTIES("replication_num" = "1");
+ """
+ sql "set enable_decimal256=false;"
+ test {
+ sql "insert into t_gen_col_complex
values(1.12343,1.123457,default,default,default);"
+ exception "Not Supported"
+ }
+ sql "set enable_decimal256=true;"
+ sql "insert into t_gen_col_complex
values(1.12343,1.123457,default,default,default);"
+ order_qt_complex_expr_master_sql "select * from t_gen_col_complex;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop table if exists t_gen_col_case;
+ create table t_gen_col_case(
+ a decimal(20,5),
+ b decimal(21,6),
+ c decimal(38,11) generated always as (a*b) not null,
+ d decimal(38,11) generated always as (case when a > 1 then a*b
else a end) not null
+ )
+ DISTRIBUTED BY HASH(a)
+ PROPERTIES("replication_num" = "1");
+ """
+ sql "set enable_decimal256=false;"
+ test {
+ sql "insert into t_gen_col_case
values(1.12343,1.123457,default,default);"
+ exception "Not Supported"
+ }
+ sql "set enable_decimal256=true;"
+ sql "insert into t_gen_col_case values(1.12343,1.123457,default,default);"
+ order_qt_gen_col_case_master_sql "select * from t_gen_col_case;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop table if exists t_gen_col_if;
+ create table t_gen_col_if(
+ a decimal(20,5),
+ b decimal(21,6),
+ c decimal(38,11) generated always as (if(a > 1, a*b, a)) not null
+ )
+ DISTRIBUTED BY HASH(a)
+ PROPERTIES("replication_num" = "1");
+ """
+ sql "set enable_decimal256=false;"
+ test {
+ sql "insert into t_gen_col_if values(1.12343,1.123457,default);"
+ exception "Not Supported"
+ }
+ sql "set enable_decimal256=true;"
+ sql "insert into t_gen_col_if values(1.12343,1.123457,default);"
+ order_qt_gen_col_if_master_sql "select * from t_gen_col_if;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop table if exists t_gen_col_funcs;
+ create table t_gen_col_funcs(
+ a decimal(20,5),
+ b decimal(21,6),
+ c decimal(38,11) generated always as (a*b) not null,
+ d decimal(38,11) generated always as (greatest(a*b, a)) not null,
+ e decimal(38,11) generated always as (least(a*b, b)) not null
+ )
+ DISTRIBUTED BY HASH(a)
+ PROPERTIES("replication_num" = "1");
+ """
+ sql "set enable_decimal256=false;"
+ test {
+ sql "insert into t_gen_col_funcs
values(1.12343,1.123457,default,default,default);"
+ exception "Not Supported"
+ }
+ sql "set enable_decimal256=true;"
+ sql "insert into t_gen_col_funcs
values(1.12343,1.123457,default,default,default);"
+ order_qt_gen_col_funcs_master_sql "select * from t_gen_col_funcs;"
+}
diff --git
a/regression-test/suites/variables_up_down_generated_column/variables_up_down_test_generated_column.groovy
b/regression-test/suites/variables_up_down_generated_column/variables_up_down_test_generated_column.groovy
new file mode 100644
index 00000000000..dfa8ea99d28
--- /dev/null
+++
b/regression-test/suites/variables_up_down_generated_column/variables_up_down_test_generated_column.groovy
@@ -0,0 +1,61 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("variables_up_down_test_generated_column", "restart_fe") {
+
+ sql "set enable_decimal256=false;"
+
+ order_qt_c_scale_is_128_master_sql "select * from
t_gen_col_multi_decimalv3;"
+ sql "set enable_decimal256=true;"
+ order_qt_c_scale_is_256_master_sql "select * from
t_gen_col_multi_decimalv3;"
+
+ sql "set enable_decimal256=false;"
+ order_qt_divide_scale_master_sql "select * from
t_gen_col_divide_decimalv3;"
+ sql "set enable_decimal256=true;"
+ order_qt_divide_scale_256_master_sql "select * from
t_gen_col_divide_decimalv3;"
+
+ sql "set enable_decimal256=false;"
+ order_qt_add_sub_mod1_master_sql "select * from
t_gen_col_add_sub_mod_decimalv3;"
+ sql "set enable_decimal256=true;"
+ order_qt_add_sub_mod2_master_sql "select * from
t_gen_col_add_sub_mod_decimalv3;"
+
+ sql "set enable_decimal256=false;"
+ order_qt_nested_cols1_master_sql "select * from t_gen_col_nested;"
+ sql "set enable_decimal256=true;"
+ order_qt_nested_cols2_master_sql "select * from t_gen_col_nested;"
+
+ sql "set enable_decimal256=false;"
+ order_qt_complex_expr1_master_sql "select * from t_gen_col_complex;"
+ sql "set enable_decimal256=true;"
+ order_qt_complex_expr2_master_sql "select * from t_gen_col_complex;"
+
+ sql "set enable_decimal256=false;"
+ order_qt_gen_col_case1_master_sql "select * from t_gen_col_case;"
+ sql "set enable_decimal256=true;"
+ order_qt_gen_col_case2_master_sql "select * from t_gen_col_case;"
+
+ sql "set enable_decimal256=false;"
+ order_qt_gen_col_if1_master_sql "select * from t_gen_col_if;"
+ sql "set enable_decimal256=true;"
+ order_qt_gen_col_if2_master_sql "select * from t_gen_col_if;"
+
+ sql "set enable_decimal256=false;"
+ order_qt_gen_col_funcs1_master_sql "select * from t_gen_col_funcs;"
+ sql "set enable_decimal256=true;"
+ order_qt_gen_col_funcs2_master_sql "select * from t_gen_col_funcs;"
+
+}
diff --git a/regression-test/suites/variables_up_down_mtmv/load.groovy
b/regression-test/suites/variables_up_down_mtmv/load.groovy
new file mode 100644
index 00000000000..e88774d1ffd
--- /dev/null
+++ b/regression-test/suites/variables_up_down_mtmv/load.groovy
@@ -0,0 +1,65 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("variables_up_down_load_mtmv", "restart_fe") {
+
+ multi_sql """
+ drop table if exists test_decimal_mul_overflow_for_mv;
+ CREATE TABLE `test_decimal_mul_overflow_for_mv` (
+ `f1` decimal(20,5) NULL,
+ `f2` decimal(21,6) NULL
+ )DISTRIBUTED BY HASH(f1)
+ PROPERTIES("replication_num" = "1");
+ insert into test_decimal_mul_overflow_for_mv
values(999999999999999.12345,999999999999999.123456);"""
+
+ def query_sql = """select f1, f2, f1*f2 multi_col from
test_decimal_mul_overflow_for_mv;"""
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop materialized view if exists mv_var_1;
+ create materialized view mv_var_1
+ BUILD IMMEDIATE
+ REFRESH COMPLETE
+ ON COMMIT
+ PROPERTIES ('replication_num' = '1')
+ as select f1, f2, f1*f2 multi_col from test_decimal_mul_overflow_for_mv;"""
+ sql """set enable_decimal256=false;
+ insert into test_decimal_mul_overflow_for_mv values(1.12345,1.234567);"""
+ waitingMTMVTaskFinishedByMvName("mv_var_1")
+
+ def db = context.config.getDbNameByFile(context.file)
+ def job_name = getJobName(db, "mv_var_1");
+ waitingMTMVTaskFinished(job_name)
+ sql """sync;"""
+
+ order_qt_refresh_master_sql "select f1,f2,multi_col from mv_var_1 order by
1,2,3;"
+
+ sql "set enable_decimal256=true;"
+ explain {
+ sql query_sql
+ contains "mv_var_1 chose"
+ }
+ order_qt_rewite_open256_master_sql "$query_sql"
+
+ sql "set enable_decimal256=false;"
+ explain {
+ sql query_sql
+ contains "mv_var_1 chose"
+ }
+ order_qt_rewite_open128_master_sql "$query_sql"
+
+}
diff --git
a/regression-test/suites/variables_up_down_mtmv/variables_up_down_test_mtmv.groovy
b/regression-test/suites/variables_up_down_mtmv/variables_up_down_test_mtmv.groovy
new file mode 100644
index 00000000000..a8d397f0d07
--- /dev/null
+++
b/regression-test/suites/variables_up_down_mtmv/variables_up_down_test_mtmv.groovy
@@ -0,0 +1,55 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("variables_up_down_test_mtmv", "restart_fe") {
+
+ def query_sql = """select f1, f2, f1*f2 multi_col from
test_decimal_mul_overflow_for_mv;"""
+
+ def db = context.config.getDbNameByFile(context.file)
+ def job_name = getJobName(db, "mv_var_1");
+ waitingMTMVTaskFinished(job_name)
+ sql """sync;"""
+
+ order_qt_refresh_master_sql "select f1,f2,multi_col from mv_var_1 order by
1,2,3;"
+
+ sql "set enable_decimal256=true;"
+ explain {
+ sql query_sql
+ contains "mv_var_1 chose"
+ }
+ order_qt_rewite_open256_master_sql "$query_sql"
+
+ sql "set enable_decimal256=false;"
+ explain {
+ sql query_sql
+ contains "mv_var_1 chose"
+ }
+ order_qt_rewite_open128_master_sql "$query_sql"
+
+ sql "set enable_decimal256=true;"
+ order_qt_directe_sql256_master_sql """select * from mv_var_1"""
+ sql "set enable_decimal256=false;"
+ order_qt_directe_sql128_master_sql """select * from mv_var_1"""
+
+ sql "set enable_decimal256=true;"
+ sql """refresh materialized view mv_var_1 complete"""
+ waitingMTMVTaskFinishedByMvName("mv_var_1")
+ sql "set enable_decimal256=false;"
+ sql """refresh materialized view mv_var_1 complete"""
+ waitingMTMVTaskFinishedByMvName("mv_var_1")
+
+}
diff --git
a/regression-test/suites/variables_up_down_view_var_persist/load.groovy
b/regression-test/suites/variables_up_down_view_var_persist/load.groovy
new file mode 100644
index 00000000000..2011d63c553
--- /dev/null
+++ b/regression-test/suites/variables_up_down_view_var_persist/load.groovy
@@ -0,0 +1,258 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("variables_up_down_load_view_var_persist", "restart_fe") {
+
+ multi_sql """
+ drop table if exists test_decimal_mul_overflow1;
+ CREATE TABLE `test_decimal_mul_overflow1` (
+ `f1` decimal(20,5) NULL,
+ `f2` decimal(21,6) NULL
+ )DISTRIBUTED BY HASH(f1)
+ PROPERTIES("replication_num" = "1");
+ insert into test_decimal_mul_overflow1
values(999999999999999.12345,999999999999999.123456);
+ """
+
+ multi_sql """
+ drop table if exists t_decimalv3;
+ create table t_decimalv3(a decimal(38,9),b decimal(38,10))
+ DISTRIBUTED BY HASH(a)
+ PROPERTIES("replication_num" = "1");
+ insert into t_decimalv3 values(1.012345678,1.0123456789);
+ """
+
+ multi_sql """
+ drop table if exists t_decimalv3_for_compare;
+ create table t_decimalv3_for_compare(a decimal(38,9),b decimal(38,10))
+ DISTRIBUTED BY HASH(a)
+ PROPERTIES("replication_num" = "1");
+ insert into t_decimalv3_for_compare values(1.012345678,1.0123456781);
+ """
+
+ sql "set enable_decimal256=true;"
+ sql "drop view if exists v_test_decimal_mul_overflow1;"
+ sql """create view v_test_decimal_mul_overflow1 as select f1,f2,f1*f2
multi from test_decimal_mul_overflow1;"""
+
+ sql "set enable_decimal256=false;"
+
+ // expect column multi scale is
11:999999999999998246906000000000.76833464320 instead of 8:
999999999999998246906000000000.76833464
+ order_qt_scale_is_11_master_sql "select multi from
v_test_decimal_mul_overflow1;"
+ // expect column c1 scale is 8: 999999999999998246906000000000.76833464
+ order_qt_scale_is_8_master_sql "select multi+1 c1 from
v_test_decimal_mul_overflow1;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if EXISTS v_plus;
+ create view v_plus as select a+b from t_decimalv3;
+ set enable_decimal256=false;
+ """
+ order_qt_plus_master_sql "select * from v_plus;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if EXISTS v_subtract;
+ create view v_subtract select a-b from t_decimalv3;
+ set enable_decimal256=false;
+ """
+ order_qt_subtract_master_sql "select * from v_subtract;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if EXISTS v_divide;
+ create view v_divide select a/b from t_decimalv3;
+ set enable_decimal256=false;
+ """
+ order_qt_divide_master_sql "select * from v_divide;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if EXISTS v_mod;
+ create view v_mod select mod(a,b) from t_decimalv3;
+ set enable_decimal256=false;
+ """
+ order_qt_mod_master_sql "select * from v_mod;"
+
+ multi_sql """drop view if exists test_lower_project;
+ set enable_decimal256=true;
+ create view test_lower_project as select t1.c1 as col1, t2.c1 as col2 from
+ (select f2*f1 as c1 from test_decimal_mul_overflow1) t1 inner join (select
f1*f2 as c1 from test_decimal_mul_overflow1) t2
+ where t1.c1=t2.c1;"""
+ sql "set enable_decimal256=false;"
+ order_qt_view_inner_expression_master_sql "select * from
test_lower_project;"
+
+ multi_sql """set enable_decimal256=false;
+ drop view if exists test_nested_view;
+ create view test_nested_view as select * from test_lower_project;"""
+ sql "set enable_decimal256=true;"
+ order_qt_nest_view_master_sql "select * from test_nested_view;"
+
+ multi_sql """set enable_decimal256=false;
+ drop view if exists test_nested_view_expr;
+ create view test_nested_view_expr as select col1+1 from
test_lower_project;"""
+
+ sql "set enable_decimal256=true;"
+ order_qt_nest_view_expr_256_master_sql "select * from
test_nested_view_expr;"
+ sql "set enable_decimal256=false;"
+ order_qt_nest_view_expr_128_master_sql "select * from
test_nested_view_expr;"
+
+ // agg
+ multi_sql """set enable_decimal256=true;
+ drop view if EXISTS v_test_sum;
+ create view v_test_sum as select f1, sum(f2) col_sum from
test_decimal_mul_overflow1 group by f1;
+ drop view if EXISTS v_test_avg;
+ create view v_test_avg as select f1, avg(f2) col_avg from
test_decimal_mul_overflow1 group by f1;"""
+ order_qt_sum1_master_sql "select col_sum from v_test_sum;"
+ order_qt_avg1_master_sql "select col_avg from v_test_avg;"
+ sql "set enable_decimal256=false;"
+ order_qt_sum2_master_sql "select col_sum from v_test_sum;"
+ order_qt_avg2_master_sql "select col_avg from v_test_avg;"
+
+ multi_sql """set enable_decimal256=true;
+ drop view if EXISTS v_test_sum_expr;
+ create view v_test_sum_expr as select f1, sum(f1*f2) col_sum from
test_decimal_mul_overflow1 group by f1;
+ drop view if EXISTS v_test_avg_expr;
+ create view v_test_avg_expr as select f1, avg(f1*f2) col_avg from
test_decimal_mul_overflow1 group by f1;"""
+ order_qt_agg_expr_sum1_master_sql "select col_sum from v_test_sum_expr;"
+ order_qt_agg_expr_avg1_master_sql "select col_avg from v_test_avg_expr;"
+ sql "set enable_decimal256=false;"
+ order_qt_agg_expr_sum2_master_sql "select col_sum from v_test_sum_expr;"
+ order_qt_agg_expr_avg2_master_sql "select col_avg from v_test_avg_expr;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if EXISTS v_test_agg_distinct;
+ create view v_test_agg_distinct as select f1, sum(distinct f1*f2)
col_sum from test_decimal_mul_overflow1 group by f1;
+ set enable_decimal256=false;
+ """
+ order_qt_agg_distinct_master_sql "select col_sum from v_test_agg_distinct;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if EXISTS v_test_agg_func;
+ create view v_test_agg_func as select f1, sum0(f1*f2) as col_sum0,
avg(f1*f2) as col_avg,multi_distinct_sum(f1*f2) multi_sum,
multi_distinct_sum0(f1*f2) multi_sum0 from test_decimal_mul_overflow1 group by
f1;
+ set enable_decimal256=false;
+ """
+ order_qt_agg_funcs_master_sql "select * from v_test_agg_func;"
+
+ // two phase agg
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if EXISTS v_test_agg_two_phase;
+ create view v_test_agg_two_phase as select f2, sum(f1*f2) col_sum from
test_decimal_mul_overflow1 group by f2;
+ set enable_decimal256=false;
+ """
+ order_qt_two_phase_agg_master_sql "select * from v_test_agg_two_phase;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if EXISTS v_test_agg_without_gby;
+ create view v_test_agg_without_gby as select sum(distinct f1*f2)
col_sum from test_decimal_mul_overflow1;
+ set enable_decimal256=false;
+ """
+ order_qt_agg_without_gby_master_sql "select * from v_test_agg_without_gby;"
+
+ multi_sql """set enable_decimal256=true;
+ drop view if EXISTS v_distinct_agg_rewrite;
+ create view v_distinct_agg_rewrite as
+ SELECT sum(f1*f2), count(distinct f1,f2) FROM test_decimal_mul_overflow1
GROUP BY f2;
+ set enable_decimal256=false;"""
+ order_qt_distinct_agg_rewrite_master_sql "select * from
v_distinct_agg_rewrite;"
+
+ // window
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if exists test_window_sum;
+ create view test_window_sum as select sum(f1) over() from
test_decimal_mul_overflow1;
+ set enable_decimal256=false;
+ """
+ order_qt_window_master_sql "select * from test_window_sum;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if exists test_window_sum_expr;
+ create view test_window_sum_expr as select sum(f1*f2) over() from
test_decimal_mul_overflow1;
+ set enable_decimal256=false;
+ """
+ order_qt_window_expr_master_sql "select * from test_window_sum_expr;"
+
+ // test if
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if EXISTS v_test_if;
+ create view v_test_if as select a,b, if(b>1,b,a) col_if from
t_decimalv3 ;
+ set enable_decimal256=false;
+ """
+ order_qt_if_master_sql "select col_if from v_test_if;"
+
+ // test casewhen
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if EXISTS v_test_casewhen;
+ create view v_test_casewhen as select a,b, case when b>1 then b when
b<1 then b else a end col_cw from t_decimalv3 ;
+ set enable_decimal256=false;
+ """
+ order_qt_casewhen_master_sql "select col_cw from v_test_casewhen;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if EXISTS v_test_if_condition;
+ create view v_test_if_condition as select a,b, coalesce(b, null, a)
col_coa, greatest(a,b) col_gre, least(a,b-1) col_lea, nvl(b,a) col_nvl,
nullif(b,a) col_nif from t_decimalv3 ;
+ set enable_decimal256=false;
+ """
+ order_qt_if_condition_func_master_sql "select * from v_test_if_condition;"
+
+// // array func
+// multi_sql """
+// set enable_decimal256=true;
+// drop view if EXISTS v_test_array_func;
+// create view v_test_array_func as
+// select array_sum(array(a*b,a*b)),
array_avg(array(a*b,a*b-1)),array_max(array(a*b,a*b+1)),
array_min(array(a*b,a*b+1)),array_cum_sum(array(a*b,a*b)) from t_decimalv3;
+// set enable_decimal256=false;"""
+// order_qt_array_funcs_master_sql "select * from v_test_array_func;"
+//
+// multi_sql """set enable_decimal256=true;
+// drop view if EXISTS v_test_array_product;
+// create view v_test_array_product as
+// select array_product(array(f1,f2)) from test_decimal_mul_overflow1;
+// set enable_decimal256=false;"""
+// order_qt_array_product_master_sql "select * from v_test_array_product;"
+
+ // compare expr
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if exists v_test_compare;
+ create view v_test_compare as select *,a=b equal, a <=> b nullsafe,
a<b lessthan, b>a greaterthan from t_decimalv3_for_compare;
+ set enable_decimal256=false;
+ """
+ order_qt_compare_expr_master_sql "select * from v_test_compare;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if exists v_test_in;
+ create view v_test_in as select a in (b,123) in_col from
t_decimalv3_for_compare;
+ set enable_decimal256=false;
+ """
+ order_qt_int_master_sql "select * from v_test_in;"
+
+ multi_sql """
+ set enable_decimal256=true;
+ drop view if exists v_test_union;
+ create view v_test_union as select a from t_decimalv3_for_compare
union all select b from t_decimalv3_for_compare;
+ set enable_decimal256=false;
+ """
+ order_qt_union_master_sql "select * from v_test_union;"
+}
diff --git
a/regression-test/suites/variables_up_down_view_var_persist/variables_up_down_test_view_var_persist.groovy
b/regression-test/suites/variables_up_down_view_var_persist/variables_up_down_test_view_var_persist.groovy
new file mode 100644
index 00000000000..2c30838969e
--- /dev/null
+++
b/regression-test/suites/variables_up_down_view_var_persist/variables_up_down_test_view_var_persist.groovy
@@ -0,0 +1,95 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+suite("variables_up_down_test_view_var_persist", "restart_fe") {
+
+ sql "set enable_decimal256=false;"
+
+ // expect column multi scale is
11:999999999999998246906000000000.76833464320 instead of 8:
999999999999998246906000000000.76833464
+ order_qt_scale_is_11_master_sql "select multi from
v_test_decimal_mul_overflow1;"
+ // expect column c1 scale is 8: 999999999999998246906000000000.76833464
+ order_qt_scale_is_8_master_sql "select multi+1 c1 from
v_test_decimal_mul_overflow1;"
+
+ order_qt_plus_master_sql "select * from v_plus;"
+
+ order_qt_subtract_master_sql "select * from v_subtract;"
+
+ order_qt_divide_master_sql "select * from v_divide;"
+
+ order_qt_mod_master_sql "select * from v_mod;"
+
+ order_qt_view_inner_expression_master_sql "select * from
test_lower_project;"
+
+ order_qt_nest_view_master_sql "select * from test_nested_view;"
+
+ sql "set enable_decimal256=true;"
+ order_qt_nest_view_expr_256_master_sql "select * from
test_nested_view_expr;"
+ sql "set enable_decimal256=false;"
+ order_qt_nest_view_expr_128_master_sql "select * from
test_nested_view_expr;"
+
+ // agg
+ sql "set enable_decimal256=true;"
+ order_qt_sum1_master_sql "select col_sum from v_test_sum;"
+ order_qt_avg1_master_sql "select col_avg from v_test_avg;"
+ sql "set enable_decimal256=false;"
+ order_qt_sum2_master_sql "select col_sum from v_test_sum;"
+ order_qt_avg2_master_sql "select col_avg from v_test_avg;"
+
+ sql "set enable_decimal256=true;"
+ order_qt_agg_expr_sum1_master_sql "select col_sum from v_test_sum_expr;"
+ order_qt_agg_expr_avg1_master_sql "select col_avg from v_test_avg_expr;"
+ sql "set enable_decimal256=false;"
+ order_qt_agg_expr_sum2_master_sql "select col_sum from v_test_sum_expr;"
+ order_qt_agg_expr_avg2_master_sql "select col_avg from v_test_avg_expr;"
+
+ order_qt_agg_distinct_master_sql "select col_sum from v_test_agg_distinct;"
+
+ order_qt_agg_funcs_master_sql "select * from v_test_agg_func;"
+
+ // two phase agg
+ order_qt_two_phase_agg_master_sql "select * from v_test_agg_two_phase;"
+
+ order_qt_agg_without_gby_master_sql "select * from v_test_agg_without_gby;"
+
+ order_qt_distinct_agg_rewrite_master_sql "select * from
v_distinct_agg_rewrite;"
+
+ // window
+ order_qt_window_master_sql "select * from test_window_sum;"
+
+ order_qt_window_expr_master_sql "select * from test_window_sum_expr;"
+
+ // test if
+ order_qt_if_master_sql "select col_if from v_test_if;"
+
+ // test casewhen
+ order_qt_casewhen_master_sql "select col_cw from v_test_casewhen;"
+
+ order_qt_if_condition_func_master_sql "select * from v_test_if_condition;"
+
+ // array func
+// order_qt_array_funcs_master_sql "select * from v_test_array_func;"
+//
+// order_qt_array_product_master_sql "select * from v_test_array_product;"
+
+ // compare expr
+ order_qt_compare_expr_master_sql "select * from v_test_compare;"
+
+ order_qt_int_master_sql "select * from v_test_in;"
+
+ order_qt_union_master_sql "select * from v_test_union;"
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]