Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.9.0
-
Java 8, Scala 2.11, Flink 1.9
Description
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:
tEnv.registerTableSource("Orders", new FooSource(new String[] {"o_currency", "o_amount", "o_proctime"})); Table orders2 = tEnv.sqlQuery("SELECT * FROM Orders"); tEnv.registerTable("Orders2", orders2);
This works (TableSource on the query side):
SELECT o_amount * r_amount AS amount FROM Orders , LATERAL TABLE (Rates(o_proctime)) WHERE r_currency = o_currency
While this does not (Table on the query side):
SELECT o_amount * r_amount AS amount FROM Orders2 , LATERAL TABLE (Rates(o_proctime)) WHERE r_currency = o_currency
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.
EDIT: This may not be Table vs TableSource, maybe more a projection or a decorrelate issue? Don't know how the planner works well enough to characterize it better.
Attachments
Attachments
Issue Links
- duplicates
-
FLINK-15112 NPE when trying to join on two temporal tables in a single query
- Closed
- links to