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