Github user fhueske commented on a diff in the pull request:
https://github.com/apache/flink/pull/4625#discussion_r142679463
--- Diff:
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/plan/rules/datastream/DataStreamWindowJoinRule.scala
---
@@ -105,6 +104,8 @@ class DataStreamWindowJoinRule
windowBounds.get.isEventTime,
windowBounds.get.leftLowerBound,
windowBounds.get.leftUpperBound,
+ windowBounds.get.leftTimeIdx,
+ windowBounds.get.rightTimeIdx,
remainCondition,
--- End diff --
The `remainCondition` must include the equi-join predicates to ensure that
the join condition is correctly evaluated for `null` values (see FLINK-7755 for
details).
To solve this, I'd suggest to call
`WindowJoinUtil.extractWindowBoundsFromPredicate` with `join.getCondition`
instead of `joinInfo.getRemaining(join.getCluster.getRexBuilder)`.
---