You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2023/06/19 04:24:53 UTC

[doris] branch master updated: [feature](nereids) enable nereids planner by default (#20761)

This is an automated email from the ASF dual-hosted git repository.

morrysnow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 4c6f1de42b [feature](nereids) enable nereids planner by default (#20761)
4c6f1de42b is described below

commit 4c6f1de42b88b6cca5541e423c8daa8be044462e
Author: starocean999 <40...@users.noreply.github.com>
AuthorDate: Mon Jun 19 12:24:47 2023 +0800

    [feature](nereids) enable nereids planner by default (#20761)
    
    1. enable nereids planner by default
    2. add fuzzy test on enable_nereids_planner
    3. fix some ut that result different under legacy planner and nereids
---
 .../java/org/apache/doris/qe/SessionVariable.java  |  35 ++-
 .../doris/analysis/RangePartitionPruneTest.java    |  94 +++----
 .../org/apache/doris/analysis/SelectStmtTest.java  |  16 +-
 .../org/apache/doris/analysis/SetVariableTest.java |   2 +-
 .../apache/doris/analysis/StmtRewriterTest.java    |  12 +-
 .../analysis/TableNameComparedLowercaseTest.java   |   4 +-
 .../org/apache/doris/planner/ColocatePlanTest.java |   6 +-
 .../apache/doris/planner/ConstantExpressTest.java  |   8 +-
 .../doris/planner/DistributedPlannerTest.java      |   2 +-
 .../planner/MaterializedViewFunctionTest.java      |   2 +-
 .../java/org/apache/doris/planner/PlannerTest.java |  60 ++---
 .../doris/planner/ProjectPlannerFunctionTest.java  |  10 +-
 .../org/apache/doris/planner/QueryPlanTest.java    | 269 ++++++++++-----------
 .../org/apache/doris/planner/RepeatNodeTest.java   |   8 +-
 .../apache/doris/planner/StatisticDeriveTest.java  |   2 +-
 .../doris/planner/TableFunctionPlanTest.java       |  72 +++---
 .../java/org/apache/doris/policy/PolicyTest.java   |  20 +-
 .../ExtractCommonFactorsRuleFunctionTest.java      |  32 +--
 .../apache/doris/rewrite/InferFiltersRuleTest.java |  38 +--
 .../rewrite/RewriteBinaryPredicatesRuleTest.java   |   2 +-
 .../doris/rewrite/RewriteDateLiteralRuleTest.java  |  84 +++----
 .../doris/rewrite/RewriteInPredicateRuleTest.java  |   4 +-
 .../org/apache/doris/utframe/AnotherDemoTest.java  |   2 +-
 .../java/org/apache/doris/utframe/DemoTest.java    |   2 +-
 24 files changed, 396 insertions(+), 390 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
index e2897516f7..c0e243f7d2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java
@@ -712,7 +712,7 @@ public class SessionVariable implements Serializable, Writable {
      */
     @VariableMgr.VarAttr(name = ENABLE_NEREIDS_PLANNER, needForward = true,
             fuzzy = true, expType = ExperimentalType.EXPERIMENTAL)
-    private boolean enableNereidsPlanner = false;
+    private boolean enableNereidsPlanner = true;
 
     @VariableMgr.VarAttr(name = DISABLE_NEREIDS_RULES, needForward = true)
     private String disableNereidsRules = "";
@@ -1021,16 +1021,29 @@ public class SessionVariable implements Serializable, Writable {
                 break;
         }
         // pull_request_id default value is 0
-        if (Config.pull_request_id % 2 == 1) {
-            this.enablePipelineEngine = true;
-            // this.enableFoldConstantByBe = true;
-            // this.enableTwoPhaseReadOpt = false;
-            this.runtimeFilterType |= TRuntimeFilterType.BITMAP.getValue();
-        } else {
-            // this.enablePipelineEngine = false;
-            // this.enableFoldConstantByBe = false;
-            // this.enableTwoPhaseReadOpt = true;
-            this.runtimeFilterType &= ~TRuntimeFilterType.BITMAP.getValue();
+        switch (Config.pull_request_id % 4) {
+            case 0:
+                this.enablePipelineEngine = true;
+                this.runtimeFilterType |= TRuntimeFilterType.BITMAP.getValue();
+                this.enableNereidsPlanner = true;
+                break;
+            case 1:
+                this.enablePipelineEngine = true;
+                this.runtimeFilterType |= TRuntimeFilterType.BITMAP.getValue();
+                this.enableNereidsPlanner = false;
+                break;
+            case 2:
+                this.enablePipelineEngine = false;
+                this.runtimeFilterType &= ~TRuntimeFilterType.BITMAP.getValue();
+                this.enableNereidsPlanner = true;
+                break;
+            case 3:
+                this.enablePipelineEngine = false;
+                this.runtimeFilterType &= ~TRuntimeFilterType.BITMAP.getValue();
+                this.enableNereidsPlanner = false;
+                break;
+            default:
+                break;
         }
 
         if (Config.fuzzy_test_type.equals("p0")) {
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/RangePartitionPruneTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/RangePartitionPruneTest.java
index e8d05e3095..df0c10afd0 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/RangePartitionPruneTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/RangePartitionPruneTest.java
@@ -113,85 +113,85 @@ public class RangePartitionPruneTest extends PartitionPruneTestBase {
     private void initTestCases() {
         // 1. Single partition column
         // no filters
-        addCase("select * from test.t1", "partitions=8/8");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1", "partitions=8/8");
         // equal to
-        addCase("select * from test.t1 where dt=20211122", "partitions=1/8");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1 where dt=20211122", "partitions=1/8");
         // less than
-        addCase("select * from test.t1 where dt<20211122", "partitions=2/8");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1 where dt<20211122", "partitions=2/8");
         // less than or equal
-        addCase("select * from test.t1 where dt<=20211122", "partitions=3/8");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1 where dt<=20211122", "partitions=3/8");
         // greater than
-        addCase("select * from test.t1 where dt>20211122", "partitions=6/8");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1 where dt>20211122", "partitions=6/8");
         // greater than or equal
-        addCase("select * from test.t1 where dt>=20211122", "partitions=6/8");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1 where dt>=20211122", "partitions=6/8");
         // in
-        addCase("select * from test.t1 where dt in (20211124, 20211126, 20211122)", "partitions=3/8");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1 where dt in (20211124, 20211126, 20211122)", "partitions=3/8");
         // is null
-        addCase("select * from test.t1 where dt is null", "partitions=1/8");
-        addCase("select * from test.`single_not_null` where dt is null", "partitions=0/7");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1 where dt is null", "partitions=1/8");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.`single_not_null` where dt is null", "partitions=0/7");
         // not equal to
-        addCase("select * from test.t1 where dt!=20211122", "partitions=8/8");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1 where dt!=20211122", "partitions=8/8");
 
         // 2. Multiple partition columns
         // no filters
-        addCase("select * from test.t2", "partitions=9/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2", "partitions=9/9");
         // equal to
-        addCase("select * from test.t2 where k1=7", "partitions=2/9");
-        addCase("select * from test.t2 where k2=7", "partitions=9/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1=7", "partitions=2/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k2=7", "partitions=9/9");
         // less than
-        addCase("select * from test.t2 where k1<7", "partitions=2/9");
-        addCase("select * from test.t2 where k2<7", "partitions=9/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1<7", "partitions=2/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k2<7", "partitions=9/9");
         // less than or equal
-        addCase("select * from test.t2 where k1<=7", "partitions=3/9");
-        addCase("select * from test.t2 where k2>7", "partitions=9/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1<=7", "partitions=3/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k2>7", "partitions=9/9");
         // greater than or equal
-        addCase("select * from test.t2 where k1>=7", "partitions=8/9");
-        addCase("select * from test.t2 where k2>=7", "partitions=9/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1>=7", "partitions=8/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k2>=7", "partitions=9/9");
         // in
-        addCase("select * from test.t2 where k1 in (7,9,16)", "partitions=3/9");
-        addCase("select * from test.t2 where k2 in (7,9,16)", "partitions=9/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1 in (7,9,16)", "partitions=3/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k2 in (7,9,16)", "partitions=9/9");
         // is null
-        addCase("select * from test.t2 where k1 is null", "partitions=1/9");
-        addCase("select * from test.t2 where k2 is null", "partitions=9/9");
-        addCase("select * from test.multi_not_null where k1 is null", "partitions=0/2");
-        addCase("select * from test.multi_not_null where k2 is null", "partitions=2/2");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1 is null", "partitions=1/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k2 is null", "partitions=9/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.multi_not_null where k1 is null", "partitions=0/2");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.multi_not_null where k2 is null", "partitions=2/2");
         // not equal to
-        addCase("select * from test.t2 where k1!=23", "partitions=9/9");
-        addCase("select * from test.t2 where k2!=23", "partitions=9/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1!=23", "partitions=9/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k2!=23", "partitions=9/9");
 
         // 3. Conjunctive predicates
         // equal to and other predicates
-        addCase("select * from test.t2 where k1=23 and k2=5", "partitions=1/9");
-        addCase("select * from test.t2 where k1=23 and k2>5", "partitions=1/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1=23 and k2=5", "partitions=1/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1=23 and k2>5", "partitions=1/9");
         // in and other equal predicates
-        addCase("select * from test.t2 where k1 in (3, 10, 13) and k2>10", "partitions=2/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1 in (3, 10, 13) and k2>10", "partitions=2/9");
         // is null and other predicates
-        addCase("select * from test.t2 where k1 > 10 and k1 is null", "partitions=0/9");
-        addCase("select * from test.t2 where k1 is null and k1 > 10", "partitions=0/9");
-        addCase("select * from test.multi_not_null where k1 > 10 and k1 is null", "partitions=0/2");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1 > 10 and k1 is null", "partitions=0/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1 is null and k1 > 10", "partitions=0/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.multi_not_null where k1 > 10 and k1 is null", "partitions=0/2");
         // others predicates combination
-        addCase("select * from test.t2 where k1 > 10 and k2 < 4", "partitions=6/9");
-        addCase("select * from test.t2 where k1 >10 and k1 < 10 and (k1=11 or k1=12)", "partitions=0/9");
-        addCase("select * from test.t2 where k1 > 20 and k1 < 7 and k1 = 10", "partitions=0/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1 > 10 and k2 < 4", "partitions=6/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1 >10 and k1 < 10 and (k1=11 or k1=12)", "partitions=0/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1 > 20 and k1 < 7 and k1 = 10", "partitions=0/9");
 
         // 4. Disjunctive predicates
-        addCase("select * from test.t2 where k1=10 or k1=23", "partitions=3/9");
-        addCase("select * from test.t2 where (k1=10 or k1=23) and (k2=4 or k2=5)", "partitions=1/9");
-        addCase("select * from test.t2 where (k1=10 or k1=23) and (k2=4 or k2=11)", "partitions=2/9");
-        addCase("select * from test.t2 where (k1=10 or k1=23) and (k2=3 or k2=4 or k2=11)", "partitions=3/9");
-        addCase("select * from test.t1 where dt=20211123 or dt=20211124", "partitions=2/8");
-        addCase("select * from test.t1 where ((dt=20211123 and k1=1) or (dt=20211125 and k1=3))", "partitions=2/8");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1=10 or k1=23", "partitions=3/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where (k1=10 or k1=23) and (k2=4 or k2=5)", "partitions=1/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where (k1=10 or k1=23) and (k2=4 or k2=11)", "partitions=2/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where (k1=10 or k1=23) and (k2=3 or k2=4 or k2=11)", "partitions=3/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1 where dt=20211123 or dt=20211124", "partitions=2/8");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1 where ((dt=20211123 and k1=1) or (dt=20211125 and k1=3))", "partitions=2/8");
         // TODO: predicates are "PREDICATES: ((`dt` = 20211123 AND `k1` = 1) OR (`dt` = 20211125 AND `k1` = 3)), `k2` > ",
         // maybe something goes wrong with ExtractCommonFactorsRule.
-        addCase("select * from test.t1 where ((dt=20211123 and k1=1) or (dt=20211125 and k1=3)) and k2>0",
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1 where ((dt=20211123 and k1=1) or (dt=20211125 and k1=3)) and k2>0",
                 "partitions=2/8");
-        addCase("select * from test.t2 where k1 > 10 or k2 < 1", "partitions=9/9");
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t2 where k1 > 10 or k2 < 1", "partitions=9/9");
         // add some cases for CompoundPredicate
-        addCase("select * from test.t1 where (dt >= 20211121 and dt <= 20211122) or (dt >= 20211123 and dt <= 20211125)",
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1 where (dt >= 20211121 and dt <= 20211122) or (dt >= 20211123 and dt <= 20211125)",
                 "partitions=5/8");
-        addCase("select * from test.t1 where (dt between 20211121 and 20211122) or (dt between 20211123 and 20211125)",
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1 where (dt between 20211121 and 20211122) or (dt between 20211123 and 20211125)",
                 "partitions=5/8");
-        addCase("select * from test.t1 where (dt between 20211121 and 20211122) or dt is null or (dt between 20211123 and 20211125)",
+        addCase("select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.t1 where (dt between 20211121 and 20211122) or dt is null or (dt between 20211123 and 20211125)",
                 "partitions=6/8");
 
     }
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java
index 692eea7657..a63326c0fb 100755
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/SelectStmtTest.java
@@ -484,22 +484,22 @@ public class SelectStmtTest {
 
     @Test
     public void testImplicitConvertSupport() throws Exception {
-        String sql1 = "select count(*) from db1.partition_table where datekey='20200730'";
+        String sql1 = "select /*+ SET_VAR(enable_nereids_planner=false) */ count(*) from db1.partition_table where datekey='20200730'";
         Assert.assertTrue(dorisAssert
                 .query(sql1)
                 .explainQuery()
                 .contains("`datekey` = 20200730"));
-        String sql2 = "select count(*) from db1.partition_table where '20200730'=datekey";
+        String sql2 = "select /*+ SET_VAR(enable_nereids_planner=false) */ count(*) from db1.partition_table where '20200730'=datekey";
         Assert.assertTrue(dorisAssert
                 .query(sql2)
                 .explainQuery()
                 .contains("`datekey` = 20200730"));
-        String sql3 = "select count() from db1.date_partition_table where dt=20200908";
+        String sql3 = "select /*+ SET_VAR(enable_nereids_planner=false) */ count() from db1.date_partition_table where dt=20200908";
         Assert.assertTrue(dorisAssert
                 .query(sql3)
                 .explainQuery()
                 .contains(Config.enable_date_conversion ? "`dt` = '2020-09-08'" : "`dt` = '2020-09-08 00:00:00'"));
-        String sql4 = "select count() from db1.date_partition_table where dt='2020-09-08'";
+        String sql4 = "select /*+ SET_VAR(enable_nereids_planner=false) */ count() from db1.date_partition_table where dt='2020-09-08'";
         Assert.assertTrue(dorisAssert
                 .query(sql4)
                 .explainQuery()
@@ -522,10 +522,10 @@ public class SelectStmtTest {
         Assert.assertTrue(explain
                 .contains("PREDICATES: `default_cluster:db1`.`table2`.`__DORIS_DELETE_SIGN__` = 0"));
         Assert.assertFalse(explain.contains("other predicates:"));
-        String sql3 = "SELECT * FROM db1.table1";
+        String sql3 = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ * FROM db1.table1";
         Assert.assertTrue(dorisAssert.query(sql3).explainQuery()
                 .contains("PREDICATES: `default_cluster:db1`.`table1`.`__DORIS_DELETE_SIGN__` = 0"));
-        String sql4 = " SELECT * FROM db1.table1 table2";
+        String sql4 = " SELECT /*+ SET_VAR(enable_nereids_planner=false) */ * FROM db1.table1 table2";
         Assert.assertTrue(dorisAssert.query(sql4).explainQuery()
                 .contains("PREDICATES: `table2`.`__DORIS_DELETE_SIGN__` = 0"));
         new MockUp<Util>() {
@@ -760,12 +760,12 @@ public class SelectStmtTest {
 
     @Test
     public void testSystemViewCaseInsensitive() throws Exception {
-        String sql1 = "SELECT ROUTINE_SCHEMA, ROUTINE_NAME FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = "
+        String sql1 = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ ROUTINE_SCHEMA, ROUTINE_NAME FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = "
                 + "'ech_dw' ORDER BY ROUTINES.ROUTINE_SCHEMA\n";
         // The system view names in information_schema are case-insensitive,
         dorisAssert.query(sql1).explainQuery();
 
-        String sql2 = "SELECT ROUTINE_SCHEMA, ROUTINE_NAME FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = "
+        String sql2 = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ ROUTINE_SCHEMA, ROUTINE_NAME FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = "
                 + "'ech_dw' ORDER BY routines.ROUTINE_SCHEMA\n";
         try {
             // Should not refer to one of system views using different cases within the same statement.
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/SetVariableTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/SetVariableTest.java
index eac8928701..703ba49c82 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/SetVariableTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/SetVariableTest.java
@@ -52,7 +52,7 @@ public class SetVariableTest {
         Assert.assertEquals("STRICT_TRANS_TABLES",
                 SqlModeHelper.decode(connectContext.getSessionVariable().getSqlMode()));
 
-        String selectStr = "explain select @@sql_mode;";
+        String selectStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ @@sql_mode;";
         connectContext.getState().reset();
         stmtExecutor = new StmtExecutor(connectContext, selectStr);
         stmtExecutor.execute();
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/StmtRewriterTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/StmtRewriterTest.java
index 5ff92f5441..be770538c3 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/StmtRewriterTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/StmtRewriterTest.java
@@ -150,7 +150,7 @@ public class StmtRewriterTest {
     @Test
     public void testRewriteHavingClauseSubqueries() throws Exception {
         String subquery = "select avg(salary) from " + TABLE_NAME;
-        String query = "select empid, sum(salary) from " + TABLE_NAME + " group by empid having sum(salary) > ("
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ empid, sum(salary) from " + TABLE_NAME + " group by empid having sum(salary) > ("
                 + subquery + ");";
         LOG.info("EXPLAIN:{}", dorisAssert.query(query).explainQuery());
         dorisAssert.query(query).explainContains("CROSS JOIN");
@@ -260,7 +260,7 @@ public class StmtRewriterTest {
     @Test
     public void testRewriteHavingClauseWithOrderBy() throws Exception {
         String subquery = "select avg(salary) from " + TABLE_NAME;
-        String query = "select empid a, sum(salary) from " + TABLE_NAME + " group by empid having sum(salary) > ("
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ empid a, sum(salary) from " + TABLE_NAME + " group by empid having sum(salary) > ("
                 + subquery + ") order by a;";
         LOG.info("EXPLAIN:{}", dorisAssert.query(query).explainQuery());
         dorisAssert.query(query).explainContains("CROSS JOIN",
@@ -371,7 +371,7 @@ public class StmtRewriterTest {
     @Test
     public void testRewriteHavingClauseMissingAggregationColumn() throws Exception {
         String subquery = "select avg(salary) from " + TABLE_NAME;
-        String query = "select empid a from " + TABLE_NAME + " group by empid having sum(salary) > ("
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ empid a from " + TABLE_NAME + " group by empid having sum(salary) > ("
                 + subquery + ") order by sum(salary);";
         LOG.info("EXPLAIN:{}", dorisAssert.query(query).explainQuery());
         dorisAssert.query(query).explainContains("group by: `empid`",
@@ -485,7 +485,7 @@ public class StmtRewriterTest {
     @Test
     public void testRewriteHavingClauseWithAlias() throws Exception {
         String subquery = "select avg(salary) from " + TABLE_NAME;
-        String query = "select empid a, sum(salary) b from " + TABLE_NAME + " group by a having b > ("
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ empid a, sum(salary) b from " + TABLE_NAME + " group by a having b > ("
                 + subquery + ") order by b;";
         LOG.info("EXPLAIN:{}", dorisAssert.query(query).explainQuery());
         dorisAssert.query(query).explainContains("group by: `empid`",
@@ -598,7 +598,7 @@ public class StmtRewriterTest {
     @Test
     public void testRewriteHavingClausewWithLimit() throws Exception {
         String subquery = "select avg(salary) from " + TABLE_NAME;
-        String query = "select empid a, sum(salary) b from " + TABLE_NAME + " group by a having b > ("
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ empid a, sum(salary) b from " + TABLE_NAME + " group by a having b > ("
                 + subquery + ") order by b limit 100;";
         LOG.info("EXPLAIN:{}", dorisAssert.query(query).explainQuery());
         dorisAssert.query(query).explainContains("group by: `empid`",
@@ -614,7 +614,7 @@ public class StmtRewriterTest {
     public void testRewriteHavingClauseWithBetweenAndInSubquery() throws Exception {
         String subquery = "select avg(salary) from " + TABLE_NAME + " where empid between 1 and 2";
         String query =
-                "select empid a, sum(salary) b from " + TABLE_NAME + " group by a having b > (" + subquery + ");";
+                "select /*+ SET_VAR(enable_nereids_planner=false) */ empid a, sum(salary) b from " + TABLE_NAME + " group by a having b > (" + subquery + ");";
         LOG.info("EXPLAIN:{}", dorisAssert.query(query).explainQuery());
         dorisAssert.query(query)
                 .explainContains("CROSS JOIN");
diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/TableNameComparedLowercaseTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/TableNameComparedLowercaseTest.java
index 7520e66da1..4e0f4b7b20 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/TableNameComparedLowercaseTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/TableNameComparedLowercaseTest.java
@@ -91,11 +91,11 @@ public class TableNameComparedLowercaseTest {
 
     @Test
     public void testQueryTableNameCaseInsensitive() throws Exception {
-        String sql1 = "select Table1.siteid, Table2.k2 from Table1 join Table2 on Table1.siteid = Table2.k1"
+        String sql1 = "select /*+ SET_VAR(enable_nereids_planner=false) */ Table1.siteid, Table2.k2 from Table1 join Table2 on Table1.siteid = Table2.k1"
                 + " where Table2.k5 > 1000 order by Table1.siteid";
         dorisAssert.query(sql1).explainQuery();
 
-        String sql2 = "select Table1.siteid, Table2.k2 from table1 join table2 on TAble1.siteid = TAble2.k1"
+        String sql2 = "select /*+ SET_VAR(enable_nereids_planner=false) */ Table1.siteid, Table2.k2 from table1 join table2 on TAble1.siteid = TAble2.k1"
                 + " where TABle2.k5 > 1000 order by TABLe1.siteid";
         try {
             dorisAssert.query(sql2).explainQuery();
diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/ColocatePlanTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/ColocatePlanTest.java
index 2a9781339b..5baf09d1ad 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/ColocatePlanTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/ColocatePlanTest.java
@@ -80,7 +80,7 @@ public class ColocatePlanTest extends TestWithFeService {
     @Test
     public void sqlDistributedSmallerThanData1() throws Exception {
         String plan1 = getSQLPlanOrErrorMsg(
-                "explain select * from (select k1 from db1.test_colocate group by k1) a , db1.test_colocate b "
+                "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from (select k1 from db1.test_colocate group by k1) a , db1.test_colocate b "
                         + "where a.k1=b.k1");
         Assert.assertEquals(2, StringUtils.countMatches(plan1, "AGGREGATE"));
         Assert.assertTrue(plan1.contains(DistributedPlanColocateRule.REDISTRIBUTED_SRC_DATA));
@@ -89,7 +89,7 @@ public class ColocatePlanTest extends TestWithFeService {
     // without : join column < distributed columns;
     @Test
     public void sqlDistributedSmallerThanData2() throws Exception {
-        String sql = "explain select * from (select k1 from db1.test_colocate group by k1, k2) a , db1.test_colocate b "
+        String sql = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from (select k1 from db1.test_colocate group by k1, k2) a , db1.test_colocate b "
                 + "where a.k1=b.k1";
         String plan1 = getSQLPlanOrErrorMsg(sql);
         Assert.assertTrue(plan1.contains(DistributedPlanColocateRule.INCONSISTENT_DISTRIBUTION_OF_TABLE_AND_QUERY));
@@ -170,7 +170,7 @@ public class ColocatePlanTest extends TestWithFeService {
     @Test
     public void checkColocatePlanFragment() throws Exception {
         String sql
-                = "select a.k1 from db1.test_colocate a, db1.test_colocate b where a.k1=b.k1 and a.k2=b.k2 group by a.k1;";
+                = "select /*+ SET_VAR(enable_nereids_planner=false) */ a.k1 from db1.test_colocate a, db1.test_colocate b where a.k1=b.k1 and a.k2=b.k2 group by a.k1;";
         StmtExecutor executor = getSqlStmtExecutor(sql);
         Planner planner = executor.planner();
         Coordinator coordinator = Deencapsulation.getField(executor, "coord");
diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/ConstantExpressTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/ConstantExpressTest.java
index 96e4b7302c..84a4c270e2 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/ConstantExpressTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/ConstantExpressTest.java
@@ -52,11 +52,11 @@ public class ConstantExpressTest {
                 "'1601'");
 
         testConstantExpressResult(
-                "select date_format('2020-02-19 16:01:12','%Y%m%d');",
+                "select /*+ SET_VAR(enable_nereids_planner=false) */ date_format('2020-02-19 16:01:12','%Y%m%d');",
                 "'20200219'");
 
         testConstantExpressResult(
-                "select date_format(date_sub('2018-07-24 07:16:19',1),'yyyyMMdd');",
+                "select /*+ SET_VAR(enable_nereids_planner=false) */ date_format(date_sub('2018-07-24 07:16:19',1),'yyyyMMdd');",
                 "'20180723'");
 
         testConstantExpressResult(
@@ -64,11 +64,11 @@ public class ConstantExpressTest {
                 "24223");
 
         testConstantExpressResult(
-                "select date_format('2018-08-08 07:16:19', 'yyyyMMdd');",
+                "select /*+ SET_VAR(enable_nereids_planner=false) */ date_format('2018-08-08 07:16:19', 'yyyyMMdd');",
                 "'20180808'");
 
         testConstantExpressResult(
-                "select date_format('2018-08-08 07:16:19', 'yyyy-MM-dd HH:mm:ss');",
+                "select /*+ SET_VAR(enable_nereids_planner=false) */ date_format('2018-08-08 07:16:19', 'yyyy-MM-dd HH:mm:ss');",
                 "'2018-08-08 07:16:19'");
 
         testConstantExpressResult(
diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/DistributedPlannerTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/DistributedPlannerTest.java
index 2fe0085883..2551a9d06a 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/DistributedPlannerTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/DistributedPlannerTest.java
@@ -148,7 +148,7 @@ public class DistributedPlannerTest {
 
     @Test
     public void testBroadcastJoinCostThreshold() throws Exception {
-        String sql = "explain select * from db1.tbl1 join db1.tbl2 on tbl1.k1 = tbl2.k3";
+        String sql = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from db1.tbl1 join db1.tbl2 on tbl1.k1 = tbl2.k3";
         StmtExecutor stmtExecutor = new StmtExecutor(ctx, sql);
         stmtExecutor.execute();
         Planner planner = stmtExecutor.planner();
diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/MaterializedViewFunctionTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/MaterializedViewFunctionTest.java
index 7f4a41b835..348f66dd6a 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/MaterializedViewFunctionTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/MaterializedViewFunctionTest.java
@@ -537,7 +537,7 @@ public class MaterializedViewFunctionTest {
         String query1 = "select distinct deptno from " + EMPS_TABLE_NAME + ";";
         dorisAssert.withMaterializedView(createEmpsMVsql);
         dorisAssert.query(query1).explainContains(QUERY_USE_EMPS_MV);
-        String query2 = "select deptno, sum(distinct salary) from " + EMPS_TABLE_NAME + " group by deptno;";
+        String query2 = "select /*+ SET_VAR(enable_nereids_planner=false) */ deptno, sum(distinct salary) from " + EMPS_TABLE_NAME + " group by deptno;";
         dorisAssert.query(query2).explainWithout(QUERY_USE_EMPS_MV);
     }
 
diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/PlannerTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/PlannerTest.java
index 97812cb0d0..9f5db2ff27 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/PlannerTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/PlannerTest.java
@@ -80,7 +80,7 @@ public class PlannerTest extends TestWithFeService {
         Planner planner1 = stmtExecutor1.planner();
         String plan1 = planner1.getExplainString(new ExplainOptions(false, false));
         Assertions.assertEquals(1, StringUtils.countMatches(plan1, "UNION"));
-        String sql2 = "explain select * from db1.tbl1 where k1='a' and k4=1\n"
+        String sql2 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from db1.tbl1 where k1='a' and k4=1\n"
                 + "union distinct\n"
                 + "  (select * from db1.tbl1 where k1='b' and k4=2\n"
                 + "   union all\n"
@@ -106,7 +106,7 @@ public class PlannerTest extends TestWithFeService {
         Assertions.assertEquals(4, StringUtils.countMatches(plan2, "UNION"));
 
         // intersect
-        String sql3 = "explain select * from\n"
+        String sql3 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from\n"
                 + "  (select k1, k2 from db1.tbl1\n"
                 + "   intersect\n"
                 + "   select k1, k2 from db1.tbl1) a\n"
@@ -119,7 +119,7 @@ public class PlannerTest extends TestWithFeService {
         Planner planner3 = stmtExecutor3.planner();
         String plan3 = planner3.getExplainString(new ExplainOptions(false, false));
         Assertions.assertEquals(1, StringUtils.countMatches(plan3, "INTERSECT"));
-        String sql4 = "explain select * from db1.tbl1 where k1='a' and k4=1\n"
+        String sql4 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from db1.tbl1 where k1='a' and k4=1\n"
                 + "intersect distinct\n"
                 + "  (select * from db1.tbl1 where k1='b' and k4=2\n"
                 + "   intersect\n"
@@ -146,7 +146,7 @@ public class PlannerTest extends TestWithFeService {
         Assertions.assertEquals(3, StringUtils.countMatches(plan4, "INTERSECT"));
 
         // except
-        String sql5 = "explain select * from\n"
+        String sql5 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from\n"
                 + "  (select k1, k2 from db1.tbl1\n"
                 + "   except\n"
                 + "   select k1, k2 from db1.tbl1) a\n"
@@ -160,7 +160,7 @@ public class PlannerTest extends TestWithFeService {
         String plan5 = planner5.getExplainString(new ExplainOptions(false, false));
         Assertions.assertEquals(1, StringUtils.countMatches(plan5, "EXCEPT"));
 
-        String sql6 = "select * from db1.tbl1 where k1='a' and k4=1\n"
+        String sql6 = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from db1.tbl1 where k1='a' and k4=1\n"
                 + "except\n"
                 + "select * from db1.tbl1 where k1='a' and k4=1\n"
                 + "except\n"
@@ -174,7 +174,7 @@ public class PlannerTest extends TestWithFeService {
         String plan6 = planner6.getExplainString(new ExplainOptions(false, false));
         Assertions.assertEquals(1, StringUtils.countMatches(plan6, "EXCEPT"));
 
-        String sql7 = "select * from db1.tbl1 where k1='a' and k4=1\n"
+        String sql7 = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from db1.tbl1 where k1='a' and k4=1\n"
                 + "except distinct\n"
                 + "select * from db1.tbl1 where k1='a' and k4=1\n"
                 + "except\n"
@@ -189,7 +189,7 @@ public class PlannerTest extends TestWithFeService {
         Assertions.assertEquals(1, StringUtils.countMatches(plan7, "EXCEPT"));
 
         // mixed
-        String sql8 = "select * from db1.tbl1 where k1='a' and k4=1\n"
+        String sql8 = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from db1.tbl1 where k1='a' and k4=1\n"
                 + "union\n"
                 + "select * from db1.tbl1 where k1='a' and k4=1\n"
                 + "except\n"
@@ -205,7 +205,7 @@ public class PlannerTest extends TestWithFeService {
         Assertions.assertEquals(1, StringUtils.countMatches(plan8, "INTERSECT"));
         Assertions.assertEquals(1, StringUtils.countMatches(plan8, "EXCEPT"));
 
-        String sql9 = "explain select * from db1.tbl1 where k1='a' and k4=1\n"
+        String sql9 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from db1.tbl1 where k1='a' and k4=1\n"
                 + "intersect distinct\n"
                 + "  (select * from db1.tbl1 where k1='b' and k4=2\n"
                 + "   union all\n"
@@ -233,7 +233,7 @@ public class PlannerTest extends TestWithFeService {
         Assertions.assertEquals(3, StringUtils.countMatches(plan9, "INTERSECT"));
         Assertions.assertEquals(2, StringUtils.countMatches(plan9, "EXCEPT"));
 
-        String sql10 = "select 499 union select 670 except select 499";
+        String sql10 = "select /*+ SET_VAR(enable_nereids_planner=false) */ 499 union select 670 except select 499";
         StmtExecutor stmtExecutor10 = new StmtExecutor(connectContext, sql10);
         stmtExecutor10.execute();
         Planner planner10 = stmtExecutor10.planner();
@@ -243,7 +243,7 @@ public class PlannerTest extends TestWithFeService {
         Assertions.assertTrue(fragments10.get(0).getPlanRoot()
                 .getFragment().getPlanRoot().getChild(1) instanceof UnionNode);
 
-        String sql11 = "SELECT a.x FROM\n"
+        String sql11 = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ a.x FROM\n"
                 + "(SELECT '01' x) a \n"
                 + "INNER JOIN\n"
                 + "(SELECT '01' x UNION all SELECT '02') b";
@@ -253,7 +253,7 @@ public class PlannerTest extends TestWithFeService {
         SetOperationNode setNode11 = (SetOperationNode) (planner11.getFragments().get(1).getPlanRoot());
         Assertions.assertEquals(2, setNode11.getMaterializedConstExprLists().size());
 
-        String sql12 = "SELECT a.x \n"
+        String sql12 = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ a.x \n"
                 + "FROM (SELECT '01' x) a \n"
                 + "INNER JOIN \n"
                 + "(SELECT k1 from db1.tbl1 \n"
@@ -269,7 +269,7 @@ public class PlannerTest extends TestWithFeService {
     @Test
     public void testPushDown() throws Exception {
         String sql1 =
-                "SELECT\n"
+                "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ \n"
                 + "    IF(k2 IS NULL, 'ALL', k2) AS k2,\n"
                 + "    IF(k3 IS NULL, 'ALL', k3) AS k3,\n"
                 + "    k4\n"
@@ -302,7 +302,7 @@ public class PlannerTest extends TestWithFeService {
         Assertions.assertEquals(3, fragments1.get(0).getPlanRoot().getChild(0).getChild(0).conjuncts.size());
 
         String sql2 =
-                "SELECT\n"
+                "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ \n"
                         + "    IF(k2 IS NULL, 'ALL', k2) AS k2,\n"
                         + "    IF(k3 IS NULL, 'ALL', k3) AS k3,\n"
                         + "    k4\n"
@@ -333,7 +333,7 @@ public class PlannerTest extends TestWithFeService {
         // union
         String sql1 = "with a as (select NULL as user_id ), "
                 + "b as ( select '543' as user_id) "
-                + "select user_id from a union all select user_id from b";
+                + "select /*+ SET_VAR(enable_nereids_planner=false) */ user_id from a union all select user_id from b";
 
         StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
         stmtExecutor1.execute();
@@ -352,7 +352,7 @@ public class PlannerTest extends TestWithFeService {
 
     @Test
     public void testAnalyticSortNodeLeftJoin() throws Exception {
-        String sql = "SELECT a.k1, a.k3, SUM(COUNT(t.k2)) OVER (PARTITION BY a.k3 ORDER BY a.k1) AS c\n"
+        String sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ a.k1, a.k3, SUM(COUNT(t.k2)) OVER (PARTITION BY a.k3 ORDER BY a.k1) AS c\n"
                 + "FROM ( SELECT k1, k3 FROM db1.tbl3) a\n"
                 + "LEFT JOIN (SELECT 1 AS line, k1, k2, k3 FROM db1.tbl3) t\n"
                 + "ON t.k1 = a.k1 AND t.k3 = a.k3\n"
@@ -403,7 +403,7 @@ public class PlannerTest extends TestWithFeService {
         };
 
         compare.accept("select * from db1.tbl2 where k1 = 2.0", "select * from db1.tbl2 where k1 = 2");
-        compare.accept("select * from db1.tbl2 where k1 = 2.1", "select * from db1.tbl2 where 2 = 2.1");
+        compare.accept("select /*+ SET_VAR(enable_nereids_planner=false) */ * from db1.tbl2 where k1 = 2.1", "select /*+ SET_VAR(enable_nereids_planner=false) */ * from db1.tbl2 where 2 = 2.1");
         compare.accept("select * from db1.tbl2 where k1 != 2.0", "select * from db1.tbl2 where k1 != 2");
         compare.accept("select * from db1.tbl2 where k1 != 2.1", "select * from db1.tbl2 where TRUE");
         compare.accept("select * from db1.tbl2 where k1 <= 2.0", "select * from db1.tbl2 where k1 <= 2");
@@ -427,7 +427,7 @@ public class PlannerTest extends TestWithFeService {
 
     @Test
     public void testPushDownPredicateOnGroupingSetAggregate() throws Exception {
-        String sql = "explain select k1, k2, count(distinct v1) from db1.tbl4"
+        String sql = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1, k2, count(distinct v1) from db1.tbl4"
                 + " group by grouping sets((k1), (k1, k2)) having k1 = 1 and k2 = 1";
         StmtExecutor stmtExecutor = new StmtExecutor(connectContext, sql);
         stmtExecutor.execute();
@@ -449,7 +449,7 @@ public class PlannerTest extends TestWithFeService {
 
     @Test
     public void testPushDownPredicateOnNormalAggregate() throws Exception {
-        String sql = "explain select k1, k2, count(distinct v1) from db1.tbl4"
+        String sql = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1, k2, count(distinct v1) from db1.tbl4"
                 + " group by k1, k2 having k1 = 1 and k2 = 1";
         StmtExecutor stmtExecutor = new StmtExecutor(connectContext, sql);
         stmtExecutor.execute();
@@ -460,7 +460,7 @@ public class PlannerTest extends TestWithFeService {
 
     @Test
     public void testPushDownPredicateOnWindowFunction() throws Exception {
-        String sql = "explain select v1, k1,"
+        String sql = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ v1, k1,"
                 + " sum(v1) over (partition by k1 order by v1 rows between 1 preceding and 1 following)"
                 + " as 'moving total' from db1.tbl4 where k1 = 1";
         StmtExecutor stmtExecutor = new StmtExecutor(connectContext, sql);
@@ -522,7 +522,7 @@ public class PlannerTest extends TestWithFeService {
         Assertions.assertFalse(plan1.contains("TOPN OPT"));
 
         // Push sort success limit = topnOptLimitThreshold
-        sql1 = "explain select k1 from db1.tbl3 order by k1, k2 limit "
+        sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl3 order by k1, k2 limit "
             + (connectContext.getSessionVariable().topnOptLimitThreshold);
         stmtExecutor1 = new StmtExecutor(connectContext, sql1);
         stmtExecutor1.execute();
@@ -534,7 +534,7 @@ public class PlannerTest extends TestWithFeService {
 
         // Push sort success limit < topnOptLimitThreshold
         if (connectContext.getSessionVariable().topnOptLimitThreshold > 1) {
-            sql1 = "explain select k1 from db1.tbl3 order by k1, k2 limit "
+            sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl3 order by k1, k2 limit "
                 + (connectContext.getSessionVariable().topnOptLimitThreshold - 1);
             stmtExecutor1 = new StmtExecutor(connectContext, sql1);
             stmtExecutor1.execute();
@@ -559,7 +559,7 @@ public class PlannerTest extends TestWithFeService {
     public void testEliminatingSortNode() throws Exception {
             // success case 1
             {
-            String sql1 = "explain select k1 from db1.tbl1 where k1 = 1 order by k1, k2 limit "
+            String sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where k1 = 1 order by k1, k2 limit "
                     + connectContext.getSessionVariable().topnOptLimitThreshold;
             StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
             stmtExecutor1.execute();
@@ -571,7 +571,7 @@ public class PlannerTest extends TestWithFeService {
 
             // fail case 2
             {
-            String sql1 = "explain select k1 from db1.tbl1 where k1 = 1 and k3 = 2 order by k1, k2 limit "
+            String sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where k1 = 1 and k3 = 2 order by k1, k2 limit "
                     + connectContext.getSessionVariable().topnOptLimitThreshold;
             StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
             stmtExecutor1.execute();
@@ -583,7 +583,7 @@ public class PlannerTest extends TestWithFeService {
 
             // fail case 3
             {
-            String sql1 = "explain select k1 from db1.tbl1 where k1 = 1 and k2 != 2 order by k1, k2 limit "
+            String sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where k1 = 1 and k2 != 2 order by k1, k2 limit "
                     + connectContext.getSessionVariable().topnOptLimitThreshold;
             StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
             stmtExecutor1.execute();
@@ -595,7 +595,7 @@ public class PlannerTest extends TestWithFeService {
 
             // fail case 4
             {
-            String sql1 = "explain select k1 from db1.tbl1 where k1 = 1 or k2 = 2 order by k1, k2 limit "
+            String sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where k1 = 1 or k2 = 2 order by k1, k2 limit "
                     + connectContext.getSessionVariable().topnOptLimitThreshold;
             StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
             stmtExecutor1.execute();
@@ -607,7 +607,7 @@ public class PlannerTest extends TestWithFeService {
 
             // fail case 5
             {
-            String sql1 = "explain select k1 from db1.tbl1 where k1 = 1 and k2 = 2 or k3 = 3 order by k1, k2 limit "
+            String sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where k1 = 1 and k2 = 2 or k3 = 3 order by k1, k2 limit "
                     + connectContext.getSessionVariable().topnOptLimitThreshold;
             StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
             stmtExecutor1.execute();
@@ -642,7 +642,7 @@ public class PlannerTest extends TestWithFeService {
 
             // success case 1
             {
-            String sql1 = "explain select k1 from db1.tbl1 where k1 = 1 and k2 = 2 order by k1, k2 limit "
+            String sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where k1 = 1 and k2 = 2 order by k1, k2 limit "
                     + connectContext.getSessionVariable().topnOptLimitThreshold;
             StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
             stmtExecutor1.execute();
@@ -654,7 +654,7 @@ public class PlannerTest extends TestWithFeService {
 
             // success case 2
             {
-            String sql1 = "explain select k1 from db1.tbl1 where k3 = 3 and k2 = 2 and k1 = 1 order by k1, k2 limit "
+            String sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where k3 = 3 and k2 = 2 and k1 = 1 order by k1, k2 limit "
                     + connectContext.getSessionVariable().topnOptLimitThreshold;
             StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
             stmtExecutor1.execute();
@@ -666,7 +666,7 @@ public class PlannerTest extends TestWithFeService {
 
             // success case 3
             {
-            String sql1 = "explain select k1 from db1.tbl1 where k1 in (1) and k2 in (2) and k2 !=2 order by k1, k2 limit "
+            String sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where k1 in (1) and k2 in (2) and k2 !=2 order by k1, k2 limit "
                     + connectContext.getSessionVariable().topnOptLimitThreshold;
             StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
             stmtExecutor1.execute();
@@ -678,7 +678,7 @@ public class PlannerTest extends TestWithFeService {
 
             // success case 4
             {
-            String sql1 = "explain select k1 from db1.tbl1 where k1 in (concat('1','2')) and k2 = 2 order by k1, k2 limit "
+            String sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where k1 in (concat('1','2')) and k2 = 2 order by k1, k2 limit "
                     + connectContext.getSessionVariable().topnOptLimitThreshold;
             StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
             stmtExecutor1.execute();
diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/ProjectPlannerFunctionTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/ProjectPlannerFunctionTest.java
index b42076e00b..53198a63b1 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/ProjectPlannerFunctionTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/ProjectPlannerFunctionTest.java
@@ -67,7 +67,7 @@ public class ProjectPlannerFunctionTest {
     // keep a.k2 after a join b
     @Test
     public void projectByAgg() throws Exception {
-        String queryStr = "desc verbose select a.k2 from test.t1 a , test.t1 b where a.k1=b.k1 group by a.k2;";
+        String queryStr = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ a.k2 from test.t1 a , test.t1 b where a.k1=b.k1 group by a.k2;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, queryStr);
         Assert.assertTrue(explainString.contains("output slot ids: 0"));
     }
@@ -75,7 +75,7 @@ public class ProjectPlannerFunctionTest {
     // keep a.k2 after a join b
     @Test
     public void projectBySort() throws Exception {
-        String queryStr = "desc verbose select a.k2 from test.t1 a , test.t1 b where a.k1=b.k1 order by a.k2;";
+        String queryStr = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ a.k2 from test.t1 a , test.t1 b where a.k1=b.k1 order by a.k2;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, queryStr);
         Assert.assertTrue(explainString.contains("output slot ids: 0"));
     }
@@ -84,7 +84,7 @@ public class ProjectPlannerFunctionTest {
     // keep a.k1, a.k2 after a join b
     @Test
     public void projectByJoin() throws Exception {
-        String queryStr = "desc verbose select a.k2 from test.t1 a inner join test.t1 b on a.k1=b.k1 "
+        String queryStr = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ a.k2 from test.t1 a inner join test.t1 b on a.k1=b.k1 "
                 + "inner join test.t1 c on a.k1=c.k1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, queryStr);
         Assert.assertTrue(explainString.contains("output slot ids: 8"));
@@ -94,7 +94,7 @@ public class ProjectPlannerFunctionTest {
     // keep a.k2 after a join b
     @Test
     public void projectByResultExprs() throws Exception {
-        String queryStr = "desc verbose select a.k2 from test.t1 a , test.t1 b where a.k1=b.k1;";
+        String queryStr = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ a.k2 from test.t1 a , test.t1 b where a.k1=b.k1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, queryStr);
         Assert.assertTrue(explainString.contains("output slot ids: 0"));
     }
@@ -103,7 +103,7 @@ public class ProjectPlannerFunctionTest {
     // keep a.k2, b.k1, b.k2 after <a,b> hash table
     @Test
     public void projectHashTable() throws Exception {
-        String queryStr = "desc verbose select b.k1 from test.t1 a right join test.t1 b on a.k1=b.k1 and b.k2>1 where a.k2>1;";
+        String queryStr = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ b.k1 from test.t1 a right join test.t1 b on a.k1=b.k1 and b.k2>1 where a.k2>1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, queryStr);
         Assert.assertTrue(explainString.contains("output slot ids: 1"));
         Assert.assertTrue(explainString.contains("hash output slot ids: 1 2 3"));
diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java
index 1144cdeb08..0309718ed0 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/QueryPlanTest.java
@@ -418,7 +418,7 @@ public class QueryPlanTest extends TestWithFeService {
 
     @Test
     public void testFunctionViewGroupingSet() throws Exception {
-        String queryStr = "select query_id, client_ip, concat from test.function_view group by rollup("
+        String queryStr = "select /*+ SET_VAR(enable_nereids_planner=false) */ query_id, client_ip, concat from test.function_view group by rollup("
                 + "query_id, client_ip, concat);";
         assertSQLPlanOrErrorMsgContains(queryStr, "repeat: repeat 3 lines [[], [8], [8, 9], [8, 9, 10]]");
     }
@@ -436,7 +436,7 @@ public class QueryPlanTest extends TestWithFeService {
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 1, "AGGREGATE"));
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 0, "OlapScanNode"));
 
-        sql = "insert into test.bitmap_table select id, id2 from test.bitmap_table_2;";
+        sql = "insert into test.bitmap_table select /*+ SET_VAR(enable_nereids_planner=false) */ id, id2 from test.bitmap_table_2;";
         explainString = getSQLPlanOrErrorMsg("explain " + sql);
         Assert.assertTrue(explainString.contains("OLAP TABLE SINK"));
         Assert.assertTrue(explainString.contains("OUTPUT EXPRS:\n    `id`\n    `id2`"));
@@ -449,7 +449,7 @@ public class QueryPlanTest extends TestWithFeService {
     @Test
     public void testBitmapQuery() throws Exception {
         assertSQLPlanOrErrorMsgContains(
-                "select * from test.bitmap_table;",
+                "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.bitmap_table;",
                 "OUTPUT EXPRS:\n    `default_cluster:test`.`bitmap_table`.`id`\n    `default_cluster:test`.`bitmap_table`.`id2`"
         );
 
@@ -498,7 +498,7 @@ public class QueryPlanTest extends TestWithFeService {
     @Test
     public void testHLLTypeQuery() throws Exception {
         assertSQLPlanOrErrorMsgContains(
-                "select * from test.hll_table;",
+                "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.hll_table;",
                 "OUTPUT EXPRS:\n    `default_cluster:test`.`hll_table`.`id`\n    `default_cluster:test`.`hll_table`.`id2`"
         );
 
@@ -645,7 +645,7 @@ public class QueryPlanTest extends TestWithFeService {
         Assert.assertTrue(explainString.contains("bitmap_union_count"));
 
         ConnectContext.get().getSessionVariable().setRewriteCountDistinct(false);
-        sql = "select count(distinct id2) from test.bitmap_table";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ count(distinct id2) from test.bitmap_table";
         explainString = getSQLPlanOrErrorMsg("explain " + sql);
         Assert.assertTrue(explainString.contains(Type.OnlyMetricTypeErrorMsg));
     }
@@ -684,7 +684,7 @@ public class QueryPlanTest extends TestWithFeService {
         Expr rightExpr = selectStmt.getWhereClause().getChildren().get(1);
         Assert.assertEquals(rightExpr.getType(), ScalarType.getDefaultDateType(Type.DATETIME));
 
-        String castSql2 = "select str_to_date('11/09/2011', '%m/%d/%Y');";
+        String castSql2 = "select /*+ SET_VAR(enable_nereids_planner=false) */ str_to_date('11/09/2011', '%m/%d/%Y');";
         String explainString = getSQLPlanOrErrorMsg("explain " + castSql2);
         Assert.assertTrue(explainString.contains("2011-11-09"));
         Assert.assertFalse(explainString.contains("2011-11-09 00:00:00"));
@@ -725,7 +725,7 @@ public class QueryPlanTest extends TestWithFeService {
 
         */
         // test left join: left table join predicate, left table couldn't push down
-        String sql = "select *\n from join1\n"
+        String sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ *\n from join1\n"
                 + "left join join2 on join1.id = join2.id\n"
                 + "and join1.id > 1;";
         String explainString = getSQLPlanOrErrorMsg("explain " + sql);
@@ -745,7 +745,7 @@ public class QueryPlanTest extends TestWithFeService {
         */
 
         // test left join: right table join predicate, only push down right table
-        sql = "select *\n from join1\n"
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ *\n from join1\n"
                 + "left join join2 on join1.id = join2.id\n"
                 + "and join2.id > 1;";
         explainString = getSQLPlanOrErrorMsg("explain " + sql);
@@ -763,7 +763,7 @@ public class QueryPlanTest extends TestWithFeService {
         */
 
         // test inner join: left table join predicate, both push down left table and right table
-        sql = "select *\n from join1\n"
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ *\n from join1\n"
                 + "join join2 on join1.id = join2.id\n"
                 + "and join1.id > 1;";
         explainString = getSQLPlanOrErrorMsg("explain " + sql);
@@ -781,14 +781,14 @@ public class QueryPlanTest extends TestWithFeService {
         */
 
         // test inner join: right table join predicate, both push down left table and right table
-        sql = "select *\n from join1\n"
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ *\n from join1\n"
 
                 + "join join2 on join1.id = join2.id\n" + "and 1 < join2.id;";
         explainString = getSQLPlanOrErrorMsg("explain " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `join1`.`id` > 1"));
         Assert.assertTrue(explainString.contains("PREDICATES: `join2`.`id` > 1"));
 
-        sql = "select *\n from join1\n"
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ *\n from join1\n"
                 + "join join2 on join1.id = join2.value\n"
                 + "and join2.value in ('abc');";
         explainString = getSQLPlanOrErrorMsg("explain " + sql);
@@ -796,7 +796,7 @@ public class QueryPlanTest extends TestWithFeService {
         Assert.assertFalse(explainString.contains("`join1`.`value` IN ('abc')"));
 
         // test anti join, right table join predicate, only push to right table
-        sql = "select *\n from join1\n"
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ *\n from join1\n"
                 + "left anti join join2 on join1.id = join2.id\n"
                 + "and join2.id > 1;";
         explainString = getSQLPlanOrErrorMsg("explain " + sql);
@@ -804,7 +804,7 @@ public class QueryPlanTest extends TestWithFeService {
         Assert.assertFalse(explainString.contains("PREDICATES: `join1`.`id` > 1"));
 
         // test semi join, right table join predicate, only push to right table
-        sql = "select *\n from join1\n"
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ *\n from join1\n"
                 + "left semi join join2 on join1.id = join2.id\n"
                 + "and join2.id > 1;";
         explainString = getSQLPlanOrErrorMsg("explain " + sql);
@@ -812,7 +812,7 @@ public class QueryPlanTest extends TestWithFeService {
         Assert.assertTrue(explainString.contains("PREDICATES: `join1`.`id` > 1"));
 
         // test anti join, left table join predicate, left table couldn't push down
-        sql = "select *\n from join1\n"
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ *\n from join1\n"
                 + "left anti join join2 on join1.id = join2.id\n"
                 + "and join1.id > 1;";
         explainString = getSQLPlanOrErrorMsg("explain " + sql);
@@ -820,7 +820,7 @@ public class QueryPlanTest extends TestWithFeService {
         Assert.assertFalse(explainString.contains("PREDICATES: `join1`.`id` > 1"));
 
         // test semi join, left table join predicate, only push to left table
-        sql = "select *\n from join1\n"
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ *\n from join1\n"
                 + "left semi join join2 on join1.id = join2.id\n"
                 + "and join1.id > 1;";
         explainString = getSQLPlanOrErrorMsg("explain " + sql);
@@ -897,7 +897,7 @@ public class QueryPlanTest extends TestWithFeService {
                 "constant exprs: \n         2"));
 
         // 1.5 nest `case when` and can not be converted to constants
-        String sql15 = "select case when case when substr(k7,2,1) then true else false end then 2 when false then 3"
+        String sql15 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case when case when substr(k7,2,1) then true else false end then 2 when false then 3"
                 + " else 0 end as col from test.baseall";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql15),
                 "OUTPUT EXPRS:\n    CASE WHEN CASE WHEN substr(`k7`, 2, 1) THEN TRUE ELSE FALSE END THEN 2"
@@ -915,84 +915,84 @@ public class QueryPlanTest extends TestWithFeService {
                 "constant exprs: \n         'a'"));
 
         // 2.1.2 test not equal
-        String sql212 = "select case 'a' when 1 then 'a' when 'a' then 'b' else 'other' end as col212;";
+        String sql212 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case 'a' when 1 then 'a' when 'a' then 'b' else 'other' end as col212;";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql212),
                 "constant exprs: \n         'b'"));
 
         // 2.2 test return null
-        String sql22 = "select case 'a' when 1 then 'a' when 'b' then 'b' end as col22;";
+        String sql22 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case 'a' when 1 then 'a' when 'b' then 'b' end as col22;";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql22),
                 "constant exprs: \n         NULL"));
 
         // 2.2.2 test return else
-        String sql222 = "select case 1 when 2 then 'a' when 3 then 'b' else 'other' end as col222;";
+        String sql222 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case 1 when 2 then 'a' when 3 then 'b' else 'other' end as col222;";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql222),
                 "constant exprs: \n         'other'"));
 
         // 2.3 test can not convert to constant,middle when expr is not constant
-        String sql23 = "select case 'a' when 'b' then 'a' when substr(k7,2,1) then 2 when false then 3"
+        String sql23 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case 'a' when 'b' then 'a' when substr(k7,2,1) then 2 when false then 3"
                 + " else 0 end as col23 from test.baseall";
         String a = getSQLPlanOrErrorMsg("explain " + sql23);
         Assert.assertTrue(StringUtils.containsIgnoreCase(a,
                 "OUTPUT EXPRS:\n    CASE 'a' WHEN substr(`k7`, 2, 1) THEN '2' WHEN '0' THEN '3' ELSE '0' END"));
 
         // 2.3.1  first when expr is not constant
-        String sql231 = "select case 'a' when substr(k7,2,1) then 2 when 1 then 'a' when false then 3 else 0 end"
+        String sql231 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case 'a' when substr(k7,2,1) then 2 when 1 then 'a' when false then 3 else 0 end"
                 + " as col231 from test.baseall";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql231),
                 "OUTPUT EXPRS:\n    CASE 'a' WHEN substr(`k7`, 2, 1) THEN '2' WHEN '1' THEN 'a' WHEN '0'"
                         + " THEN '3' ELSE '0' END"));
 
         // 2.3.2 case expr is not constant
-        String sql232 = "select case k1 when substr(k7,2,1) then 2 when 1 then 'a' when false then 3 else 0 end"
+        String sql232 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case k1 when substr(k7,2,1) then 2 when 1 then 'a' when false then 3 else 0 end"
                 + " as col232 from test.baseall";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql232),
                 "OUTPUT EXPRS:\n    CASE `k1` WHEN substr(`k7`, 2, 1) THEN '2' WHEN '1' THEN 'a' "
                         + "WHEN '0' THEN '3' ELSE '0' END"));
 
         // 3.1 test float,float in case expr
-        String sql31 = "select case cast(100 as float) when 1 then 'a' when 2 then 'b' else 'other' end as col31;";
+        String sql31 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case cast(100 as float) when 1 then 'a' when 2 then 'b' else 'other' end as col31;";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql31),
                 "constant exprs: \n         CASE 100 WHEN 1 THEN 'a' WHEN 2 THEN 'b' ELSE 'other' END"));
 
         // 4.1 test null in case expr return else
-        String sql41 = "select case null when 1 then 'a' when 2 then 'b' else 'other' end as col41";
+        String sql41 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case null when 1 then 'a' when 2 then 'b' else 'other' end as col41";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql41),
                 "constant exprs: \n         'other'"));
 
         // 4.1.2 test null in case expr return null
-        String sql412 = "select case null when 1 then 'a' when 2 then 'b' end as col41";
+        String sql412 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case null when 1 then 'a' when 2 then 'b' end as col41";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql412),
                 "constant exprs: \n         NULL"));
 
         // 4.2.1 test null in when expr
-        String sql421 = "select case 'a' when null then 'a' else 'other' end as col421";
+        String sql421 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case 'a' when null then 'a' else 'other' end as col421";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql421),
                 "constant exprs: \n         'other'"));
 
         // 5.1 test same type in then expr and else expr
-        String sql51 = "select case when 132 then k7 else 'all' end as col51 from test.baseall group by col51";
+        String sql51 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case when 132 then k7 else 'all' end as col51 from test.baseall group by col51";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql51),
                 "CASE WHEN 132 THEN `k7` ELSE 'all' END"));
 
         // 5.2 test same type in then expr and else expr
-        String sql52 = "select case when 2 < 1 then 'all' else k7 end as col52 from test.baseall group by col52";
+        String sql52 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case when 2 < 1 then 'all' else k7 end as col52 from test.baseall group by col52";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql52),
                 "`k7`"));
 
         // 5.3 test different type in then expr and else expr, and return CastExpr<SlotRef>
-        String sql53 = "select case when 2 < 1 then 'all' else k1 end as col53 from test.baseall group by col53";
+        String sql53 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case when 2 < 1 then 'all' else k1 end as col53 from test.baseall group by col53";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql53),
                 "`k1`"));
 
         // 5.4 test return CastExpr<SlotRef> with other SlotRef in selectListItem
-        String sql54 = "select k2, case when 2 < 1 then 'all' else k1 end as col54, k7 from test.baseall"
+        String sql54 = "select /*+ SET_VAR(enable_nereids_planner=false) */ k2, case when 2 < 1 then 'all' else k1 end as col54, k7 from test.baseall"
                 + " group by k2, col54, k7";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql54),
                 "OUTPUT EXPRS:\n    <slot 3> `k2`\n    <slot 4> `k1`\n    <slot 5> `k7`"));
 
         // 5.5 test return CastExpr<CastExpr<SlotRef>> with other SlotRef in selectListItem
-        String sql55 = "select case when 2 < 1 then 'all' else cast(k1 as int) end as col55, k7 from"
+        String sql55 = "select /*+ SET_VAR(enable_nereids_planner=false) */ case when 2 < 1 then 'all' else cast(k1 as int) end as col55, k7 from"
                 + " test.baseall group by col55, k7";
         Assert.assertTrue(StringUtils.containsIgnoreCase(getSQLPlanOrErrorMsg("explain " + sql55),
                 "OUTPUT EXPRS:\n    <slot 2> CAST(`k1` AS INT)\n    <slot 3> `k7`"));
@@ -1031,15 +1031,15 @@ public class QueryPlanTest extends TestWithFeService {
 
     @Test
     public void testOrCompoundPredicateFold() throws Exception {
-        String queryStr = "explain select * from baseall where (k1 > 1) or (k1 > 1 and k2 < 1)";
+        String queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from baseall where (k1 > 1) or (k1 > 1 and k2 < 1)";
         String explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(explainString.contains("PREDICATES: (`k1` > 1)\n"));
 
-        queryStr = "explain select * from  baseall where (k1 > 1 and k2 < 1) or  (k1 > 1)";
+        queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from  baseall where (k1 > 1 and k2 < 1) or  (k1 > 1)";
         explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(explainString.contains("PREDICATES: `k1` > 1\n"));
 
-        queryStr = "explain select * from  baseall where (k1 > 1) or (k1 > 1)";
+        queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from  baseall where (k1 > 1) or (k1 > 1)";
         explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(explainString.contains("PREDICATES: (`k1` > 1)\n"));
     }
@@ -1053,16 +1053,16 @@ public class QueryPlanTest extends TestWithFeService {
         String explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(explainString.contains(ColocatePlanTest.COLOCATE_ENABLE));
 
-        queryStr = "explain select * from test.colocate1 t1 join [shuffle] test.colocate2 t2 on t1.k1 = t2.k1 and t1.k2 = t2.k2";
+        queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.colocate1 t1 join [shuffle] test.colocate2 t2 on t1.k1 = t2.k1 and t1.k2 = t2.k2";
         explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertFalse(explainString.contains(ColocatePlanTest.COLOCATE_ENABLE));
 
         // t1.k1 = t2.k2 not same order with distribute column
-        queryStr = "explain select * from test.colocate1 t1, test.colocate2 t2 where t1.k1 = t2.k2 and t1.k2 = t2.k1 and t1.k3 = t2.k3";
+        queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.colocate1 t1, test.colocate2 t2 where t1.k1 = t2.k2 and t1.k2 = t2.k1 and t1.k3 = t2.k3";
         explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertFalse(explainString.contains(ColocatePlanTest.COLOCATE_ENABLE));
 
-        queryStr = "explain select * from test.colocate1 t1, test.colocate2 t2 where t1.k2 = t2.k2";
+        queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.colocate1 t1, test.colocate2 t2 where t1.k2 = t2.k2";
         explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertFalse(explainString.contains(ColocatePlanTest.COLOCATE_ENABLE));
     }
@@ -1072,7 +1072,7 @@ public class QueryPlanTest extends TestWithFeService {
         FeConstants.runningUnitTest = true;
 
         // single partition
-        String queryStr = "explain select * from test.jointest t1, test.jointest t2 where t1.k1 = t2.k1";
+        String queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.jointest t1, test.jointest t2 where t1.k1 = t2.k1";
         String explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(explainString.contains(ColocatePlanTest.COLOCATE_ENABLE));
 
@@ -1118,14 +1118,14 @@ public class QueryPlanTest extends TestWithFeService {
         }
 
         // single partition
-        String queryStr = "explain select * from test.jointest t1, test.bucket_shuffle1 t2 where t1.k1 = t2.k1"
+        String queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.jointest t1, test.bucket_shuffle1 t2 where t1.k1 = t2.k1"
                 + " and t1.k1 = t2.k2";
         String explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(explainString.contains("BUCKET_SHFFULE"));
         Assert.assertTrue(explainString.contains("BUCKET_SHFFULE_HASH_PARTITIONED: `t1`.`k1`, `t1`.`k1`"));
 
         // not bucket shuffle join do not support different type
-        queryStr = "explain select * from test.jointest t1, test.bucket_shuffle1 t2 where cast (t1.k1 as tinyint)"
+        queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.jointest t1, test.bucket_shuffle1 t2 where cast (t1.k1 as tinyint)"
                 + " = t2.k1 and t1.k1 = t2.k2";
         explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(!explainString.contains("BUCKET_SHFFULE"));
@@ -1165,7 +1165,7 @@ public class QueryPlanTest extends TestWithFeService {
         //Assert.assertTrue(explainString.contains("BUCKET_SHFFULE_HASH_PARTITIONED: `t4`.`k1`, `t4`.`k1`"));
 
         // some column name in join expr t3 join t4 and t1 distribute column name, so should not be bucket shuffle join
-        queryStr = "explain select * from test.jointest t1 join test.bucket_shuffle1 t2 on t1.k1 = t2.k1 and t1.k1 ="
+        queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.jointest t1 join test.bucket_shuffle1 t2 on t1.k1 = t2.k1 and t1.k1 ="
                 + " t2.k2 join test.colocate1 t3 on t2.k1 = t3.k1 join test.jointest t4 on t4.k1 = t3.k1 and"
                 + " t4.k2 = t3.k2";
         explainString = getSQLPlanOrErrorMsg(queryStr);
@@ -1173,7 +1173,7 @@ public class QueryPlanTest extends TestWithFeService {
         Assert.assertTrue(!explainString.contains("BUCKET_SHFFULE_HASH_PARTITIONED: `t4`.`k1`, `t4`.`k1`"));
 
         // here only a bucket shuffle + broadcast jost join
-        queryStr = "explain SELECT * FROM test.bucket_shuffle1 T LEFT JOIN test.bucket_shuffle1 T1 ON T1.k2 = T.k1 and T.k2 = T1.k3 LEFT JOIN"
+        queryStr = "explain SELECT /*+ SET_VAR(enable_nereids_planner=false) */ * FROM test.bucket_shuffle1 T LEFT JOIN test.bucket_shuffle1 T1 ON T1.k2 = T.k1 and T.k2 = T1.k3 LEFT JOIN"
                 + " test.bucket_shuffle2 T2 ON T2.k2 = T1.k1 and T2.k1 = T1.k2;";
         explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(explainString.contains("BUCKET_SHFFULE"));
@@ -1347,7 +1347,7 @@ public class QueryPlanTest extends TestWithFeService {
     @Test
     public void testPreferBroadcastJoin() throws Exception {
         connectContext.setDatabase("default_cluster:test");
-        String queryStr = "explain select * from (select k2 from jointest)t2, jointest t1 where t1.k1 = t2.k2";
+        String queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from (select k2 from jointest)t2, jointest t1 where t1.k1 = t2.k2";
         // disable bucket shuffle join
         Deencapsulation.setField(connectContext.getSessionVariable(), "enableBucketShuffleJoin", false);
 
@@ -1368,7 +1368,7 @@ public class QueryPlanTest extends TestWithFeService {
     public void testRuntimeFilterMode() throws Exception {
         connectContext.setDatabase("default_cluster:test");
 
-        String queryStr = "explain select * from jointest t2, jointest t1 where t1.k1 = t2.k1";
+        String queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from jointest t2, jointest t1 where t1.k1 = t2.k1";
         Deencapsulation.setField(connectContext.getSessionVariable(), "runtimeFilterMode", "LOCAL");
         String explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(explainString.contains("runtime filter"));
@@ -1388,7 +1388,7 @@ public class QueryPlanTest extends TestWithFeService {
         explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertFalse(explainString.contains("runtime filter"));
 
-        queryStr = "explain select * from jointest as a where k1 = (select count(1) from jointest as b"
+        queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from jointest as a where k1 = (select count(1) from jointest as b"
                 + " where a.k1 = b.k1);";
         Deencapsulation.setField(connectContext.getSessionVariable(), "runtimeFilterMode", "GLOBAL");
         Deencapsulation.setField(connectContext.getSessionVariable(), "runtimeFilterType", 15);
@@ -1399,7 +1399,7 @@ public class QueryPlanTest extends TestWithFeService {
     @Test
     public void testRuntimeFilterType() throws Exception {
         connectContext.setDatabase("default_cluster:test");
-        String queryStr = "explain select * from jointest t2, jointest t1 where t1.k1 = t2.k1";
+        String queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from jointest t2, jointest t1 where t1.k1 = t2.k1";
         Deencapsulation.setField(connectContext.getSessionVariable(), "runtimeFilterMode", "GLOBAL");
 
         Deencapsulation.setField(connectContext.getSessionVariable(), "runtimeFilterType", 0);
@@ -1518,7 +1518,7 @@ public class QueryPlanTest extends TestWithFeService {
         Assert.assertTrue(explainString.contains("RF003[in_or_bloom] -> `t2`.`k1`"));
 
         // support merge in filter, and forbidden implicit conversion to bloom filter
-        queryStr = "explain select * from jointest t2 join [shuffle] jointest t1 where t1.k1 = t2.k1";
+        queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from jointest t2 join [shuffle] jointest t1 where t1.k1 = t2.k1";
         Deencapsulation.setField(connectContext.getSessionVariable(), "runtimeFilterMode", "GLOBAL");
         Deencapsulation.setField(connectContext.getSessionVariable(), "runtimeFilterType", TRuntimeFilterType.IN.getValue());
         explainString = getSQLPlanOrErrorMsg(queryStr);
@@ -1527,7 +1527,7 @@ public class QueryPlanTest extends TestWithFeService {
         Assert.assertFalse(explainString.contains("RF000[bloom] -> `t2`.`k1`"));
         Assert.assertFalse(explainString.contains("RF000[bloom] <- `t1`.`k1`"));
 
-        queryStr = "explain select * from jointest t2 join [shuffle] jointest t1 where t1.k1 = t2.k1";
+        queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from jointest t2 join [shuffle] jointest t1 where t1.k1 = t2.k1";
         Deencapsulation.setField(connectContext.getSessionVariable(), "runtimeFilterMode", "GLOBAL");
         Deencapsulation.setField(connectContext.getSessionVariable(), "runtimeFilterType", TRuntimeFilterType.IN_OR_BLOOM.getValue());
         explainString = getSQLPlanOrErrorMsg(queryStr);
@@ -1549,9 +1549,9 @@ public class QueryPlanTest extends TestWithFeService {
         sqls.add("explain select * from baseall join bigtable as b limit 0");
 
         sqls.add("explain select * from baseall where 1 = 2");
-        sqls.add("explain select * from baseall where null = null");
+        sqls.add("explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from baseall where null = null");
         sqls.add("explain select count(*) from baseall where 1 = 2;");
-        sqls.add("explain select k3, dense_rank() OVER () AS rank FROM baseall where 1 =2;");
+        sqls.add("explain select /*+ SET_VAR(enable_nereids_planner=false) */ k3, dense_rank() OVER () AS rank FROM baseall where 1 =2;");
         sqls.add("explain select rank from (select k3, dense_rank() OVER () AS rank FROM baseall) a where 1 =2;");
         sqls.add("explain select * from baseall join bigtable as b where 1 = 2");
 
@@ -1593,19 +1593,19 @@ public class QueryPlanTest extends TestWithFeService {
     public void testLeadAndLagFunction() throws Exception {
         connectContext.setDatabase("default_cluster:test");
 
-        String queryStr = "explain select time_col, lead(query_time, 1, NULL) over () as time2 from test.test1";
+        String queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ time_col, lead(query_time, 1, NULL) over () as time2 from test.test1";
         String explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(explainString.contains("lead(`query_time`, 1, NULL)"));
 
-        queryStr = "explain select time_col, lead(query_time, 1, 2) over () as time2 from test.test1";
+        queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ time_col, lead(query_time, 1, 2) over () as time2 from test.test1";
         explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(explainString.contains("lead(`query_time`, 1, 2)"));
 
-        queryStr = "explain select time_col, lead(time_col, 1, '2020-01-01 00:00:00') over () as time2 from test.test1";
+        queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ time_col, lead(time_col, 1, '2020-01-01 00:00:00') over () as time2 from test.test1";
         explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(explainString.contains("lead(`time_col`, 1, '2020-01-01 00:00:00')"));
 
-        queryStr = "explain select time_col, lag(query_time, 1, 2) over () as time2 from test.test1";
+        queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ time_col, lag(query_time, 1, 2) over () as time2 from test.test1";
         explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(explainString.contains("lag(`query_time`, 1, 2)"));
     }
@@ -1614,32 +1614,32 @@ public class QueryPlanTest extends TestWithFeService {
     public void testIntDateTime() throws Exception {
         connectContext.setDatabase("default_cluster:test");
         //valid date
-        String sql = "select day from tbl_int_date where day in ('2020-10-30')";
+        String sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day in ('2020-10-30')";
         String explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains(Config.enable_date_conversion ? "PREDICATES: `day` IN ('2020-10-30')"
                 : "PREDICATES: `day` IN ('2020-10-30 00:00:00')"));
         //valid date
-        sql = "select day from tbl_int_date where day in ('2020-10-30','2020-10-29')";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day in ('2020-10-30','2020-10-29')";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains(Config.enable_date_conversion
                 ? "PREDICATES: `day` IN ('2020-10-30', '2020-10-29')"
                 : "PREDICATES: `day` IN ('2020-10-30 00:00:00', '2020-10-29 00:00:00')"));
 
         //valid datetime
-        sql = "select day from tbl_int_date where date in ('2020-10-30 12:12:30')";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date in ('2020-10-30 12:12:30')";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `date` IN ('2020-10-30 12:12:30')"));
         //valid datetime
-        sql = "select day from tbl_int_date where date in ('2020-10-30')";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date in ('2020-10-30')";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `date` IN ('2020-10-30 00:00:00')"));
 
         //int date
-        sql = "select day from tbl_int_date where day in (20201030)";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day in (20201030)";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `day` IN ('2020-10-30 00:00:00')"));
         //int datetime
-        sql = "select day from tbl_int_date where date in (20201030)";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date in (20201030)";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `date` IN ('2020-10-30 00:00:00')"));
     }
@@ -1648,40 +1648,33 @@ public class QueryPlanTest extends TestWithFeService {
     public void testOutJoinSmapReplace() throws Exception {
         connectContext.setDatabase("default_cluster:test");
         //valid date
-        String sql = "SELECT a.aid, b.bid FROM (SELECT 3 AS aid) a right outer JOIN (SELECT 4 AS bid) b ON (a.aid=b.bid)";
-        String explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
-        Assert.assertTrue(explainString.contains("OUTPUT EXPRS:\n" + "    <slot 2>\n" + "    <slot 3>"));
+        String sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ a.aid, b.bid FROM (SELECT 3 AS aid) a right outer JOIN (SELECT 4 AS bid) b ON (a.aid=b.bid)";
+        assertSQLPlanOrErrorMsgContains(sql, "OUTPUT EXPRS:\n" + "    <slot 2>\n" + "    <slot 3>");
 
-        sql = "SELECT a.aid, b.bid FROM (SELECT 3 AS aid) a left outer JOIN (SELECT 4 AS bid) b ON (a.aid=b.bid)";
-        explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
-        Assert.assertTrue(explainString.contains("OUTPUT EXPRS:\n" + "    <slot 2>\n" + "    <slot 3>"));
+        sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ a.aid, b.bid FROM (SELECT 3 AS aid) a left outer JOIN (SELECT 4 AS bid) b ON (a.aid=b.bid)";
+        assertSQLPlanOrErrorMsgContains(sql, "OUTPUT EXPRS:\n" + "    <slot 2>\n" + "    <slot 3>");
 
-        sql = "SELECT a.aid, b.bid FROM (SELECT 3 AS aid) a full outer JOIN (SELECT 4 AS bid) b ON (a.aid=b.bid)";
-        explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
-        Assert.assertTrue(explainString.contains("OUTPUT EXPRS:\n" + "    <slot 2>\n" + "    <slot 3>"));
+        sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ a.aid, b.bid FROM (SELECT 3 AS aid) a full outer JOIN (SELECT 4 AS bid) b ON (a.aid=b.bid)";
+        assertSQLPlanOrErrorMsgContains(sql, "OUTPUT EXPRS:\n" + "    <slot 2>\n" + "    <slot 3>");
 
-        sql = "SELECT a.aid, b.bid FROM (SELECT 3 AS aid) a JOIN (SELECT 4 AS bid) b ON (a.aid=b.bid)";
-        explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
-        Assert.assertTrue(explainString.contains("OUTPUT EXPRS:\n" + "    <slot 2>\n" + "    <slot 3>"));
+        sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ a.aid, b.bid FROM (SELECT 3 AS aid) a JOIN (SELECT 4 AS bid) b ON (a.aid=b.bid)";
+        assertSQLPlanOrErrorMsgContains(sql, "OUTPUT EXPRS:\n" + "    <slot 2>\n" + "    <slot 3>");
 
-        sql = "SELECT a.k1, b.k2 FROM (SELECT k1 from baseall) a LEFT OUTER JOIN (select k1, 999 as k2 from baseall) b ON (a.k1=b.k1)";
-        explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
-        Assert.assertTrue(explainString.contains("<slot 7>\n" + "    <slot 9>"));
+        sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ a.k1, b.k2 FROM (SELECT k1 from baseall) a LEFT OUTER JOIN (select k1, 999 as k2 from baseall) b ON (a.k1=b.k1)";
+        assertSQLPlanOrErrorMsgContains(sql, "<slot 7>\n" + "    <slot 9>");
 
-        sql = "SELECT a.k1, b.k2 FROM (SELECT 1 as k1 from baseall) a RIGHT OUTER JOIN (select k1, 999 as k2 from baseall) b ON (a.k1=b.k1)";
-        explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
-        Assert.assertTrue(explainString.contains("<slot 8>\n" + "    <slot 10>"));
+        sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ a.k1, b.k2 FROM (SELECT 1 as k1 from baseall) a RIGHT OUTER JOIN (select k1, 999 as k2 from baseall) b ON (a.k1=b.k1)";
+        assertSQLPlanOrErrorMsgContains(sql, "<slot 8>\n" + "    <slot 10>");
 
-        sql = "SELECT a.k1, b.k2 FROM (SELECT 1 as k1 from baseall) a FULL JOIN (select k1, 999 as k2 from baseall) b ON (a.k1=b.k1)";
-        explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
-        Assert.assertTrue(explainString.contains("<slot 8>\n" + "    <slot 10>"));
+        sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ a.k1, b.k2 FROM (SELECT 1 as k1 from baseall) a FULL JOIN (select k1, 999 as k2 from baseall) b ON (a.k1=b.k1)";
+        assertSQLPlanOrErrorMsgContains(sql, "<slot 8>\n" + "    <slot 10>");
     }
 
     @Test
     public void testFromUnixTimeRewrite() throws Exception {
         connectContext.setDatabase("default_cluster:test");
         //default format
-        String sql = "select * from test1 where from_unixtime(query_time) > '2021-03-02 10:01:28'";
+        String sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test1 where from_unixtime(query_time) > '2021-03-02 10:01:28'";
         String explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `query_time` <= 253402271999 AND `query_time` > 1614650488"));
     }
@@ -1691,121 +1684,121 @@ public class QueryPlanTest extends TestWithFeService {
         FeConstants.runningUnitTest = true;
         connectContext.setDatabase("default_cluster:test");
         //valid date
-        String sql = "select day from tbl_int_date where day = '2020-10-30'";
+        String sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day = '2020-10-30'";
         String explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains(Config.enable_date_conversion ? "PREDICATES: `day` = '2020-10-30'"
                 : "PREDICATES: `day` = '2020-10-30 00:00:00'"));
-        sql = "select day from tbl_int_date where day = from_unixtime(1196440219)";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day = from_unixtime(1196440219)";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `day` = '2007-12-01 00:30:19'"));
-        sql = "select day from tbl_int_date where day = str_to_date('2014-12-21 12:34:56', '%Y-%m-%d %H:%i:%s');";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day = str_to_date('2014-12-21 12:34:56', '%Y-%m-%d %H:%i:%s');";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `day` = '2014-12-21 12:34:56'"));
         //valid date
-        sql = "select day from tbl_int_date where day = 20201030";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day = 20201030";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains(Config.enable_date_conversion ? "PREDICATES: `day` = '2020-10-30'"
                 : "PREDICATES: `day` = '2020-10-30 00:00:00'"));
         //valid date
-        sql = "select day from tbl_int_date where day = '20201030'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day = '20201030'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains(Config.enable_date_conversion ? "PREDICATES: `day` = '2020-10-30'"
                 : "PREDICATES: `day` = '2020-10-30 00:00:00'"));
         //valid date contains micro second
-        sql = "select day from tbl_int_date where day = '2020-10-30 10:00:01.111111'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day = '2020-10-30 10:00:01.111111'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains(Config.enable_date_conversion
                 ? "VEMPTYSET"
                 : "PREDICATES: `day` = '2020-10-30 10:00:01'"));
         //invalid date
 
-        sql = "select day from tbl_int_date where day = '2020-10-32'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day = '2020-10-32'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("Incorrect datetime value: '2020-10-32' in expression: `day` = '2020-10-32'"));
 
         //invalid date
-        sql = "select day from tbl_int_date where day = '20201032'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day = '20201032'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("Incorrect datetime value: '20201032' in expression: `day` = '20201032'"));
         //invalid date
-        sql = "select day from tbl_int_date where day = 20201032";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day = 20201032";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("Incorrect datetime value: 20201032 in expression: `day` = 20201032"));
         //invalid date
-        sql = "select day from tbl_int_date where day = 'hello'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day = 'hello'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("Incorrect datetime value: 'hello' in expression: `day` = 'hello'"));
         //invalid date
-        sql = "select day from tbl_int_date where day = 2020-10-30";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day = 2020-10-30";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("Incorrect datetime value: 1980 in expression: `day` = 1980"));
         //invalid date
-        sql = "select day from tbl_int_date where day = 10-30";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where day = 10-30";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("Incorrect datetime value: -20 in expression: `day` = -20"));
         //valid datetime
-        sql = "select day from tbl_int_date where date = '2020-10-30 12:12:30'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date = '2020-10-30 12:12:30'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `date` = '2020-10-30 12:12:30'"));
         //valid datetime, support parsing to minute
-        sql = "select day from tbl_int_date where date = '2020-10-30 12:12'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date = '2020-10-30 12:12'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `date` = '2020-10-30 12:12:00'"));
         //valid datetime, support parsing to hour
-        sql = "select day from tbl_int_date where date = '2020-10-30 12'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date = '2020-10-30 12'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `date` = '2020-10-30 12:00:00'"));
         //valid datetime
-        sql = "select day from tbl_int_date where date = 20201030";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date = 20201030";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `date` = '2020-10-30 00:00:00'"));
         //valid datetime
-        sql = "select day from tbl_int_date where date = '20201030'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date = '20201030'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `date` = '2020-10-30 00:00:00'"));
         //valid datetime
-        sql = "select day from tbl_int_date where date = '2020-10-30'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date = '2020-10-30'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `date` = '2020-10-30 00:00:00'"));
         //valid datetime contains micro second
-        sql = "select day from tbl_int_date where date = '2020-10-30 10:00:01.111111'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date = '2020-10-30 10:00:01.111111'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains(Config.enable_date_conversion
                 ? "VEMPTYSET" : "PREDICATES: `date` = '2020-10-30 10:00:01'"));
         //invalid datetime
-        sql = "select day from tbl_int_date where date = '2020-10-32'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date = '2020-10-32'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("Incorrect datetime value: '2020-10-32' in expression: `date` = '2020-10-32'"));
         //invalid datetime
-        sql = "select day from tbl_int_date where date = 'hello'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date = 'hello'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("Incorrect datetime value: 'hello' in expression: `date` = 'hello'"));
         //invalid datetime
-        sql = "select day from tbl_int_date where date = 2020-10-30";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date = 2020-10-30";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("Incorrect datetime value: 1980 in expression: `date` = 1980"));
         //invalid datetime
-        sql = "select day from tbl_int_date where date = 10-30";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date = 10-30";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("Incorrect datetime value: -20 in expression: `date` = -20"));
         //invalid datetime
-        sql = "select day from tbl_int_date where date = '2020-10-12 12:23:76'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date = '2020-10-12 12:23:76'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("Incorrect datetime value: '2020-10-12 12:23:76' in expression: `date` = '2020-10-12 12:23:76'"));
 
-        sql = "select day from tbl_int_date where date = '1604031150'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date = '1604031150'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `date` = '2016-04-03 11:50:00'"));
 
-        sql = "select day from tbl_int_date where date = '1604031150000'";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ day from tbl_int_date where date = '1604031150000'";
         explainString = getSQLPlanOrErrorMsg("EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `date` = '2016-04-03 11:50:00'"));
 
-        String queryStr = "explain select count(*) from test.baseall where k11 > to_date(now())";
+        String queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ count(*) from test.baseall where k11 > to_date(now())";
         explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(explainString.contains("PREDICATES: `k11` > to_date"));
 
-        queryStr = "explain select count(*) from test.baseall where k11 > '2021-6-1'";
+        queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ count(*) from test.baseall where k11 > '2021-6-1'";
         explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertTrue(explainString.contains("PREDICATES: `k11` > '2021-06-01 00:00:00'"));
     }
@@ -1815,53 +1808,53 @@ public class QueryPlanTest extends TestWithFeService {
         connectContext.setDatabase("default_cluster:test");
 
         // false or e ==> e
-        String sql1 = "select * from test.test1 where 2=-2 OR query_time=0;";
+        String sql1 = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.test1 where 2=-2 OR query_time=0;";
         String explainString1 = getSQLPlanOrErrorMsg("EXPLAIN " + sql1);
         Assert.assertTrue(explainString1.contains("PREDICATES: `query_time` = 0"));
 
         //true or e ==> true
-        String sql2 = "select * from test.test1 where -5=-5 OR query_time=0;";
+        String sql2 = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.test1 where -5=-5 OR query_time=0;";
         String explainString2 = getSQLPlanOrErrorMsg("EXPLAIN " + sql2);
         Assert.assertTrue(!explainString2.contains("OR"));
 
         //e or true ==> true
-        String sql3 = "select * from test.test1 where query_time=0 OR -5=-5;";
+        String sql3 = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.test1 where query_time=0 OR -5=-5;";
         String explainString3 = getSQLPlanOrErrorMsg("EXPLAIN " + sql3);
         Assert.assertTrue(!explainString3.contains("OR"));
 
         //e or false ==> e
-        String sql4 = "select * from test.test1 where -5!=-5 OR query_time=0;";
+        String sql4 = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.test1 where -5!=-5 OR query_time=0;";
         String explainString4 = getSQLPlanOrErrorMsg("EXPLAIN " + sql4);
         Assert.assertTrue(explainString4.contains("PREDICATES: `query_time` = 0"));
 
 
         // true and e ==> e
-        String sql5 = "select * from test.test1 where -5=-5 AND query_time=0;";
+        String sql5 = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.test1 where -5=-5 AND query_time=0;";
         String explainString5 = getSQLPlanOrErrorMsg("EXPLAIN " + sql5);
         Assert.assertTrue(explainString5.contains("PREDICATES: `query_time` = 0"));
 
         // e and true ==> e
-        String sql6 = "select * from test.test1 where query_time=0 AND -5=-5;";
+        String sql6 = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.test1 where query_time=0 AND -5=-5;";
         String explainString6 = getSQLPlanOrErrorMsg("EXPLAIN " + sql6);
         Assert.assertTrue(explainString6.contains("PREDICATES: `query_time` = 0"));
 
         // false and e ==> false
-        String sql7 = "select * from test.test1 where -5!=-5 AND query_time=0;";
+        String sql7 = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.test1 where -5!=-5 AND query_time=0;";
         String explainString7 = getSQLPlanOrErrorMsg("EXPLAIN " + sql7);
         Assert.assertTrue(!explainString7.contains("FALSE"));
 
         // e and false ==> false
-        String sql8 = "select * from test.test1 where query_time=0 AND -5!=-5;";
+        String sql8 = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.test1 where query_time=0 AND -5!=-5;";
         String explainString8 = getSQLPlanOrErrorMsg("EXPLAIN " + sql8);
         Assert.assertTrue(!explainString8.contains("FALSE"));
 
         // (false or expr1) and (false or expr2) ==> expr1 and expr2
-        String sql9 = "select * from test.test1 where (-2=2 or query_time=2) and (-2=2 or stmt_id=2);";
+        String sql9 = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.test1 where (-2=2 or query_time=2) and (-2=2 or stmt_id=2);";
         String explainString9 = getSQLPlanOrErrorMsg("EXPLAIN " + sql9);
         Assert.assertTrue(explainString9.contains("PREDICATES: `query_time` = 2 AND `stmt_id` = 2"));
 
         // false or (expr and true) ==> expr
-        String sql10 = "select * from test.test1 where (2=-2) OR (query_time=0 AND 1=1);";
+        String sql10 = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.test1 where (2=-2) OR (query_time=0 AND 1=1);";
         String explainString10 = getSQLPlanOrErrorMsg("EXPLAIN " + sql10);
         Assert.assertTrue(explainString10.contains("PREDICATES: `query_time` = 0"));
     }
@@ -1930,7 +1923,7 @@ public class QueryPlanTest extends TestWithFeService {
                 + "\"in_memory\" = \"false\",\n"
                 + "\"storage_format\" = \"V2\"\n"
                 + ")");
-        String sql = "select * from issue7929.t1 left join (select max(j1) over() as x from issue7929.t2) a"
+        String sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from issue7929.t1 left join (select max(j1) over() as x from issue7929.t2) a"
                 + " on t1.k1 = a.x where 1 = 0;";
         String explainStr = getSQLPlanOrErrorMsg(sql, true);
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainStr, 4, "EMPTYSET"));
@@ -2063,7 +2056,7 @@ public class QueryPlanTest extends TestWithFeService {
                 + "\"storage_medium\" = \"HDD\",\n"
                 + "\"storage_format\" = \"V2\"\n"
                 + ");\n");
-        String queryStr = "EXPLAIN VERBOSE INSERT INTO result_exprs\n" + "SELECT a.aid,\n" + "       b.bid\n" + "FROM\n"
+        String queryStr = "EXPLAIN VERBOSE INSERT INTO result_exprs\n" + "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ a.aid,\n" + "       b.bid\n" + "FROM\n"
                 + "  (SELECT 3 AS aid)a\n" + "RIGHT JOIN\n" + "  (SELECT 4 AS bid)b ON (a.aid=b.bid)\n";
         String explainString = getSQLPlanOrErrorMsg(queryStr);
         Assert.assertFalse(explainString.contains("OUTPUT EXPRS:\n    3\n    4"));
@@ -2192,11 +2185,11 @@ public class QueryPlanTest extends TestWithFeService {
                 + " \"replication_num\" = \"1\"\n"
                 + ");");
 
-        String queryBaseTableStr = "explain select id,id2,orthogonal_bitmap_union_count(id3) from test.bitmap_tb t1 group by id,id2";
+        String queryBaseTableStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ id,id2,orthogonal_bitmap_union_count(id3) from test.bitmap_tb t1 group by id,id2";
         String explainString1 = getSQLPlanOrErrorMsg(queryBaseTableStr);
         Assert.assertTrue(explainString1.contains("PREAGGREGATION: ON"));
 
-        String queryTableStr = "explain select id,orthogonal_bitmap_union_count(id3) from test.bitmap_tb t1 group by id";
+        String queryTableStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ id,orthogonal_bitmap_union_count(id3) from test.bitmap_tb t1 group by id";
         String explainString2 = getSQLPlanOrErrorMsg(queryTableStr);
         Assert.assertTrue(explainString2.contains("PREAGGREGATION: ON"));
     }
@@ -2219,7 +2212,7 @@ public class QueryPlanTest extends TestWithFeService {
                 + "    \"in_memory\"=\"false\"\n"
                 + ");");
 
-        String queryBaseTableStr = "explain select dt, hll_union(pv) from test.test_hll group by dt";
+        String queryBaseTableStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ dt, hll_union(pv) from test.test_hll group by dt";
         String explainString = getSQLPlanOrErrorMsg(queryBaseTableStr);
         Assert.assertTrue(explainString.contains("PREAGGREGATION: ON"));
     }
@@ -2232,57 +2225,57 @@ public class QueryPlanTest extends TestWithFeService {
     @Test
     public void testRewriteOrToIn() throws Exception {
         connectContext.setDatabase("default_cluster:test");
-        String sql = "SELECT * from test1 where query_time = 1 or query_time = 2 or query_time in (3, 4)";
+        String sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ * from test1 where query_time = 1 or query_time = 2 or query_time in (3, 4)";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, "EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `query_time` IN (1, 2, 3, 4)\n"));
 
-        sql = "SELECT * from test1 where (query_time = 1 or query_time = 2) and query_time in (3, 4)";
+        sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ * from test1 where (query_time = 1 or query_time = 2) and query_time in (3, 4)";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, "EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `query_time` IN (1, 2) AND `query_time` IN (3, 4)\n"));
 
-        sql = "SELECT * from test1 where (query_time = 1 or query_time = 2 or scan_bytes = 2) and scan_bytes in (2, 3)";
+        sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ * from test1 where (query_time = 1 or query_time = 2 or scan_bytes = 2) and scan_bytes in (2, 3)";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, "EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `query_time` IN (1, 2) OR `scan_bytes` = 2 AND `scan_bytes` IN (2, 3)\n"));
 
-        sql = "SELECT * from test1 where (query_time = 1 or query_time = 2) and (scan_bytes = 2 or scan_bytes = 3)";
+        sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ * from test1 where (query_time = 1 or query_time = 2) and (scan_bytes = 2 or scan_bytes = 3)";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, "EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `query_time` IN (1, 2) AND `scan_bytes` IN (2, 3)\n"));
 
-        sql = "SELECT * from test1 where query_time = 1 or query_time = 2 or query_time = 3 or query_time = 1";
+        sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ * from test1 where query_time = 1 or query_time = 2 or query_time = 3 or query_time = 1";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, "EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `query_time` IN (1, 2, 3)\n"));
 
-        sql = "SELECT * from test1 where query_time = 1 or query_time = 2 or query_time in (3, 2)";
+        sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ * from test1 where query_time = 1 or query_time = 2 or query_time in (3, 2)";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, "EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `query_time` IN (1, 2, 3)\n"));
 
         connectContext.getSessionVariable().setRewriteOrToInPredicateThreshold(100);
-        sql = "SELECT * from test1 where query_time = 1 or query_time = 2 or query_time in (3, 4)";
+        sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ * from test1 where query_time = 1 or query_time = 2 or query_time in (3, 4)";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, "EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `query_time` = 1 OR `query_time` = 2 OR `query_time` IN (3, 4)\n"));
         connectContext.getSessionVariable().setRewriteOrToInPredicateThreshold(2);
 
-        sql = "SELECT * from test1 where (query_time = 1 or query_time = 2) and query_time in (3, 4)";
+        sql = "SELECT /*+ SET_VAR(enable_nereids_planner=false) */ * from test1 where (query_time = 1 or query_time = 2) and query_time in (3, 4)";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, "EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `query_time` IN (1, 2) AND `query_time` IN (3, 4)\n"));
 
         //test we can handle `!=` and `not in`
-        sql = "select * from test1 where (query_time = 1 or query_time = 2 or query_time!= 3 or query_time not in (5, 6))";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test1 where (query_time = 1 or query_time = 2 or query_time!= 3 or query_time not in (5, 6))";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, "EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `query_time` IN (1, 2) OR `query_time` != 3 OR `query_time` NOT IN (5, 6)\n"));
 
         //test we can handle merge 2 or more columns
-        sql = "select * from test1 where (query_time = 1 or query_time = 2 or scan_rows = 3 or scan_rows = 4)";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test1 where (query_time = 1 or query_time = 2 or scan_rows = 3 or scan_rows = 4)";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, "EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `query_time` IN (1, 2) OR `scan_rows` IN (3, 4)"));
 
         //merge in-pred or in-pred
-        sql = "select * from test1 where (query_time = 1 or query_time = 2 or query_time = 3 or query_time = 4)";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test1 where (query_time = 1 or query_time = 2 or query_time = 3 or query_time = 4)";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, "EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains("PREDICATES: `query_time` IN (1, 2, 3, 4)\n"));
 
         //rewrite recursively
-        sql = "select * from test1 "
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test1 "
                 + "where query_id=client_ip "
                 + "      and (stmt_id=1 or stmt_id=2 or stmt_id=3 "
                 + "           or (user='abc' and (state = 'a' or state='b' or state in ('c', 'd'))))"
@@ -2294,7 +2287,7 @@ public class QueryPlanTest extends TestWithFeService {
                         + "OR (`db` NOT IN ('x', 'y'))\n"));
 
         //ExtractCommonFactorsRule may generate more expr, test the rewriteOrToIn applied on generated exprs
-        sql = "select * from test1 where (stmt_id=1 and state='a') or (stmt_id=2 and state='b')";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from test1 where (stmt_id=1 and state='a') or (stmt_id=2 and state='b')";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(connectContext, "EXPLAIN " + sql);
         Assert.assertTrue(explainString.contains(
                 "PREDICATES: `state` IN ('a', 'b') AND `stmt_id` IN (1, 2) AND"
diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/RepeatNodeTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/RepeatNodeTest.java
index a819e13081..1687d0c1a6 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/RepeatNodeTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/RepeatNodeTest.java
@@ -48,7 +48,7 @@ public class RepeatNodeTest extends TestWithFeService {
 
     @Test
     public void testNormal() throws Exception {
-        String sql = "select id, name, sum(cost), grouping_id(id, name) from mycost group by cube(id, name);";
+        String sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ id, name, sum(cost), grouping_id(id, name) from mycost group by cube(id, name);";
         String explainString = getSQLPlanOrErrorMsg("explain " + sql);
         Assertions.assertTrue(explainString.contains("exprs: `id`, `name`, `cost`"));
         Assertions.assertTrue(explainString.contains(
@@ -57,21 +57,21 @@ public class RepeatNodeTest extends TestWithFeService {
 
     @Test
     public void testExpr() throws Exception {
-        String sql1 = "select if(c.id > 0, 1, 0) as id_, p.name, sum(c.cost) from mycost c "
+        String sql1 = "select /*+ SET_VAR(enable_nereids_planner=false) */ if(c.id > 0, 1, 0) as id_, p.name, sum(c.cost) from mycost c "
                 + "join mypeople p on c.id = p.id group by grouping sets((id_, name),());";
         String explainString1 = getSQLPlanOrErrorMsg("explain " + sql1);
         System.out.println(explainString1);
         Assertions.assertTrue(explainString1.contains(
                 "output slots: `if(`c`.`id` > 0, 1, 0)`, ``p`.`name``, ``c`.`cost``, ``GROUPING_ID``"));
 
-        String sql2 = "select (id + 1) id_, name, sum(cost) from mycost group by grouping sets((id_, name),());";
+        String sql2 = "select /*+ SET_VAR(enable_nereids_planner=false) */ (id + 1) id_, name, sum(cost) from mycost group by grouping sets((id_, name),());";
         String explainString2 = getSQLPlanOrErrorMsg("explain " + sql2);
         System.out.println(explainString2);
         Assertions.assertTrue(explainString2.contains("exprs: (`id` + 1), `name`, `cost`"));
         Assertions.assertTrue(
                 explainString2.contains(" output slots: `(`id` + 1)`, ``name``, ``cost``, ``GROUPING_ID``"));
 
-        String sql3 = "select 1 as id_, name, sum(cost) from mycost group by grouping sets((id_, name),());";
+        String sql3 = "select /*+ SET_VAR(enable_nereids_planner=false) */ 1 as id_, name, sum(cost) from mycost group by grouping sets((id_, name),());";
         String explainString3 = getSQLPlanOrErrorMsg("explain " + sql3);
         System.out.println(explainString3);
         Assertions.assertTrue(explainString3.contains("exprs: 1, `name`, `cost`"));
diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/StatisticDeriveTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/StatisticDeriveTest.java
index 6a0b678518..90283958bc 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/StatisticDeriveTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/StatisticDeriveTest.java
@@ -120,7 +120,7 @@ public class StatisticDeriveTest extends TestWithFeService {
     @Test
     public void testAnalyticEvalStatsDerive() throws Exception {
         // contain SortNode/ExchangeNode/OlapScanNode
-        String sql = "select dt, min(id) OVER (PARTITION BY dt ORDER BY id) from test.join1";
+        String sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ dt, min(id) OVER (PARTITION BY dt ORDER BY id) from test.join1";
         StmtExecutor stmtExecutor = new StmtExecutor(connectContext, sql);
         SessionVariable sessionVariable = connectContext.getSessionVariable();
         sessionVariable.setEnableJoinReorderBasedCost(true);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/TableFunctionPlanTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/TableFunctionPlanTest.java
index ce104c955b..9de505d693 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/TableFunctionPlanTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/TableFunctionPlanTest.java
@@ -72,7 +72,7 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void normalTableFunction() throws Exception {
-        String sql = "desc verbose select k1, e1 from db1.tbl1 lateral view explode_split(k2, \",\") tmp as e1;";
+        String sql = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ k1, e1 from db1.tbl1 lateral view explode_split(k2, \",\") tmp as e1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 1, "TABLE FUNCTION NODE"));
         Assert.assertTrue(
@@ -87,7 +87,7 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void withoutOutputExplodeColumn() throws Exception {
-        String sql = "desc verbose select k1 from db1.tbl1 lateral view explode_split(k2, \",\") tmp as e1;";
+        String sql = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 lateral view explode_split(k2, \",\") tmp as e1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(explainString.contains("OUTPUT EXPRS:\n    `k1`"));
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 1, "TABLE FUNCTION NODE"));
@@ -104,7 +104,7 @@ public class TableFunctionPlanTest {
     @Test
     public void groupByExplodeColumn() throws Exception {
         String sql =
-                "desc verbose select k1, e1, count(*) from db1.tbl1 lateral view explode_split(k2, \",\") tmp as e1 "
+                "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ k1, e1, count(*) from db1.tbl1 lateral view explode_split(k2, \",\") tmp as e1 "
                         + "group by k1, e1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         // group by node with k1, e1
@@ -126,7 +126,7 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void whereExplodeColumn() throws Exception {
-        String sql = "desc verbose select k1, e1 from db1.tbl1 lateral view explode_split(k2, \",\") tmp as e1 "
+        String sql = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ k1, e1 from db1.tbl1 lateral view explode_split(k2, \",\") tmp as e1 "
                 + "where e1='1'; ";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 1, "TABLE FUNCTION NODE"));
@@ -143,7 +143,7 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void whereNormalColumn() throws Exception {
-        String sql = "desc verbose select k1, e1 from db1.tbl1 lateral view explode_split(k2, \",\") tmp as e1 "
+        String sql = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ k1, e1 from db1.tbl1 lateral view explode_split(k2, \",\") tmp as e1 "
                 + "where k1=1; ";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 1, "TABLE FUNCTION NODE"));
@@ -162,7 +162,7 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void testMultiLateralView() throws Exception {
-        String sql = "desc verbose select k1, e1, e2 from db1.tbl1 lateral view explode_split(k2, \",\") tmp1 as e1"
+        String sql = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ k1, e1, e2 from db1.tbl1 lateral view explode_split(k2, \",\") tmp1 as e1"
                 + " lateral view explode_split(k2, \",\") tmp2 as e2;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 1, "TABLE FUNCTION NODE"));
@@ -186,11 +186,11 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void errorParam() throws Exception {
-        String sql = "explain select k1, e1 from db1.tbl1 lateral view explode_split(k2) tmp as e1;";
+        String sql = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1, e1 from db1.tbl1 lateral view explode_split(k2) tmp as e1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql);
         Assert.assertTrue(explainString.contains("No matching function with signature: explode_split(varchar(1))"));
 
-        sql = "explain select k1, e1 from db1.tbl1 lateral view explode_split(k1) tmp as e1;";
+        sql = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1, e1 from db1.tbl1 lateral view explode_split(k1) tmp as e1;";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql);
         Assert.assertTrue(explainString.contains("No matching function with signature: explode_split(int(11))"));
     }
@@ -200,7 +200,7 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void tableFunctionInWhere() throws Exception {
-        String sql = "explain select k1 from db1.tbl1 where explode_split(k2, \",\");";
+        String sql = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where explode_split(k2, \",\");";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql);
         Assert.assertTrue(
                 explainString.contains("No matching function with signature: explode_split(varchar(1), varchar(*))."));
@@ -214,7 +214,7 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void nonProjectSourceColumn() throws Exception {
-        String sql = "desc verbose select k1, e1 from db1.tbl1 lateral view explode_split(k2, \",\") tmp1 as e1;";
+        String sql = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ k1, e1 from db1.tbl1 lateral view explode_split(k2, \",\") tmp1 as e1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 1, "TABLE FUNCTION NODE"));
         Assert.assertTrue(
@@ -232,7 +232,7 @@ public class TableFunctionPlanTest {
     @Test
     public void projectLateralViewColumn() throws Exception {
         String sql =
-                "desc verbose select k1, sum(cast(e1 as int)) from db1.tbl1 lateral view explode_split(k2, \",\") tmp1 as e1"
+                "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ k1, sum(cast(e1 as int)) from db1.tbl1 lateral view explode_split(k2, \",\") tmp1 as e1"
                         + " group by k1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 1, "TABLE FUNCTION NODE"));
@@ -250,7 +250,7 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void nonProjectSourceColumnWhenInWhereClause() throws Exception {
-        String sql = "desc verbose select k1, e1 from db1.tbl1 lateral view explode_split(k2, \",\") tmp1 as e1"
+        String sql = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ k1, e1 from db1.tbl1 lateral view explode_split(k2, \",\") tmp1 as e1"
                 + " where k2=1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 1, "TABLE FUNCTION NODE"));
@@ -268,7 +268,7 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void projectSourceColumnWhenPredicateCannotPushedDown() throws Exception {
-        String sql = "desc verbose select a.k1, tmp1.e1 from db1.tbl1 a lateral view explode_split(k2, \",\") tmp1 as e1"
+        String sql = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ a.k1, tmp1.e1 from db1.tbl1 a lateral view explode_split(k2, \",\") tmp1 as e1"
                 + " right join db1.tbl1 b on a.k1=b.k1 where a.k2=1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 1, "TABLE FUNCTION NODE"));
@@ -286,7 +286,7 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void nonProjectLateralColumnAndSourceColumn() throws Exception {
-        String sql = "desc verbose select a.k1 from db1.tbl1 a lateral view explode_split(k2, \",\") tmp1 as e1"
+        String sql = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ a.k1 from db1.tbl1 a lateral view explode_split(k2, \",\") tmp1 as e1"
                 + " left join db1.tbl1 b on a.k1=b.k1 where a.k2=1";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 1, "TABLE FUNCTION NODE"));
@@ -309,13 +309,13 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void invalidColumnInExplodeSplit() throws Exception {
-        String sql = "explain select a.k1 from db1.tbl1 a lateral view explode_split(tbl2.k1, \",\") tmp1 as e1";
+        String sql = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ a.k1 from db1.tbl1 a lateral view explode_split(tbl2.k1, \",\") tmp1 as e1";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(explainString.contains("The column k1 in lateral view must come from the origin table"));
-        sql = "explain select a.k1 from db1.tbl1 a lateral view explode_split(k100, \",\") tmp1 as e1";
+        sql = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ a.k1 from db1.tbl1 a lateral view explode_split(k100, \",\") tmp1 as e1";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(explainString.contains("Unknown column 'k100'"));
-        sql = "explain select a.k1 from db1.tbl1 a lateral view explode_split(db2.tbl1.k2, \",\") tmp1 as e1";
+        sql = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ a.k1 from db1.tbl1 a lateral view explode_split(db2.tbl1.k2, \",\") tmp1 as e1";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(explainString.contains("The column k2 in lateral view must come from the origin table"));
     }
@@ -328,10 +328,10 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void invalidFunctionInLateralView() throws Exception {
-        String sql = "explain select a.k1 from db1.tbl1 a lateral view explode_split(sum(k1), \",\") tmp1 as e1";
+        String sql = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ a.k1 from db1.tbl1 a lateral view explode_split(sum(k1), \",\") tmp1 as e1";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(explainString.contains("Agg function are not allowed in lateral view."));
-        sql = "explain select a.k1 from db1.tbl1 a lateral view explode_split(k1=(select k1 from db1.tbl1), \",\") tmp1 as e1";
+        sql = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ a.k1 from db1.tbl1 a lateral view explode_split(k1=(select k1 from db1.tbl1), \",\") tmp1 as e1";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(explainString.contains("Subquery is not allowed in lateral view"));
     }
@@ -343,7 +343,7 @@ public class TableFunctionPlanTest {
     @Test
     public void scalarFunctionInLateralView() throws Exception {
         String sql =
-                "desc verbose select a.k1 from db1.tbl1 a lateral view explode_split(concat(k2, ',' , k3), \",\") tmp1 as e1 ";
+                "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ a.k1 from db1.tbl1 a lateral view explode_split(concat(k2, ',' , k3), \",\") tmp1 as e1 ";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 1, "TABLE FUNCTION NODE"));
         Assert.assertTrue(
@@ -361,7 +361,7 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void lateralViewColumnOfReduceTuple() throws Exception {
-        String sql = "desc verbose select e1 from (select k2 as c1 from db1.tbl1) a lateral view explode_split(c1, \",\") tmp1 as e1 ";
+        String sql = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ e1 from (select k2 as c1 from db1.tbl1) a lateral view explode_split(c1, \",\") tmp1 as e1 ";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 1, "TABLE FUNCTION NODE"));
         Assert.assertTrue(explainString.contains("table function: explode_split(`k2`, ',')"));
@@ -377,7 +377,7 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void aggInlineView() throws Exception {
-        String sql = "desc verbose select e1 from (select k2 as c1 from db1.tbl1 group by c1) a lateral view explode_split(c1, \",\") tmp1 as e1 ";
+        String sql = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ e1 from (select k2 as c1 from db1.tbl1 group by c1) a lateral view explode_split(c1, \",\") tmp1 as e1 ";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 2, "TABLE FUNCTION NODE"));
         Assert.assertTrue(explainString.contains("table function: explode_split( `k2`, ',')"));
@@ -393,7 +393,7 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void aggColumnInlineViewInTB() throws Exception {
-        String sql = "desc verbose select c1, e1 from (select k1 as c1, min(k2) as c2 from db1.tbl1 group by c1) a "
+        String sql = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ c1, e1 from (select k1 as c1, min(k2) as c2 from db1.tbl1 group by c1) a "
                 + "lateral view explode_split(c2, \",\") tmp1 as e1";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(UtFrameUtils.checkPlanResultContainsNode(explainString, 2, "TABLE FUNCTION NODE"));
@@ -421,7 +421,7 @@ public class TableFunctionPlanTest {
 
     @Test
     public void testExplodeBitmap() throws Exception {
-        String sql = "desc select k1, e1 from db1.tbl2 lateral view explode_bitmap(v1) tmp1 as e1 ";
+        String sql = "desc select /*+ SET_VAR(enable_nereids_planner=false) */ k1, e1 from db1.tbl2 lateral view explode_bitmap(v1) tmp1 as e1 ";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         System.out.println(explainString);
         Assert.assertTrue(explainString.contains("table function: explode_bitmap(`default_cluster:db1`.`tbl2`.`v1`)"));
@@ -430,19 +430,19 @@ public class TableFunctionPlanTest {
 
     @Test
     public void testExplodeJsonArray() throws Exception {
-        String sql = "desc select k1, e1 from db1.tbl2 lateral view explode_json_array_int('[1,2,3]') tmp1 as e1 ";
+        String sql = "desc select /*+ SET_VAR(enable_nereids_planner=false) */ k1, e1 from db1.tbl2 lateral view explode_json_array_int('[1,2,3]') tmp1 as e1 ";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         System.out.println(explainString);
         Assert.assertTrue(explainString.contains("table function: explode_json_array_int('[1,2,3]')"));
         Assert.assertTrue(explainString.contains("output slot id: 0 1"));
 
-        sql = "desc select k1, e1 from db1.tbl2 lateral view explode_json_array_string('[\"a\",\"b\",\"c\"]') tmp1 as e1 ";
+        sql = "desc select /*+ SET_VAR(enable_nereids_planner=false) */ k1, e1 from db1.tbl2 lateral view explode_json_array_string('[\"a\",\"b\",\"c\"]') tmp1 as e1 ";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         System.out.println(explainString);
         Assert.assertTrue(explainString.contains("table function: explode_json_array_string('[\"a\",\"b\",\"c\"]')"));
         Assert.assertTrue(explainString.contains("output slot id: 0 1"));
 
-        sql = "desc select k1, e1 from db1.tbl2 lateral view explode_json_array_double('[1.1, 2.2, 3.3]') tmp1 as e1 ";
+        sql = "desc select /*+ SET_VAR(enable_nereids_planner=false) */ k1, e1 from db1.tbl2 lateral view explode_json_array_double('[1.1, 2.2, 3.3]') tmp1 as e1 ";
         explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         System.out.println(explainString);
         Assert.assertTrue(explainString.contains("table function: explode_json_array_double('[1.1, 2.2, 3.3]')"));
@@ -456,7 +456,7 @@ public class TableFunctionPlanTest {
      */
     @Test
     public void aggColumnForbidden() throws Exception {
-        String sql = "desc verbose select min(c1) from (select k1 as c1, min(k2) as c2 from db1.tbl1 group by c1) a "
+        String sql = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ min(c1) from (select k1 as c1, min(k2) as c2 from db1.tbl1 group by c1) a "
                 + "lateral view explode_split(c2, \",\") tmp1 as e1 order by min(c1)";
         String errorMsg = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(errorMsg.toLowerCase().contains("lateral view as a inline view"));
@@ -469,7 +469,7 @@ public class TableFunctionPlanTest {
     */
     @Test
     public void aggColumnInOuterQuery() throws Exception {
-        String sql = "desc verbose select min(c1) from (select c1 from"
+        String sql = "desc verbose select /*+ SET_VAR(enable_nereids_planner=false) */ min(c1) from (select c1 from"
                 + " (select k1 as c1, min(k2) as c2 from db1.tbl1 group by c1) a "
                 + "lateral view explode_split(c2, \",\") tmp1 as e1) tmp2";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
@@ -483,12 +483,12 @@ public class TableFunctionPlanTest {
     @Test
     public void testLateralViewWithView() throws Exception {
         // test 1
-        String createViewStr = "create view db1.v1 (k1,e1) as select k1,e1"
+        String createViewStr = "create view db1.v1 (k1,e1) as select /*+ SET_VAR(enable_nereids_planner=false) */ k1,e1"
                 + " from db1.table_for_view lateral view explode_split(k3,',') tmp as e1;";
         CreateViewStmt createViewStmt = (CreateViewStmt) UtFrameUtils.parseAndAnalyzeStmt(createViewStr, ctx);
         Env.getCurrentEnv().createView(createViewStmt);
 
-        String sql = "select * from db1.v1;";
+        String sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from db1.v1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(explainString.contains("output slot id: 1 2"));
         // query again to see if it has error
@@ -498,7 +498,7 @@ public class TableFunctionPlanTest {
 
     @Test
     public void testLateralViewWithWhere() throws Exception {
-        String sql = "select k1,e1 from db1.table_for_view lateral view explode_split(k3,',') tmp as e1"
+        String sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1,e1 from db1.table_for_view lateral view explode_split(k3,',') tmp as e1"
                 + " where k1 in (select k2 from db1.table_for_view);";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(explainString.contains("join op: LEFT SEMI JOIN(BROADCAST)"));
@@ -509,7 +509,7 @@ public class TableFunctionPlanTest {
     @Test
     public void testLateralViewWithCTE() throws Exception {
         String sql = "with tmp as (select k1,e1 from db1.table_for_view lateral view explode_split(k3,',') tmp2 as e1)"
-                + " select * from tmp;";
+                + " select /*+ SET_VAR(enable_nereids_planner=false) */ * from tmp;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertTrue(explainString.contains("table function:"
                 + " explode_split(`default_cluster:db1`.`table_for_view`.`k3`, ',') "));
@@ -518,7 +518,7 @@ public class TableFunctionPlanTest {
     @Test
     public void testLateralViewWithCTEBug() throws Exception {
         String sql = "with tmp as (select * from db1.table_for_view where k2=1)"
-                + " select k1,e1 from tmp lateral view explode_split(k3,',') tmp2 as e1;";
+                + " select /*+ SET_VAR(enable_nereids_planner=false) */ k1,e1 from tmp lateral view explode_split(k3,',') tmp2 as e1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertFalse(explainString.contains("Unknown column 'e1' in 'table list'"));
     }
@@ -529,7 +529,7 @@ public class TableFunctionPlanTest {
         String createViewStr = "create view db1.v2 (k1,k3) as select k1,k3 from db1.table_for_view;";
         CreateViewStmt createViewStmt = (CreateViewStmt) UtFrameUtils.parseAndAnalyzeStmt(createViewStr, ctx);
         Env.getCurrentEnv().createView(createViewStmt);
-        String sql = "select k1,e1 from db1.v2 lateral view explode_split(k3,',') tmp as e1;";
+        String sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1,e1 from db1.v2 lateral view explode_split(k3,',') tmp as e1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertFalse(explainString.contains("Unknown column 'e1' in 'table list'"));
     }
@@ -540,7 +540,7 @@ public class TableFunctionPlanTest {
     @Test
     public void testLateralViewWithInlineViewBug() throws Exception {
         String sql = "with d as (select k1+k1 as k1 from db1.table_for_view ) "
-                + "select k1 from d lateral view explode_split(k1,',') tmp as e1;";
+                + "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from d lateral view explode_split(k1,',') tmp as e1;";
         String explainString = UtFrameUtils.getSQLPlanOrErrorMsg(ctx, sql, true);
         Assert.assertFalse(explainString.contains("Unexpected exception: org.apache.doris.analysis.FunctionCallExpr"
                 + " cannot be cast to org.apache.doris.analysis.SlotRef"));
diff --git a/fe/fe-core/src/test/java/org/apache/doris/policy/PolicyTest.java b/fe/fe-core/src/test/java/org/apache/doris/policy/PolicyTest.java
index a6a4dbbb47..2415e0fb3c 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/policy/PolicyTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/policy/PolicyTest.java
@@ -98,7 +98,7 @@ public class PolicyTest extends TestWithFeService {
     @Test
     public void testNormalSql() throws Exception {
         createPolicy("CREATE ROW POLICY test_row_policy ON test.table1 AS PERMISSIVE TO test_policy USING (k1 = 1)");
-        String queryStr = "EXPLAIN select * from test.table1";
+        String queryStr = "EXPLAIN select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.table1";
         String explainString = getSQLPlanOrErrorMsg(queryStr);
         Assertions.assertTrue(explainString.contains("`k1` = 1"));
         dropPolicy("DROP ROW POLICY test_row_policy ON test.table1 FOR test_policy");
@@ -107,10 +107,10 @@ public class PolicyTest extends TestWithFeService {
     @Test
     public void testAliasSql() throws Exception {
         createPolicy("CREATE ROW POLICY test_row_policy ON test.table1 AS PERMISSIVE TO test_policy USING (k1 = 1)");
-        String queryStr = "EXPLAIN select * from test.table1 a";
+        String queryStr = "EXPLAIN select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.table1 a";
         String explainString = getSQLPlanOrErrorMsg(queryStr);
         Assertions.assertTrue(explainString.contains("`a`.`k1` = 1"));
-        queryStr = "EXPLAIN select * from test.table1 b";
+        queryStr = "EXPLAIN select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.table1 b";
         explainString = getSQLPlanOrErrorMsg(queryStr);
         Assertions.assertTrue(explainString.contains("`b`.`k1` = 1"));
         dropPolicy("DROP ROW POLICY test_row_policy ON test.table1 FOR test_policy");
@@ -134,7 +134,7 @@ public class PolicyTest extends TestWithFeService {
     @Test
     public void testUnionSql() throws Exception {
         createPolicy("CREATE ROW POLICY test_row_policy ON test.table1 AS PERMISSIVE TO test_policy USING (k1 = 1)");
-        String queryStr = "EXPLAIN select * from test.table1 union all select * from test.table1";
+        String queryStr = "EXPLAIN select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.table1 union all select * from test.table1";
         String explainString = getSQLPlanOrErrorMsg(queryStr);
         Assertions.assertTrue(explainString.contains("`k1` = 1"));
         dropPolicy("DROP ROW POLICY test_row_policy ON test.table1 FOR test_policy");
@@ -143,7 +143,7 @@ public class PolicyTest extends TestWithFeService {
     @Test
     public void testInsertSelectSql() throws Exception {
         createPolicy("CREATE ROW POLICY test_row_policy ON test.table1 AS PERMISSIVE TO test_policy USING (k1 = 1)");
-        String queryStr = "EXPLAIN insert into test.table1 select * from test.table1";
+        String queryStr = "EXPLAIN insert into test.table1 select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.table1";
         String explainString = getSQLPlanOrErrorMsg(queryStr);
         Assertions.assertTrue(explainString.contains("`k1` = 1"));
         dropPolicy("DROP ROW POLICY test_row_policy ON test.table1 FOR test_policy");
@@ -197,7 +197,7 @@ public class PolicyTest extends TestWithFeService {
         createPolicy("CREATE ROW POLICY test_row_policy2 ON test.table1 AS RESTRICTIVE TO test_policy USING (k2 = 1)");
         createPolicy("CREATE ROW POLICY test_row_policy3 ON test.table1 AS PERMISSIVE TO test_policy USING (k2 = 2)");
         createPolicy("CREATE ROW POLICY test_row_policy4 ON test.table1 AS PERMISSIVE TO test_policy USING (k2 = 1)");
-        String queryStr = "EXPLAIN select * from test.table1";
+        String queryStr = "EXPLAIN select /*+ SET_VAR(enable_nereids_planner=false) */ * from test.table1";
         String explainString = getSQLPlanOrErrorMsg(queryStr);
         Assertions.assertTrue(explainString.contains("`k1` = 1 AND `k2` = 1 AND `k2` = 2 OR `k2` = 1"));
         dropPolicy("DROP ROW POLICY test_row_policy1 ON test.table1");
@@ -210,13 +210,13 @@ public class PolicyTest extends TestWithFeService {
     public void testComplexSql() throws Exception {
         createPolicy("CREATE ROW POLICY test_row_policy1 ON test.table1 AS RESTRICTIVE TO test_policy USING (k1 = 1)");
         createPolicy("CREATE ROW POLICY test_row_policy2 ON test.table1 AS RESTRICTIVE TO test_policy USING (k2 = 1)");
-        String joinSql = "select * from table1 join table2 on table1.k1=table2.k1";
+        String joinSql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from table1 join table2 on table1.k1=table2.k1";
         Assertions.assertTrue(getSQLPlanOrErrorMsg(joinSql).contains("PREDICATES: `k1` = 1 AND `k2` = 1"));
-        String unionSql = "select * from table1 union select * from table2";
+        String unionSql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from table1 union select * from table2";
         Assertions.assertTrue(getSQLPlanOrErrorMsg(unionSql).contains("PREDICATES: `k1` = 1 AND `k2` = 1"));
-        String subQuerySql = "select * from table2 where k1 in (select k1 from table1)";
+        String subQuerySql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from table2 where k1 in (select k1 from table1)";
         Assertions.assertTrue(getSQLPlanOrErrorMsg(subQuerySql).contains("PREDICATES: `k1` = 1 AND `k2` = 1"));
-        String aliasSql = "select * from table1 t1 join table2 t2 on t1.k1=t2.k1";
+        String aliasSql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from table1 t1 join table2 t2 on t1.k1=t2.k1";
         Assertions.assertTrue(getSQLPlanOrErrorMsg(aliasSql).contains("PREDICATES: `t1`.`k1` = 1 AND `t1`.`k2` = 1"));
         dropPolicy("DROP ROW POLICY test_row_policy1 ON test.table1");
         dropPolicy("DROP ROW POLICY test_row_policy2 ON test.table1");
diff --git a/fe/fe-core/src/test/java/org/apache/doris/rewrite/ExtractCommonFactorsRuleFunctionTest.java b/fe/fe-core/src/test/java/org/apache/doris/rewrite/ExtractCommonFactorsRuleFunctionTest.java
index 5458f30043..19e48c32a5 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/rewrite/ExtractCommonFactorsRuleFunctionTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/rewrite/ExtractCommonFactorsRuleFunctionTest.java
@@ -90,7 +90,7 @@ public class ExtractCommonFactorsRuleFunctionTest {
 
     @Test
     public void testCommonFactors() throws Exception {
-        String query = "select * from tb1, tb2 where (tb1.k1=tb2.k1 and tb1.k2 =1) or (tb1.k1=tb2.k1 and tb2.k2=1)";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1, tb2 where (tb1.k1=tb2.k1 and tb1.k2 =1) or (tb1.k1=tb2.k1 and tb2.k2=1)";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("HASH JOIN"));
         Assert.assertEquals(1, StringUtils.countMatches(planString, "`tb1`.`k1` = `tb2`.`k1`"));
@@ -98,14 +98,14 @@ public class ExtractCommonFactorsRuleFunctionTest {
 
     @Test
     public void testWideCommonFactorsWithOrPredicate() throws Exception {
-        String query = "select * from tb1 where tb1.k1 > 1000 or tb1.k1 < 200 or tb1.k1 = 300";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 where tb1.k1 > 1000 or tb1.k1 < 200 or tb1.k1 = 300";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("PREDICATES: `tb1`.`k1` = 300 OR `tb1`.`k1` > 1000 OR `tb1`.`k1` < 200"));
     }
 
     @Test
     public void testWideCommonFactorsWithEqualPredicate() throws Exception {
-        String query = "select * from tb1, tb2 where (tb1.k1=1 and tb2.k1=1) or (tb1.k1 =2 and tb2.k1=2)";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1, tb2 where (tb1.k1=1 and tb2.k1=1) or (tb1.k1 =2 and tb2.k1=2)";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb1`.`k1` IN (1, 2)"));
         Assert.assertTrue(planString.contains("`tb2`.`k1` IN (1, 2)"));
@@ -122,7 +122,7 @@ public class ExtractCommonFactorsRuleFunctionTest {
 
     @Test
     public void testWideCommonFactorsWithMergeRangePredicate() throws Exception {
-        String query = "select * from tb1, tb2 where (tb1.k1 between 1 and 3 and tb2.k1=1) or (tb1.k1 <2 and tb2.k2=2)";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1, tb2 where (tb1.k1 between 1 and 3 and tb2.k1=1) or (tb1.k1 <2 and tb2.k2=2)";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb1`.`k1` <= 3"));
         Assert.assertTrue(planString.contains("NESTED LOOP JOIN"));
@@ -138,7 +138,7 @@ public class ExtractCommonFactorsRuleFunctionTest {
 
     @Test
     public void testWideCommonFactorsWithDuplicateRangePredicate() throws Exception {
-        String query = "select * from tb1, tb2 where (tb1.k1 >1 and tb1.k1 >1 and tb1.k1 <5 and tb2.k1=1) "
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1, tb2 where (tb1.k1 >1 and tb1.k1 >1 and tb1.k1 <5 and tb2.k1=1) "
                 + "or (tb1.k1 <2 and tb2.k2=2)";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb1`.`k1` < 5"));
@@ -147,7 +147,7 @@ public class ExtractCommonFactorsRuleFunctionTest {
 
     @Test
     public void testWideCommonFactorsWithInPredicate() throws Exception {
-        String query = "select * from tb1, tb2 where (tb1.k1 in (1) and tb2.k1 in(1)) "
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1, tb2 where (tb1.k1 in (1) and tb2.k1 in(1)) "
                 + "or (tb1.k1 in(2) and tb2.k1 in(2))";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb1`.`k1` IN (1, 2)"));
@@ -157,7 +157,7 @@ public class ExtractCommonFactorsRuleFunctionTest {
 
     @Test
     public void testWideCommonFactorsWithDuplicateInPredicate() throws Exception {
-        String query = "select * from tb1, tb2 where (tb1.k1 in (1,2) and tb2.k1 in(1,2)) "
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1, tb2 where (tb1.k1 in (1,2) and tb2.k1 in(1,2)) "
                 + "or (tb1.k1 in(3) and tb2.k1 in(2))";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb1`.`k1` IN (1, 2, 3)"));
@@ -167,7 +167,7 @@ public class ExtractCommonFactorsRuleFunctionTest {
 
     @Test
     public void testWideCommonFactorsWithRangeAndIn() throws Exception {
-        String query = "select * from tb1, tb2 where (tb1.k1 between 1 and 3 and tb2.k1 in(1,2)) "
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1, tb2 where (tb1.k1 between 1 and 3 and tb2.k1 in(1,2)) "
                 + "or (tb1.k1 between 2 and 4 and tb2.k1 in(3))";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb1`.`k1` >= 1"));
@@ -178,7 +178,7 @@ public class ExtractCommonFactorsRuleFunctionTest {
 
     @Test
     public void testWideCommonFactorsAndCommonFactors() throws Exception {
-        String query = "select * from tb1, tb2 where (tb1.k1 between 1 and 3 and tb1.k1=tb2.k1) "
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1, tb2 where (tb1.k1 between 1 and 3 and tb1.k1=tb2.k1) "
                 + "or (tb1.k1=tb2.k1 and tb1.k1 between 2 and 4)";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb1`.`k1` >= 1"));
@@ -237,7 +237,7 @@ public class ExtractCommonFactorsRuleFunctionTest {
                 + "\"storage_format\" = \"V2\"\n"
                 + ");";
         dorisAssert.withTable(createTableSQL);
-        String query = "select sum(l_extendedprice* (1 - l_discount)) as revenue "
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ sum(l_extendedprice* (1 - l_discount)) as revenue "
                 + "from lineitem, part "
                 + "where ( p_partkey = l_partkey and p_brand = 'Brand#11' "
                 + "and p_container in ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') "
@@ -271,27 +271,27 @@ public class ExtractCommonFactorsRuleFunctionTest {
     @Test
     public void testRewriteLikePredicate() throws Exception {
         // tinyint
-        String sql = "select * from tb3 where k1 like '%4%';";
+        String sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb3 where k1 like '%4%';";
         LOG.info("EXPLAIN:{}", dorisAssert.query(sql).explainQuery());
         dorisAssert.query(sql).explainContains("`k1` LIKE '%4%'");
 
         // smallint
-        sql = "select * from tb3 where k2 like '%4%';";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb3 where k2 like '%4%';";
         LOG.info("EXPLAIN:{}", dorisAssert.query(sql).explainQuery());
         dorisAssert.query(sql).explainContains("`k2` LIKE '%4%'");
 
         // int
-        sql = "select * from tb3 where k3 like '%4%';";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb3 where k3 like '%4%';";
         LOG.info("EXPLAIN:{}", dorisAssert.query(sql).explainQuery());
         dorisAssert.query(sql).explainContains("`k3` LIKE '%4%'");
 
         // bigint
-        sql = "select * from tb3 where k4 like '%4%';";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb3 where k4 like '%4%';";
         LOG.info("EXPLAIN:{}", dorisAssert.query(sql).explainQuery());
         dorisAssert.query(sql).explainContains("`k4` LIKE '%4%'");
 
         // largeint
-        sql = "select * from tb3 where k5 like '%4%';";
+        sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb3 where k5 like '%4%';";
         LOG.info("EXPLAIN:{}", dorisAssert.query(sql).explainQuery());
         dorisAssert.query(sql).explainContains("`k5` LIKE '%4%'");
     }
@@ -327,7 +327,7 @@ public class ExtractCommonFactorsRuleFunctionTest {
 
     @Test
     public void testExtractCommonFactorsWithOnClause() throws Exception {
-        String sql = "select * from\n"
+        String sql = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from\n"
                 + "db1.nation n1 join db1.nation n2\n"
                 + "on (n1.n_name = 'FRANCE' and n2.n_name = 'GERMANY')\n"
                 + "or (n1.n_name = 'GERMANY' and n2.n_name = 'FRANCE')";
diff --git a/fe/fe-core/src/test/java/org/apache/doris/rewrite/InferFiltersRuleTest.java b/fe/fe-core/src/test/java/org/apache/doris/rewrite/InferFiltersRuleTest.java
index 2866c78e11..12c07dbfe1 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/rewrite/InferFiltersRuleTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/rewrite/InferFiltersRuleTest.java
@@ -82,7 +82,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1, tb2 where tb1.k1 = 1 and tb1.k1 = tb2.k1";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1, tb2 where tb1.k1 = 1 and tb1.k1 = tb2.k1";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb2`.`k1` = 1"));
     }
@@ -102,7 +102,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 inner join tb2 inner join tb3"
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 inner join tb2 inner join tb3"
                 + " where tb1.k1 = tb2.k1 and tb2.k1 = tb3.k1 and tb3.k1 = 1";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb2`.`k1` = 1"));
@@ -114,7 +114,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 left semi join tb2 on tb1.k1 = tb2.k1 and tb2.k1 = 1";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 left semi join tb2 on tb1.k1 = tb2.k1 and tb2.k1 = 1";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb1`.`k1` = 1"));
     }
@@ -124,7 +124,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 left semi join tb2 on tb1.k1 = tb2.k1 and tb1.k1 = 1";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 left semi join tb2 on tb1.k1 = tb2.k1 and tb1.k1 = 1";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb2`.`k1` = 1"));
     }
@@ -196,7 +196,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 inner join tb2 on tb1.k1 = tb2.k1 right outer join tb3 on tb2.k1 = tb3.k1"
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 inner join tb2 on tb1.k1 = tb2.k1 right outer join tb3 on tb2.k1 = tb3.k1"
                 + " where tb1.k1 = tb2.k1 and tb2.k1 = tb3.k1 and tb2.k1 = 1";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb1`.`k1` = 1"));
@@ -208,7 +208,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 inner join tb2 on tb1.k1 = tb2.k1 and tb1.k1 between 1 and 2";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 inner join tb2 on tb1.k1 = tb2.k1 and tb1.k1 between 1 and 2";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb2`.`k1` >= 1"));
         Assert.assertTrue(planString.contains("`tb2`.`k1` <= 2"));
@@ -219,7 +219,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 inner join tb2 on tb1.k1 = tb2.k1 and tb1.k1 in (2)";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 inner join tb2 on tb1.k1 = tb2.k1 and tb1.k1 in (2)";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb2`.`k1` IN (2)"));
     }
@@ -229,7 +229,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1, tb2, tb3 where tb1.k1 = tb2.k1 and tb2.k1 = tb3.k1 and tb3.k1 = 1";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1, tb2, tb3 where tb1.k1 = tb2.k1 and tb2.k1 = tb3.k1 and tb3.k1 = 1";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb2`.`k1` = 1"));
         Assert.assertTrue(planString.contains("`tb1`.`k1` = 1"));
@@ -240,7 +240,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 inner join tb2 inner join tb3"
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 inner join tb2 inner join tb3"
                 + " where tb1.k1 = tb2.k1 and tb2.k1 = tb3.k1 and tb3.k1 = 1";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb2`.`k1` = 1"));
@@ -252,7 +252,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 inner join tb2 left outer join tb3 on tb3.k1 = tb2.k1"
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 inner join tb2 left outer join tb3 on tb3.k1 = tb2.k1"
                 + " where tb1.k1 = tb2.k1 and tb2.k1 = tb3.k1 and tb3.k1 = 1";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb2`.`k1` = 1"));
@@ -264,7 +264,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 inner join tb2 left outer join tb3 on tb3.k1 = tb2.k1"
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 inner join tb2 left outer join tb3 on tb3.k1 = tb2.k1"
                 + " where tb1.k1 = tb2.k1 and tb2.k1 = tb3.k1 and tb2.k1 = 1";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb1`.`k1` = 1"));
@@ -276,7 +276,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 inner join tb2 on tb1.k1 = tb2.k1 right outer join tb3 on tb2.k1 = tb3.k1"
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 inner join tb2 on tb1.k1 = tb2.k1 right outer join tb3 on tb2.k1 = tb3.k1"
                 + " where tb1.k1 = tb2.k1 and tb2.k1 = tb3.k1 and tb2.k1 = 1";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb1`.`k1` = 1"));
@@ -300,7 +300,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 inner join tb2 inner join tb3"
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 inner join tb2 inner join tb3"
                 + " where tb1.k1 = tb3.k1 and tb2.k1 = tb3.k1 and tb1.k1 is not null";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb3`.`k1` IS NOT NULL"));
@@ -312,7 +312,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 inner join tb2 where tb1.k1 = tb2.k1 and tb1.k1 in (2)";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 inner join tb2 where tb1.k1 = tb2.k1 and tb1.k1 in (2)";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb2`.`k1` IN (2)"));
     }
@@ -322,7 +322,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 inner join tb2 where tb1.k1 = tb2.k1 and tb1.k1 between 1 and 2";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 inner join tb2 where tb1.k1 = tb2.k1 and tb1.k1 between 1 and 2";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb2`.`k1` >= 1"));
         Assert.assertTrue(planString.contains("`tb2`.`k1` <= 2"));
@@ -333,7 +333,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 left join tb2 on tb1.k1 = tb2.k1 where tb2.k1 = 1";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 left join tb2 on tb1.k1 = tb2.k1 where tb2.k1 = 1";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb1`.`k1` = 1"));
     }
@@ -343,7 +343,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 inner join tb2 on tb1.k1 = tb2.k1 where tb2.k1 = 1";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 inner join tb2 on tb1.k1 = tb2.k1 where tb2.k1 = 1";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb1`.`k1` = 1"));
     }
@@ -353,7 +353,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 left join tb2 on tb1.k1 = tb2.k1 where tb1.k1 = 1";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 left join tb2 on tb1.k1 = tb2.k1 where tb1.k1 = 1";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb2`.`k1` = 1"));
     }
@@ -363,7 +363,7 @@ public class InferFiltersRuleTest {
         SessionVariable sessionVariable = dorisAssert.getSessionVariable();
         sessionVariable.setEnableInferPredicate(true);
         Assert.assertTrue(sessionVariable.isEnableInferPredicate());
-        String query = "select * from tb1 inner join tb2 on tb1.k1 = tb2.k1 where tb1.k1 = 1";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from tb1 inner join tb2 on tb1.k1 = tb2.k1 where tb1.k1 = 1";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`tb2`.`k1` = 1"));
     }
diff --git a/fe/fe-core/src/test/java/org/apache/doris/rewrite/RewriteBinaryPredicatesRuleTest.java b/fe/fe-core/src/test/java/org/apache/doris/rewrite/RewriteBinaryPredicatesRuleTest.java
index 7ce654d046..a169843f60 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/rewrite/RewriteBinaryPredicatesRuleTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/rewrite/RewriteBinaryPredicatesRuleTest.java
@@ -120,7 +120,7 @@ public class RewriteBinaryPredicatesRuleTest extends TestWithFeService {
     }
 
     private Expr getExpr(Operator operator, String queryLiteral) throws Exception {
-        String queryFormat = "select * from table1 where id %s %s;";
+        String queryFormat = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from table1 where id %s %s;";
         String query = String.format(queryFormat, operator.toString(), queryLiteral);
         StmtExecutor executor1 = getSqlStmtExecutor(query);
         Assertions.assertNotNull(executor1);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/rewrite/RewriteDateLiteralRuleTest.java b/fe/fe-core/src/test/java/org/apache/doris/rewrite/RewriteDateLiteralRuleTest.java
index e8e550dd2d..bb04adb9e5 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/rewrite/RewriteDateLiteralRuleTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/rewrite/RewriteDateLiteralRuleTest.java
@@ -50,143 +50,143 @@ public class RewriteDateLiteralRuleTest {
     }
 
     public void testWithIntFormatDate() throws Exception {
-        String query = "select * from " + DB_NAME + ".tb1 where k1 > 20210301";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from " + DB_NAME + ".tb1 where k1 > 20210301";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 00:00:00'"));
-        query = "select k1 > 20210301 from " + DB_NAME + ".tb1";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > 20210301 from " + DB_NAME + ".tb1";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 00:00:00'"));
-        query = "select k1 > 20210301223344 from " + DB_NAME + ".tb1";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > 20210301223344 from " + DB_NAME + ".tb1";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 22:33:44'"));
     }
 
     public void testWithIntFormatDateV2() throws Exception {
-        String query = "select * from " + DB_NAME + ".tb2 where k1 > 20210301";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from " + DB_NAME + ".tb2 where k1 > 20210301";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 00:00:00'"));
-        query = "select k1 > 20210301 from " + DB_NAME + ".tb2";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > 20210301 from " + DB_NAME + ".tb2";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 00:00:00'"));
-        query = "select k1 > 20210301223344 from " + DB_NAME + ".tb2";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > 20210301223344 from " + DB_NAME + ".tb2";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 22:33:44'"));
     }
 
     public void testWithStringFormatDate() throws Exception {
-        String query = "select * from " + DB_NAME + ".tb1 where k1 > '2021030112334455'";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from " + DB_NAME + ".tb1 where k1 > '2021030112334455'";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 12:33:44'"));
 
-        query = "select k1 > '20210301' from " + DB_NAME + ".tb1";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '20210301' from " + DB_NAME + ".tb1";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 00:00:00'"));
 
-        query = "select k1 > '20210301233234.34' from " + DB_NAME + ".tb1";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '20210301233234.34' from " + DB_NAME + ".tb1";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 23:32:34'"));
 
-        query = "select * from " + DB_NAME + ".tb1 where k1 > '2021-03-01'";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from " + DB_NAME + ".tb1 where k1 > '2021-03-01'";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 00:00:00'"));
 
-        query = "select k1 > '2021-03-01 11:22:33' from " + DB_NAME + ".tb1";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '2021-03-01 11:22:33' from " + DB_NAME + ".tb1";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 11:22:33'"));
 
-        query = "select k1 > '2021-03-01  16:22:33' from " + DB_NAME + ".tb1";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '2021-03-01  16:22:33' from " + DB_NAME + ".tb1";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 16:22:33'"));
 
-        query = "select k1 > '2021-03-01 11:22' from " + DB_NAME + ".tb1";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '2021-03-01 11:22' from " + DB_NAME + ".tb1";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 11:22:00'"));
 
-        query = "select k1 > '20210301T221133' from " + DB_NAME + ".tb1";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '20210301T221133' from " + DB_NAME + ".tb1";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 22:11:33'"));
 
-        query = "select k1 > '2021-03-01dd 11:22' from " + DB_NAME + ".tb1";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '2021-03-01dd 11:22' from " + DB_NAME + ".tb1";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 00:00:00'"));
 
-        query = "select k1 > '80-03-01 11:22' from " + DB_NAME + ".tb1";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '80-03-01 11:22' from " + DB_NAME + ".tb1";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '1980-03-01 11:22:00'"));
 
-        query = "select k1 > '12-03-01 11:22' from " + DB_NAME + ".tb1";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '12-03-01 11:22' from " + DB_NAME + ".tb1";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2012-03-01 11:22:00'"));
     }
 
     public void testWithStringFormatDateV2() throws Exception {
-        String query = "select * from " + DB_NAME + ".tb2 where k1 > '2021030112334455'";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from " + DB_NAME + ".tb2 where k1 > '2021030112334455'";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 12:33:44.550'"));
 
-        query = "select k1 > '20210301' from " + DB_NAME + ".tb2";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '20210301' from " + DB_NAME + ".tb2";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 00:00:00'"));
 
-        query = "select k1 > '20210301233234.34' from " + DB_NAME + ".tb2";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '20210301233234.34' from " + DB_NAME + ".tb2";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 23:32:34.340'"));
 
-        query = "select * from " + DB_NAME + ".tb2 where k1 > '2021-03-01'";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from " + DB_NAME + ".tb2 where k1 > '2021-03-01'";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 00:00:00'"));
 
-        query = "select k1 > '2021-03-01 11:22:33' from " + DB_NAME + ".tb2";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '2021-03-01 11:22:33' from " + DB_NAME + ".tb2";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 11:22:33'"));
 
-        query = "select k1 > '2021-03-01 16:22:33' from " + DB_NAME + ".tb2";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '2021-03-01 16:22:33' from " + DB_NAME + ".tb2";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 16:22:33'"));
 
-        query = "select k1 > '2021-03-01 11:22' from " + DB_NAME + ".tb2";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '2021-03-01 11:22' from " + DB_NAME + ".tb2";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 11:22:00'"));
 
-        query = "select k1 > '20210301T221133' from " + DB_NAME + ".tb2";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '20210301T221133' from " + DB_NAME + ".tb2";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 22:11:33'"));
 
-        query = "select k1 > '2021-03-01 11:22' from " + DB_NAME + ".tb2";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '2021-03-01 11:22' from " + DB_NAME + ".tb2";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2021-03-01 11:22:00'"));
 
-        query = "select k1 > '80-03-01 11:22' from " + DB_NAME + ".tb2";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '80-03-01 11:22' from " + DB_NAME + ".tb2";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '1980-03-01 11:22:00'"));
 
-        query = "select k1 > '12-03-01 11:22' from " + DB_NAME + ".tb2";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '12-03-01 11:22' from " + DB_NAME + ".tb2";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > '2012-03-01 11:22:00'"));
     }
 
     public void testWithDoubleFormatDate() throws Exception {
-        String query = "select * from " + DB_NAME + ".tb1 where k1 > 20210301.22";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from " + DB_NAME + ".tb1 where k1 > 20210301.22";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > 20210301.22"));
 
-        query = "select k1 > 20210331.22 from " + DB_NAME + ".tb1";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > 20210331.22 from " + DB_NAME + ".tb1";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > 20210331.22"));
     }
 
     public void testWithDoubleFormatDateV2() throws Exception {
-        String query = "select * from " + DB_NAME + ".tb2 where k1 > 20210301.22";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from " + DB_NAME + ".tb2 where k1 > 20210301.22";
         String planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > 20210301.22"));
 
-        query = "select k1 > 20210331.22 from " + DB_NAME + ".tb2";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > 20210331.22 from " + DB_NAME + ".tb2";
         planString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(planString.contains("`k1` > 20210331.22"));
     }
 
     public void testWithInvalidFormatDate() throws Exception {
-        String query = "select * from " + DB_NAME + ".tb1 where k1 > '2021030125334455'";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from " + DB_NAME + ".tb1 where k1 > '2021030125334455'";
         try {
             dorisAssert.query(query).explainQuery();
         } catch (AnalysisException e) {
@@ -194,11 +194,11 @@ public class RewriteDateLiteralRuleTest {
                     "Incorrect datetime value: '2021030125334455' in expression: `k1` > '2021030125334455'"));
         }
 
-        query = "select k1 > '2021030125334455' from " + DB_NAME + ".tb1";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '2021030125334455' from " + DB_NAME + ".tb1";
         String plainString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(plainString.contains("NULL"));
 
-        query = "select * from " + DB_NAME + ".tb1 where k1 > '2021-03-32 23:33:55'";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from " + DB_NAME + ".tb1 where k1 > '2021-03-32 23:33:55'";
         try {
             dorisAssert.query(query).explainQuery();
         } catch (AnalysisException e) {
@@ -206,7 +206,7 @@ public class RewriteDateLiteralRuleTest {
                     "Incorrect datetime value: '2021-03-32 23:33:55' in expression: `k1` > '2021-03-32 23:33:55'"));
         }
 
-        query = "select * from " + DB_NAME + ".tb1 where k1 > '2021-03- 03 23:33:55'";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from " + DB_NAME + ".tb1 where k1 > '2021-03- 03 23:33:55'";
         try {
             dorisAssert.query(query).explainQuery();
         } catch (AnalysisException e) {
@@ -214,13 +214,13 @@ public class RewriteDateLiteralRuleTest {
                     "Incorrect datetime value: '2021-03- 03 23:33:55' in expression: `k1` > '2021-03- 03 23:33:55'"));
         }
 
-        query = "select k1 > '2021-03- 03 23:33:55' from " + DB_NAME + ".tb1";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '2021-03- 03 23:33:55' from " + DB_NAME + ".tb1";
         plainString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(plainString.contains("NULL"));
     }
 
     public void testWithInvalidFormatDateV2() throws Exception {
-        String query = "select * from " + DB_NAME + ".tb2 where k1 > '2021030125334455'";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from " + DB_NAME + ".tb2 where k1 > '2021030125334455'";
         try {
             dorisAssert.query(query).explainQuery();
         } catch (AnalysisException e) {
@@ -228,11 +228,11 @@ public class RewriteDateLiteralRuleTest {
                     "Incorrect datetime value: '2021030125334455' in expression: `k1` > '2021030125334455'"));
         }
 
-        query = "select k1 > '2021030125334455' from " + DB_NAME + ".tb2";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '2021030125334455' from " + DB_NAME + ".tb2";
         String plainString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(plainString.contains("NULL"));
 
-        query = "select * from " + DB_NAME + ".tb2 where k1 > '2021-03-32 23:33:55'";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from " + DB_NAME + ".tb2 where k1 > '2021-03-32 23:33:55'";
         try {
             dorisAssert.query(query).explainQuery();
         } catch (AnalysisException e) {
@@ -240,7 +240,7 @@ public class RewriteDateLiteralRuleTest {
                     "Incorrect datetime value: '2021-03-32 23:33:55' in expression: `k1` > '2021-03-32 23:33:55'"));
         }
 
-        query = "select * from " + DB_NAME + ".tb2 where k1 > '2021-03- 03 23:33:55'";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from " + DB_NAME + ".tb2 where k1 > '2021-03- 03 23:33:55'";
         try {
             dorisAssert.query(query).explainQuery();
         } catch (AnalysisException e) {
@@ -248,7 +248,7 @@ public class RewriteDateLiteralRuleTest {
                     "Incorrect datetime value: '2021-03- 03 23:33:55' in expression: `k1` > '2021-03- 03 23:33:55'"));
         }
 
-        query = "select k1 > '2021-03- 03 23:33:55' from " + DB_NAME + ".tb2";
+        query = "select /*+ SET_VAR(enable_nereids_planner=false) */ k1 > '2021-03- 03 23:33:55' from " + DB_NAME + ".tb2";
         plainString = dorisAssert.query(query).explainQuery();
         Assert.assertTrue(plainString.contains("NULL"));
     }
diff --git a/fe/fe-core/src/test/java/org/apache/doris/rewrite/RewriteInPredicateRuleTest.java b/fe/fe-core/src/test/java/org/apache/doris/rewrite/RewriteInPredicateRuleTest.java
index 9400baf1c9..6d84a967e8 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/rewrite/RewriteInPredicateRuleTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/rewrite/RewriteInPredicateRuleTest.java
@@ -119,7 +119,7 @@ public class RewriteInPredicateRuleTest extends TestWithFeService {
     @Test
     public void testEmpty() throws Exception {
         // type of id is smallint: id in (5.5, "6.2") => false
-        String query = "select * from table_small where id in (5.5, \"6.2\");";
+        String query = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from table_small where id in (5.5, \"6.2\");";
         StmtExecutor executor1 = getSqlStmtExecutor(query);
         Expr expr1 = ((SelectStmt) executor1.getParsedStmt()).getWhereClause();
         Assertions.assertTrue(expr1 instanceof BoolLiteral);
@@ -131,7 +131,7 @@ public class RewriteInPredicateRuleTest extends TestWithFeService {
         List<String> list = Lists.newArrayList();
         Lists.newArrayList(literals).forEach(e -> list.add("%s"));
         list.remove(list.size() - 1);
-        String queryFormat = "select * from %s where id in (" + Joiner.on(", ").join(list) + ");";
+        String queryFormat = "select /*+ SET_VAR(enable_nereids_planner=false) */ * from %s where id in (" + Joiner.on(", ").join(list) + ");";
         String query = String.format(queryFormat, literals);
         StmtExecutor executor1 = getSqlStmtExecutor(query);
         Expr expr1 = ((SelectStmt) executor1.getParsedStmt()).getWhereClause();
diff --git a/fe/fe-core/src/test/java/org/apache/doris/utframe/AnotherDemoTest.java b/fe/fe-core/src/test/java/org/apache/doris/utframe/AnotherDemoTest.java
index d6edaca5cc..6f3cf22d44 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/utframe/AnotherDemoTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/utframe/AnotherDemoTest.java
@@ -116,7 +116,7 @@ public class AnotherDemoTest {
         }
         // 5. query
         // TODO: we can not process real query for now. So it has to be a explain query
-        String queryStr = "explain select * from db1.tbl1";
+        String queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from db1.tbl1";
         StmtExecutor stmtExecutor = new StmtExecutor(ctx, queryStr);
         stmtExecutor.execute();
         Planner planner = stmtExecutor.planner();
diff --git a/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoTest.java b/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoTest.java
index 97408532f3..310bbbcb95 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/utframe/DemoTest.java
@@ -108,7 +108,7 @@ public class DemoTest extends TestWithFeService {
 
         // 7. query
         // TODO: we can not process real query for now. So it has to be a explain query
-        String queryStr = "explain select * from db1.tbl1";
+        String queryStr = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ * from db1.tbl1";
         StmtExecutor stmtExecutor = new StmtExecutor(connectContext, queryStr);
         stmtExecutor.execute();
         Planner planner = stmtExecutor.planner();


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org