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]

Reply via email to