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/28 13:29:32 UTC
[doris] branch master updated: [fix](test) fix PlannerTest testEliminatingSortNode (#21112)
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 e7dd65f551 [fix](test) fix PlannerTest testEliminatingSortNode (#21112)
e7dd65f551 is described below
commit e7dd65f551e7672381a9710d15791539fb6f5717
Author: Kang <kx...@gmail.com>
AuthorDate: Wed Jun 28 21:29:23 2023 +0800
[fix](test) fix PlannerTest testEliminatingSortNode (#21112)
testEliminatingSortNode needs to check if SortNode is existed in plan tree, so it should check plan1.contains("order by:"), but rather than plan1.contains("SORT INFO:") or plan1.contains("SORT LIMIT:").
---
.../java/org/apache/doris/planner/PlannerTest.java | 68 ++++++++--------------
1 file changed, 23 insertions(+), 45 deletions(-)
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 7cf92fc505..8e99eadd1a 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
@@ -560,71 +560,60 @@ public class PlannerTest extends TestWithFeService {
@Test
public void testEliminatingSortNode() throws Exception {
- // success case 1
+ // fail case 1
{
- 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;
+ String sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where k1 = 1 order by k1, k2";
StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
stmtExecutor1.execute();
Planner planner1 = stmtExecutor1.planner();
String plan1 = planner1.getExplainString(new ExplainOptions(false, false));
- Assertions.assertTrue(plan1.contains("SORT INFO:\n `k1`\n `k2`"));
- Assertions.assertTrue(plan1.contains("SORT LIMIT:"));
+ Assertions.assertTrue(plan1.contains("order by:"));
}
// fail case 2
{
- 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;
+ String sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where k1 = 1 and k3 = 2 order by k1, k2";
StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
stmtExecutor1.execute();
Planner planner1 = stmtExecutor1.planner();
String plan1 = planner1.getExplainString(new ExplainOptions(false, false));
- Assertions.assertTrue(plan1.contains("SORT INFO:\n `k1`\n `k2`"));
- Assertions.assertTrue(plan1.contains("SORT LIMIT:"));
+ Assertions.assertTrue(plan1.contains("order by:"));
}
// fail case 3
{
- 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;
+ String sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where k1 = 1 and k2 != 2 order by k1, k2";
StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
stmtExecutor1.execute();
Planner planner1 = stmtExecutor1.planner();
String plan1 = planner1.getExplainString(new ExplainOptions(false, false));
- Assertions.assertTrue(plan1.contains("SORT INFO:\n `k1`\n `k2`"));
- Assertions.assertTrue(plan1.contains("SORT LIMIT:"));
+ Assertions.assertTrue(plan1.contains("order by:"));
}
// fail case 4
{
- 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;
+ String sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where k1 = 1 or k2 = 2 order by k1, k2";
StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
stmtExecutor1.execute();
Planner planner1 = stmtExecutor1.planner();
String plan1 = planner1.getExplainString(new ExplainOptions(false, false));
- Assertions.assertTrue(plan1.contains("SORT INFO:\n `k1`\n `k2`"));
- Assertions.assertTrue(plan1.contains("SORT LIMIT:"));
+ Assertions.assertTrue(plan1.contains("order by:"));
}
// fail case 5
{
- 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;
+ 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";
StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
stmtExecutor1.execute();
Planner planner1 = stmtExecutor1.planner();
String plan1 = planner1.getExplainString(new ExplainOptions(false, false));
- Assertions.assertTrue(plan1.contains("SORT INFO:\n `k1`\n `k2`"));
- Assertions.assertTrue(plan1.contains("SORT LIMIT:"));
+ Assertions.assertTrue(plan1.contains("order by:"));
}
// fail case 6
// TODO, support: in (select 1)
{
- String sql1 = "explain select k1 from db1.tbl1 where k1 in (select 1) and k2 = 2 order by k1, k2 limit "
- + connectContext.getSessionVariable().topnOptLimitThreshold;
+ String sql1 = "explain select k1 from db1.tbl1 where k1 in (select 1) and k2 = 2 order by k1, k2";
StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
stmtExecutor1.execute();
Planner planner1 = stmtExecutor1.planner();
@@ -634,8 +623,7 @@ public class PlannerTest extends TestWithFeService {
// fail case 7
{
- String sql1 = "explain select k1 from db1.tbl1 where k1 not in (1) and k2 = 2 order by k1, k2 limit "
- + connectContext.getSessionVariable().topnOptLimitThreshold;
+ String sql1 = "explain select k1 from db1.tbl1 where k1 not in (1) and k2 = 2 order by k1, k2";
StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
stmtExecutor1.execute();
Planner planner1 = stmtExecutor1.planner();
@@ -645,63 +633,53 @@ public class PlannerTest extends TestWithFeService {
// success case 1
{
- 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;
+ String sql1 = "explain select /*+ SET_VAR(enable_nereids_planner=false) */ k1 from db1.tbl1 where k1 = 1 and k2 = 2 order by k1, k2";
StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
stmtExecutor1.execute();
Planner planner1 = stmtExecutor1.planner();
String plan1 = planner1.getExplainString(new ExplainOptions(false, false));
- Assertions.assertFalse(plan1.contains("SORT INFO:\n `k1`\n `k2`"));
- Assertions.assertFalse(plan1.contains("SORT LIMIT:"));
+ Assertions.assertFalse(plan1.contains("order by:"));
}
// success case 2
{
- 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;
+ 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";
StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
stmtExecutor1.execute();
Planner planner1 = stmtExecutor1.planner();
String plan1 = planner1.getExplainString(new ExplainOptions(false, false));
- Assertions.assertFalse(plan1.contains("SORT INFO:\n `k1`\n `k2`"));
- Assertions.assertFalse(plan1.contains("SORT LIMIT:"));
+ Assertions.assertFalse(plan1.contains("order by:"));
}
// success case 3
{
- 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;
+ 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";
StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
stmtExecutor1.execute();
Planner planner1 = stmtExecutor1.planner();
String plan1 = planner1.getExplainString(new ExplainOptions(false, false));
- Assertions.assertFalse(plan1.contains("SORT INFO:\n `k1`\n `k2`"));
- Assertions.assertFalse(plan1.contains("SORT LIMIT:"));
+ Assertions.assertFalse(plan1.contains("order by:"));
}
// success case 4
{
- 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;
+ 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";
StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
stmtExecutor1.execute();
Planner planner1 = stmtExecutor1.planner();
String plan1 = planner1.getExplainString(new ExplainOptions(false, false));
- Assertions.assertFalse(plan1.contains("SORT INFO:\n `k1`\n `k2`"));
- Assertions.assertFalse(plan1.contains("SORT LIMIT:"));
+ Assertions.assertFalse(plan1.contains("order by:"));
}
// success case 5
{
String sql1 = "explain select tbl1.k1 from db1.tbl1 join db1.tbl2 on tbl1.k1 = tbl2.k1"
- + " where tbl1.k1 = 1 and tbl2.k1 = 2 and tbl1.k2 = 3 order by tbl1.k1, tbl2.k1 limit "
- + connectContext.getSessionVariable().topnOptLimitThreshold;
+ + " where tbl1.k1 = 1 and tbl2.k1 = 2 and tbl1.k2 = 3 order by tbl1.k1, tbl2.k1";
StmtExecutor stmtExecutor1 = new StmtExecutor(connectContext, sql1);
stmtExecutor1.execute();
Planner planner1 = stmtExecutor1.planner();
String plan1 = planner1.getExplainString(new ExplainOptions(false, false));
- Assertions.assertFalse(plan1.contains("SORT INFO:"));
- Assertions.assertFalse(plan1.contains("SORT LIMIT:"));
+ Assertions.assertFalse(plan1.contains("order by:"));
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org