Dawid Wysakowicz created FLINK-12249: ----------------------------------------
Summary: Type equivalence check fails for Window Aggregates Key: FLINK-12249 URL: https://issues.apache.org/jira/browse/FLINK-12249 Project: Flink Issue Type: Bug Components: Table SQL / Legacy Planner, Tests Affects Versions: 1.9.0 Reporter: Dawid Wysakowicz Creating Aggregate node fails in rules: {{LogicalWindowAggregateRule}} and {{ExtendedAggregateExtractProjectRule}} if the only grouping expression is a window and we compute aggregation on NON NULLABLE field. The root cause for that, is how return type inference strategies in calcite work and how we handle window aggregates. Take {{org.apache.calcite.sql.type.ReturnTypes#AGG_SUM}} as an example, based on {{groupCount}} it adjusts type nullability based on groupCount. Though we pass a false information as we strip down window aggregation from groupSet (in {{LogicalWindowAggregateRule}}). One can reproduce this problem also with a unit test like this: {code} @Test def testTumbleFunction2() = { val innerQuery = """ |SELECT | CASE a WHEN 1 THEN 1 ELSE 99 END AS correct, | rowtime |FROM MyTable """.stripMargin val sql = "SELECT " + " SUM(correct) as cnt, " + " TUMBLE_START(rowtime, INTERVAL '15' MINUTE) as wStart " + s"FROM ($innerQuery) " + "GROUP BY TUMBLE(rowtime, INTERVAL '15' MINUTE)" val expected = "" streamUtil.verifySql(sql, expected) } {code} This causes e2e tests to fail: https://travis-ci.org/apache/flink/builds/521183361?utm_source=slack&utm_medium=notificationhttps://travis-ci.org/apache/flink/builds/521183361?utm_source=slack&utm_medium=notification -- This message was sent by Atlassian JIRA (v7.6.3#76005)