[
https://issues.apache.org/jira/browse/FLINK-19076?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Leonard Xu closed FLINK-19076.
------------------------------
Resolution: Resolved
master: cd65bbb7cc2ec2099d70375cc009215cf57afe13
> Import rule to deal Temporal Join condition
> -------------------------------------------
>
> Key: FLINK-19076
> URL: https://issues.apache.org/jira/browse/FLINK-19076
> Project: Flink
> Issue Type: Sub-task
> Components: Table SQL / Planner
> Reporter: Leonard Xu
> Assignee: Leonard Xu
> Priority: Major
>
> Temporal join is a correlate, the right of correlate is a *Snapshot*, the
> *period* of *snapshot* comes from left table's time attribute column.
> the time attribute column may be pruned if the downstream `RelNode` did not
> reference it any more, so I need to keep the necessary condition(e.g., left
> time attribute, right primary key) for temporal join node in join condition.
> Given an example:
> {code:java}
> SELECT o.order_id, o.currency, o.amount, r.rate,r.rowtime
> FROM orders_proctime AS o JOIN
> versioned_currency
> FOR SYSTEM_TIME AS OF o.rowtime as r
> ON o.currency = r.currency{code}
> The select clause did not use `o.rowtime` and thus the column `o.rowtime`
> will be removed later, but we need the `o.rowtime` in temporal join node, so
> I keep the `o.rowtime` in temporal join condition just like[1].
> [1]
> [https://github.com/apache/flink/blob/c601cfd662c2839f8ebc81b80879ecce55a8cbaf/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/plan/utils/TemporalJoinUtil.scala]
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)