Anonymous Coward (816) has posted comments on this change. ( http://gerrit.cloudera.org:8080/22870 )
Change subject: IMPALA-14061: Calcite Planner: added Calcite rules ...................................................................... Patch Set 10: (1 comment) http://gerrit.cloudera.org:8080/#/c/22870/10/java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteOptimizer.java File java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteOptimizer.java: http://gerrit.cloudera.org:8080/#/c/22870/10/java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteOptimizer.java@200 PS10, Line 200: private RelNode runJoinProgram(RelNode plan) throws ImpalaException { : : HepProgramBuilder builder = new HepProgramBuilder(); : : builder.addMatchOrder(HepMatchOrder.BOTTOM_UP); : : builder.addRuleCollection(ImmutableList.of( : CoreRules.SEMI_JOIN_PROJECT_TRANSPOSE, : CoreRules.JOIN_PROJECT_BOTH_TRANSPOSE_INCLUDE_OUTER, : CoreRules.PROJECT_MERGE : )); : : // has to be in a separate program or else there is an infinite loop : builder.addRuleInstance(CoreRules.JOIN_PUSH_TRANSITIVE_PREDICATES); : : // Merge the filter nodes into the Join. Also include : // The filter/project transpose in case the Filter : // exists above the Project in the RelNode so it can : // then be merged into the Join. The idea is to place : // joins next to each other if possible for the join : // optimization step. : builder.addRuleCollection(ImmutableList.of( : CoreRules.FILTER_INTO_JOIN, : CoreRules.FILTER_PROJECT_TRANSPOSE : )); : : // Join rules work in a two step process. The first step : // is to merge all adjacent joins into one big "multijoin" : // RelNode (the JOIN_TO_MULTIJOIN rule). Then the : // MULTI_JOIN_OPTIMIZE rule is used to determine the join : // ordering. : builder.addMatchOrder(HepMatchOrder.BOTTOM_UP); : builder.addRuleInstance(CoreRules.JOIN_CONDITION_PUSH); : builder.addRuleInstance(CoreRules.JOIN_TO_MULTI_JOIN); : builder.addRuleInstance(CoreRules.MULTI_JOIN_OPTIMIZE); : : return runProgram(plan, builder.build()); : } > So the jury is out on this one... ok! thanks!! -- To view, visit http://gerrit.cloudera.org:8080/22870 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6671f7ed298a18965ef0b7a5fc10f4912333a52b Gerrit-Change-Number: 22870 Gerrit-PatchSet: 10 Gerrit-Owner: Steve Carlin <scar...@cloudera.com> Gerrit-Reviewer: Aman Sinha <amsi...@cloudera.com> Gerrit-Reviewer: Anonymous Coward (816) Gerrit-Reviewer: Fang-Yu Rao <fangyu....@cloudera.com> Gerrit-Reviewer: Impala Public Jenkins <impala-public-jenk...@cloudera.com> Gerrit-Reviewer: Joe McDonnell <joemcdonn...@cloudera.com> Gerrit-Reviewer: Michael Smith <michael.sm...@cloudera.com> Gerrit-Reviewer: Riza Suminto <riza.sumi...@cloudera.com> Gerrit-Reviewer: Steve Carlin <scar...@cloudera.com> Gerrit-Comment-Date: Thu, 19 Jun 2025 11:05:59 +0000 Gerrit-HasComments: Yes