[
https://issues.apache.org/jira/browse/FLINK-40948?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergey Nuyanzin reassigned FLINK-40948:
---------------------------------------
Assignee: Sergey Nuyanzin
> Planner crashes with "Type mismatch" when a window aggregate groups on the
> nullable side of an outer window join
> ----------------------------------------------------------------------------------------------------------------
>
> Key: FLINK-40948
> URL: https://issues.apache.org/jira/browse/FLINK-40948
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Planner
> Affects Versions: 2.4.0
> Reporter: Martijn Visser
> Assignee: Sergey Nuyanzin
> Priority: Major
>
> When the output of a LEFT (or RIGHT or FULL) window join is aggregated again
> on the window_start and window_end columns of the null-generating side,
> planning fails with an internal Calcite error instead of a plan or a
> validation message. EXPLAIN is enough to trigger it, no data is needed:
> {code:sql}
> CREATE TABLE a (id STRING, ts TIMESTAMP(3), WATERMARK FOR ts AS ts) WITH
> ('connector' = 'datagen');
> CREATE TABLE b (id STRING, ts TIMESTAMP(3), WATERMARK FOR ts AS ts) WITH
> ('connector' = 'datagen');
> EXPLAIN
> SELECT window_start, window_end, id, SUM(cnt)
> FROM (
> SELECT r.window_start, r.window_end, r.id, r.cnt
> FROM (
> SELECT id, window_start, window_end, COUNT(*) AS cnt
> FROM TABLE(TUMBLE(TABLE a, DESCRIPTOR(ts), INTERVAL '5' SECOND))
> GROUP BY id, window_start, window_end
> ) l
> LEFT JOIN (
> SELECT id, window_start, window_end, COUNT(*) AS cnt
> FROM TABLE(TUMBLE(TABLE b, DESCRIPTOR(ts), INTERVAL '5' SECOND))
> GROUP BY id, window_start, window_end
> ) r
> ON l.window_start = r.window_start AND l.window_end = r.window_end AND l.id
> = r.id
> )
> GROUP BY window_start, window_end, id;
> {code}
> {code}
> java.lang.RuntimeException: Error while applying rule
> StreamPhysicalWindowAggregateRule(in:LOGICAL,out:STREAM_PHYSICAL), args
> [rel#889:FlinkLogicalAggregate.LOGICAL.any.None:
> 0.[NONE].[NONE].[NONE](input=RelSubset#888,group={0, 1, 2},EXPR$3=SUM($3))]
> Caused by: java.lang.IllegalArgumentException: Type mismatch:
> rel rowtype: RecordType(TIMESTAMP(3) NOT NULL window_start, TIMESTAMP(3) NOT
> NULL window_end, VARCHAR(2147483647) CHARACTER SET "UTF-16LE" id, BIGINT
> EXPR$3) NOT NULL
> equiv rowtype: RecordType(TIMESTAMP(3) window_start, TIMESTAMP(3) window_end,
> VARCHAR(2147483647) CHARACTER SET "UTF-16LE" id, BIGINT EXPR$3) NOT NULL
> Difference:
> window_start: TIMESTAMP(3) NOT NULL -> TIMESTAMP(3)
> window_end: TIMESTAMP(3) NOT NULL -> TIMESTAMP(3)
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)