[ 
https://issues.apache.org/jira/browse/FLINK-40948?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated FLINK-40948:
-----------------------------------
    Labels: pull-request-available  (was: )

> 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
>              Labels: pull-request-available
>
> 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)

Reply via email to