yanlin-Lynn commented on a change in pull request #2013:
URL: https://github.com/apache/calcite/pull/2013#discussion_r706775411



##########
File path: core/src/main/java/org/apache/calcite/plan/SubstitutionVisitor.java
##########
@@ -2083,6 +2078,38 @@ public static boolean equalType(String desc0, MutableRel 
rel0, String desc1,
     return RelOptUtil.equal(desc0, rel0.rowType, desc1, rel1.rowType, litmus);
   }
 
+  /**
+   * Check if filter under join can be pulled up,
+   * when meeting JoinOnCalc of query unify to Join of target.
+   * Such as {@link JoinOnLeftCalcToJoinUnifyRule} <br/>
+   * {@link JoinOnRightCalcToJoinUnifyRule} <br/>
+   * {@link JoinOnCalcsToJoinUnifyRule} <br/>
+   */
+  private static boolean canPullUpFilterUnderJoin(JoinRelType joinType,
+                                                  @Nullable RexNode 
leftFilterRexNode,
+                                                  @Nullable RexNode 
rightFilterRexNode) {
+    if (joinType == JoinRelType.INNER) {
+      return true;
+    }
+    if (joinType == JoinRelType.LEFT) {
+      if (rightFilterRexNode == null || rightFilterRexNode.isAlwaysTrue()) {

Review comment:
       Suggest you write like this.
   ```
   if (joinType == JoinRelType.LEFT) && (rightFilterRexNode == null || 
rightFilterRexNode.isAlwaysTrue()) {
     return true;
   }
   ```




-- 
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]


Reply via email to