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

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


The following commit(s) were added to refs/heads/master by this push:
     new 1a5fca0  [CALCITE-3068] testSubprogram() does not test whether 
subprogram gets re-executed
1a5fca0 is described below

commit 1a5fca0feab124f33c16d31b65f0ba0806231731
Author: Chunwei Lei <[email protected]>
AuthorDate: Sun May 19 21:30:47 2019 +0800

    [CALCITE-3068] testSubprogram() does not test whether subprogram gets 
re-executed
---
 core/src/main/java/org/apache/calcite/plan/hep/HepProgram.java     | 2 +-
 .../main/java/org/apache/calcite/plan/hep/HepProgramBuilder.java   | 2 +-
 core/src/test/java/org/apache/calcite/test/HepPlannerTest.java     | 3 ++-
 core/src/test/resources/org/apache/calcite/test/HepPlannerTest.xml | 7 ++++---
 4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/core/src/main/java/org/apache/calcite/plan/hep/HepProgram.java 
b/core/src/main/java/org/apache/calcite/plan/hep/HepProgram.java
index d068a93..f68abc1 100644
--- a/core/src/main/java/org/apache/calcite/plan/hep/HepProgram.java
+++ b/core/src/main/java/org/apache/calcite/plan/hep/HepProgram.java
@@ -51,7 +51,7 @@ public class HepProgram {
 
   /**
    * Creates a new empty HepProgram. The program has an initial match order of
-   * {@link org.apache.calcite.plan.hep.HepMatchOrder#ARBITRARY}, and an 
initial
+   * {@link org.apache.calcite.plan.hep.HepMatchOrder#DEPTH_FIRST}, and an 
initial
    * match limit of {@link #MATCH_UNTIL_FIXPOINT}.
    */
   HepProgram(List<HepInstruction> instructions) {
diff --git 
a/core/src/main/java/org/apache/calcite/plan/hep/HepProgramBuilder.java 
b/core/src/main/java/org/apache/calcite/plan/hep/HepProgramBuilder.java
index 2a4ca27..f34a143 100644
--- a/core/src/main/java/org/apache/calcite/plan/hep/HepProgramBuilder.java
+++ b/core/src/main/java/org/apache/calcite/plan/hep/HepProgramBuilder.java
@@ -39,7 +39,7 @@ public class HepProgramBuilder {
   /**
    * Creates a new HepProgramBuilder with an initially empty program. The
    * program under construction has an initial match order of
-   * {@link HepMatchOrder#ARBITRARY}, and an initial match limit of
+   * {@link HepMatchOrder#DEPTH_FIRST}, and an initial match limit of
    * {@link HepProgram#MATCH_UNTIL_FIXPOINT}.
    */
   public HepProgramBuilder() {
diff --git a/core/src/test/java/org/apache/calcite/test/HepPlannerTest.java 
b/core/src/test/java/org/apache/calcite/test/HepPlannerTest.java
index 2e354e0..7a99d0b 100644
--- a/core/src/test/java/org/apache/calcite/test/HepPlannerTest.java
+++ b/core/src/test/java/org/apache/calcite/test/HepPlannerTest.java
@@ -251,6 +251,7 @@ public class HepPlannerTest extends RelOptTestBase {
     subprogramBuilder.addMatchOrder(HepMatchOrder.TOP_DOWN);
     subprogramBuilder.addMatchLimit(1);
     subprogramBuilder.addRuleInstance(ProjectToCalcRule.INSTANCE);
+    subprogramBuilder.addRuleInstance(FilterToCalcRule.INSTANCE);
     subprogramBuilder.addRuleInstance(CalcMergeRule.INSTANCE);
 
     HepProgramBuilder programBuilder = HepProgram.builder();
@@ -258,7 +259,7 @@ public class HepPlannerTest extends RelOptTestBase {
 
     checkPlanning(
         programBuilder.build(),
-        "select upper(ename) from (select lower(ename) as ename from emp)");
+        "select upper(ename) from (select lower(ename) as ename from emp where 
empno = 100)");
   }
 
   @Test public void testGroup() throws Exception {
diff --git a/core/src/test/resources/org/apache/calcite/test/HepPlannerTest.xml 
b/core/src/test/resources/org/apache/calcite/test/HepPlannerTest.xml
index ffb3e32..21c5bda 100644
--- a/core/src/test/resources/org/apache/calcite/test/HepPlannerTest.xml
+++ b/core/src/test/resources/org/apache/calcite/test/HepPlannerTest.xml
@@ -163,17 +163,18 @@ LogicalIntersect(all=[false])
   </TestCase>
   <TestCase name="testSubprogram">
     <Resource name="sql">
-      <![CDATA[select upper(ename) from (select lower(ename) as ename from 
emp)]]>
+      <![CDATA[select upper(ename) from (select lower(ename) as ename from emp 
where empno = 100)]]>
     </Resource>
     <Resource name="planBefore">
       <![CDATA[
 LogicalProject(EXPR$0=[UPPER(LOWER($1))])
-  LogicalTableScan(table=[[CATALOG, SALES, EMP]])
+  LogicalFilter(condition=[=($0, 100)])
+    LogicalTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
     </Resource>
     <Resource name="planAfter">
       <![CDATA[
-LogicalCalc(expr#0..8=[{inputs}], expr#9=[LOWER($t1)], expr#10=[UPPER($t9)], 
EXPR$0=[$t10])
+LogicalCalc(expr#0..8=[{inputs}], expr#9=[LOWER($t1)], expr#10=[UPPER($t9)], 
expr#11=[100], expr#12=[=($t0, $t11)], EXPR$0=[$t10], $condition=[$t12])
   LogicalTableScan(table=[[CATALOG, SALES, EMP]])
 ]]>
     </Resource>

Reply via email to