Jeremy Ber created FLINK-30830:
----------------------------------
Summary: Temporal Table Function Samples for Java Do Not Work
As-Is, And Some Functions Are Deprecated
Key: FLINK-30830
URL: https://issues.apache.org/jira/browse/FLINK-30830
Project: Flink
Issue Type: Improvement
Components: Table SQL / API
Affects Versions: 1.16.1, 1.15.3, 1.15.2, 1.16.0, 1.15.1, 1.15.0, 1.17.0
Reporter: Jeremy Ber
In the java documentation for the [Temporal Table
Function|https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/concepts/temporal_table_function/],
there are two issues with the APIs as-is.
* Defining the temporal table calls `tEnv.registerFunction` which is a
deprecated API since v1.11, favoring `createTemporarySystemFunction` instead.
* In the Temporal Table Function Join syntax, calling
`joinLateral($("rates(order_time)")` elicits the following error:
```bash
Cannot resolve field [rates(order_time)]
```
For point 1, I am proposing we replace `tEnv.registerFunction()` with
`tEnv.createTemporarySystemFunction`.
For point 2, I am proposing we replace:
```java
Table result = orders
.joinLateral($("rates(order_time)"), $("orders.currency = rates.currency"))
.select($("(o_amount * r_rate).sum as amount"));
```
with
```java
{{{}Table result = orders .joinLateral(call("rates", $("o_proctime")),
$("o_currency").isEqual($("r_currency"))){}}}{{{}.select($("(o_amount").times($("r_rate")).sum().as("amount"));
{}}}
{{```}}
{{}}
{{Sources for corrections:}}
*
{{[https://nightlies.apache.org/flink/flink-docs-release-1.11/api/java/org/apache/flink/table/api/TableEnvironment.html#registerFunction-java.lang.String-org.apache.flink.table.functions.ScalarFunction-]}}
*
{{{}[https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/tableapi/#join-with-temporal-table]{}}}{{{}{}}}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)