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>