Currently org.apache.flink.table.calcite.RelTimeIndicatorConverter#visit(LogicalJoin) correctly handles only windowed joins. Output of non windowed joins shouldn't contain any time indicators.
A symptom of this is the exception:
Or this exception:
A long-term solution would be:
The root cause of this issue is the early phase in which RelTimeIndicatorConverter is called. Due to lack of information (since the join condition might not have been pushed into the join node), we can not differentiate between a window and non-window join. Thus, we cannot perform the time indicator materialization more fine grained. A solution would be to perform the materialization later after the logical optimization and before the physical translation, this would also make sense from a semantic perspective because time indicators are more a physical characteristic.
|Refactor the time indicator materialization||Closed|
|Materialize time attribute fields of regular join's inputs||Closed|
|Port RelTimeIndicatorConverter from SCALA to JAVA||Closed|
|Split Match_ROWTIME return type converter into a separator class||Closed||Unassigned|