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:
[email protected]
With regards,
Apache Git Services