suibianwanwank commented on code in PR #4260:
URL: https://github.com/apache/calcite/pull/4260#discussion_r2017425388
##########
core/src/main/java/org/apache/calcite/rel/core/JoinInfo.java:
##########
@@ -62,10 +62,9 @@ protected JoinInfo(ImmutableIntList leftKeys,
ImmutableIntList rightKeys,
public static JoinInfo of(RelNode left, RelNode right, RexNode condition) {
final List<Integer> leftKeys = new ArrayList<>();
final List<Integer> rightKeys = new ArrayList<>();
- final List<Boolean> filterNulls = new ArrayList<>();
final List<RexNode> nonEquiList = new ArrayList<>();
RelOptUtil.splitJoinCondition(left, right, condition, leftKeys, rightKeys,
- filterNulls, nonEquiList);
+ null, nonEquiList);
Review Comment:
I haven't reviewed the code in detail, but my guess is the issue arises from
the equivalent conditional determination process, where non-equi conditions are
fetched from the joinInfo(generated during the join construction) and treated
as equivCond if they aren't in the list.
If that's the case, IMO a better approach would be to record the list of
nullFilter in the JoinInfo. And use nullFilter to fix where you fundamentally
want to fix the problem🤔️.
--
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]