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