hsyuan commented on a change in pull request #1157: [CALCITE-2969] Improve 
design of join-like relational expressions
URL: https://github.com/apache/calcite/pull/1157#discussion_r279983857
 
 

 ##########
 File path: core/src/main/java/org/apache/calcite/plan/RelOptUtil.java
 ##########
 @@ -3734,6 +3740,13 @@ private Exists(RelNode r, boolean indicator, boolean 
outerJoin) {
       this.outerJoin = outerJoin;
     }
   }
+
+  /** Check if it is the join whose condition is based on column equality. */
+  public static boolean isEquiJoin(Join join) {
+    return join.isNonCorrelateSemiJoin()
+        || join instanceof EnumerableHashJoin
+        || join instanceof EnumerableMergeJoin;
+  }
 
 Review comment:
   In fact, we don't need EquiJoin at all. The definition of EquiJoin in 
Calcite is misleading.  
   `t1.a+t1.b = t2.c+t2.d` would not be a EquiJoin. What we care about is does 
it have equal condition that we can do hash or merge join on it. But given the 
size of change, I don't mind to remove/deprecate EquiJoin in later patches.

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to