liyafan82 commented on a change in pull request #2501:
URL: https://github.com/apache/calcite/pull/2501#discussion_r704105383
##########
File path: core/src/test/java/org/apache/calcite/test/HepPlannerTest.java
##########
@@ -267,6 +271,38 @@ private void assertIncludesExactlyOnce(String message,
String digest, String sub
assertThat(listener.getApplyTimes() == 1, is(true));
}
+ @Test void testCleanEdges() {
+ // this case is designed to test
+ // CALCITE-4747:https://issues.apache.org/jira/browse/CALCITE-4747
+ // before the improvement, the following optimization will have 7 edges in
the graph,
+ // and now there's only 4 edges.
+ HepProgramBuilder programBuilder = HepProgram.builder();
+ programBuilder.addRuleInstance(CoreRules.FILTER_INTO_JOIN);
+
+ final HepTestListener listener = new HepTestListener(0);
+ HepPlanner planner = new HepPlanner(programBuilder.build());
+ planner.addListener(listener);
+
+ final String sql = "select * from emp e "
+ + "join dept d on e.deptno=d.deptno "
+ + "where e.empno>100";
+
+ try {
+ planner.setRoot(tester.convertSqlToRel(sql).rel);
+ planner.findBestExp();
+
+ // the field graph is private, so we use reflect to get it.
+ Field graphField = planner.getClass().getDeclaredField("graph");
+ graphField.setAccessible(true);
Review comment:
I see. Thansk for the explanation.
It seems a complicated process is happening behind the scene (the number of
edges increases and then decreases).
However, the process is not reflected in the test case, and unknown to
readers of the test case.
In addition, the number 4 seems volatile, as it may change as the result of
an irrelevant change.
So I tend to prefer this test case removed.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]