[ https://issues.apache.org/jira/browse/FLINK-34910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dawid Wysakowicz closed FLINK-34910. ------------------------------------ Resolution: Fixed Fixed in 709bf93534fcdfd2b4452667af450f1748bf1ccc > Can not plan window join without projections > -------------------------------------------- > > Key: FLINK-34910 > URL: https://issues.apache.org/jira/browse/FLINK-34910 > Project: Flink > Issue Type: Bug > Components: Table SQL / Planner > Affects Versions: 1.19.0 > Reporter: Dawid Wysakowicz > Assignee: Dawid Wysakowicz > Priority: Major > Labels: pull-request-available > Fix For: 1.20.0 > > > When running: > {code} > @Test > def testWindowJoinWithoutProjections(): Unit = { > val sql = > """ > |SELECT * > |FROM > | TABLE(TUMBLE(TABLE MyTable, DESCRIPTOR(rowtime), INTERVAL '15' > MINUTE)) AS L > |JOIN > | TABLE(TUMBLE(TABLE MyTable2, DESCRIPTOR(rowtime), INTERVAL '15' > MINUTE)) AS R > |ON L.window_start = R.window_start AND L.window_end = R.window_end > AND L.a = R.a > """.stripMargin > util.verifyRelPlan(sql) > } > {code} > It fails with: > {code} > FlinkLogicalCalc(select=[a, b, c, rowtime, PROCTIME_MATERIALIZE(proctime) AS > proctime, window_start, window_end, window_time, a0, b0, c0, rowtime0, > PROCTIME_MATERIALIZE(proctime0) AS proctime0, window_start0, window_end0, > window_time0]) > +- FlinkLogicalCorrelate(correlation=[$cor0], joinType=[inner], > requiredColumns=[{}]) > :- FlinkLogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR($3), > 900000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER a, VARCHAR(2147483647) > b, BIGINT c, TIMESTAMP(3) *ROWTIME* rowtime, TIMESTAMP_LTZ(3) *PROCTIME* > proctime, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end, TIMESTAMP(3) > *ROWTIME* window_time)]) > : +- FlinkLogicalWatermarkAssigner(rowtime=[rowtime], watermark=[-($3, > 1000:INTERVAL SECOND)]) > : +- FlinkLogicalCalc(select=[a, b, c, rowtime, PROCTIME() AS > proctime]) > : +- FlinkLogicalTableSourceScan(table=[[default_catalog, > default_database, MyTable]], fields=[a, b, c, rowtime]) > +- > FlinkLogicalTableFunctionScan(invocation=[TUMBLE(DESCRIPTOR(CAST($3):TIMESTAMP(3)), > 900000:INTERVAL MINUTE)], rowType=[RecordType(INTEGER a, VARCHAR(2147483647) > b, BIGINT c, TIMESTAMP(3) *ROWTIME* rowtime, TIMESTAMP_LTZ(3) *PROCTIME* > proctime, TIMESTAMP(3) window_start, TIMESTAMP(3) window_end, TIMESTAMP(3) > *ROWTIME* window_time)]) > +- FlinkLogicalWatermarkAssigner(rowtime=[rowtime], watermark=[-($3, > 1000:INTERVAL SECOND)]) > +- FlinkLogicalCalc(select=[a, b, c, rowtime, PROCTIME() AS > proctime]) > +- FlinkLogicalTableSourceScan(table=[[default_catalog, > default_database, MyTable2]], fields=[a, b, c, rowtime]) > Failed to get time attribute index from DESCRIPTOR(CAST($3):TIMESTAMP(3)). > This is a bug, please file a JIRA issue. > Please check the documentation for the set of currently supported SQL > features. > {code} > In prior versions this had another problem of ambiguous {{rowtime}} column, > but this has been fixed by [FLINK-32648]. In versions < 1.19 > WindowTableFunctions were incorrectly scoped, because they were not extending > from Calcite's SqlWindowTableFunction and the scoping implemented in > SqlValidatorImpl#convertFrom was incorrect. -- This message was sent by Atlassian Jira (v8.20.10#820010)