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

Reply via email to