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