Benoît Paris created FLINK-14200:
------------------------------------
Summary: Temporal Table Function Joins do not work on Tables (only TableSources) on the query side
Key: FLINK-14200
URL:
https://issues.apache.org/jira/browse/FLINK-14200 Project: Flink
Issue Type: Bug
Components: Table SQL / Planner
Affects Versions: 1.9.0
Environment: Java 8, Scala 2.11, Flink 1.9
Reporter: Benoît Paris
Attachments: temporal-table-function-query-side-as-not-table-source.zip
This only affects the Blink planner. The legacy planner works fine.
With Orders as a TableSource, and Orders2 as a Table with the same content:
{code:java}
tEnv.registerTableSource("Orders", new FooSource(new String[] {"o_currency", "o_amount", "o_proctime"}));
Table orders2 = tEnv.sqlQuery("SELECT * FROM Orders");
tEnv.registerTable("Orders2", orders2);{code}
This works (TableSource on the query side):
{code:java}
SELECT
o_amount * r_amount AS amount
FROM Orders
, LATERAL TABLE (Rates(o_proctime))
WHERE r_currency = o_currency{code}
While this does not (Table on the query side):
{code:java}
SELECT
o_amount * r_amount AS amount
FROM Orders2
, LATERAL TABLE (Rates(o_proctime))
WHERE r_currency = o_currency{code}
Throwing an NPE in FlinkRelBuilder, called from LogicalCorrelateToJoinFromTemporalTableFunctionRule. Attached is Java code for reproduction, along with the full log and stacktrace, and a pom.xml.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)