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
