Repository: calcite
Updated Branches:
  refs/heads/master 93a96ddf4 -> bdb953fa0


[CALCITE-1883] HepPlanner should force garbage collect whenever a root 
registered (Ted Xu)

Close apache/calcite#497


Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/eb911cb5
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/eb911cb5
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/eb911cb5

Branch: refs/heads/master
Commit: eb911cb5756f2ddb4ce643b7e462702b967ca462
Parents: cbbe627
Author: Ted Xu <[email protected]>
Authored: Tue Jul 18 09:10:55 2017 +0800
Committer: Julian Hyde <[email protected]>
Committed: Mon Jul 17 22:03:16 2017 -0700

----------------------------------------------------------------------
 .../org/apache/calcite/plan/hep/HepPlanner.java    |  1 +
 .../org/apache/calcite/test/HepPlannerTest.java    | 17 +++++++++++++++++
 2 files changed, 18 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/eb911cb5/core/src/main/java/org/apache/calcite/plan/hep/HepPlanner.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/plan/hep/HepPlanner.java 
b/core/src/main/java/org/apache/calcite/plan/hep/HepPlanner.java
index 1753305..33e4056 100644
--- a/core/src/main/java/org/apache/calcite/plan/hep/HepPlanner.java
+++ b/core/src/main/java/org/apache/calcite/plan/hep/HepPlanner.java
@@ -783,6 +783,7 @@ public class HepPlanner extends AbstractRelOptPlanner {
       graph.addEdge(newVertex, (HepRelVertex) input);
     }
 
+    nTransformations++;
     return newVertex;
   }
 

http://git-wip-us.apache.org/repos/asf/calcite/blob/eb911cb5/core/src/test/java/org/apache/calcite/test/HepPlannerTest.java
----------------------------------------------------------------------
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 ac8f67a..3145db5 100644
--- a/core/src/test/java/org/apache/calcite/test/HepPlannerTest.java
+++ b/core/src/test/java/org/apache/calcite/test/HepPlannerTest.java
@@ -169,6 +169,23 @@ public class HepPlannerTest extends RelOptTestBase {
         programBuilder.build(),
         "select upper(name) from dept where deptno=20");
   }
+
+  @Test public void testGC() throws Exception {
+    HepProgramBuilder programBuilder = HepProgram.builder();
+    programBuilder.addMatchOrder(HepMatchOrder.TOP_DOWN);
+    programBuilder.addRuleInstance(CalcMergeRule.INSTANCE);
+    programBuilder.addRuleInstance(ProjectToCalcRule.INSTANCE);
+    programBuilder.addRuleInstance(FilterToCalcRule.INSTANCE);
+
+    HepPlanner planner = new HepPlanner(programBuilder.build());
+    planner.setRoot(
+        tester.convertSqlToRel("select upper(name) from dept where 
deptno=20").rel);
+    planner.findBestExp();
+    // Reuse of HepPlanner (should trigger GC).
+    planner.setRoot(
+        tester.convertSqlToRel("select upper(name) from dept where 
deptno=20").rel);
+    planner.findBestExp();
+  }
 }
 
 // End HepPlannerTest.java

Reply via email to