You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "godfrey he (Jira)" <ji...@apache.org> on 2022/01/11 07:34:00 UTC

[jira] [Assigned] (FLINK-25604) Remove useless aggregate function

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

godfrey he reassigned FLINK-25604:
----------------------------------

    Assignee: godfrey he

> Remove useless aggregate function 
> ----------------------------------
>
>                 Key: FLINK-25604
>                 URL: https://issues.apache.org/jira/browse/FLINK-25604
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Table SQL / Planner
>            Reporter: Jing Zhang
>            Assignee: godfrey he
>            Priority: Minor
>
> We expect useless aggregate call could be removed after projection push down.
> But sometimes, planner is unexpected. For example,
> {code:sql}
> SELECT 
>   d
> FROM (
>   SELECT
>     d,
>     c,
>     row_number() OVER (PARTITION BY d ORDER BY e desc)  review_rank
>   FROM (
>     SELECT e, d, max(f) AS c FROM Table5 GROUP BY e, d)
>   )
> WHERE review_rank = 1
> {code}
> The plan is 
> {code:java}
> Calc(select=[d], where=[=(w0$o0, 1:BIGINT)])
> +- OverAggregate(partitionBy=[d], orderBy=[e DESC], window#0=[ROW_NUMBER(*) AS w0$o0 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW], select=[e, d, c, w0$o0])
>    +- Sort(orderBy=[d ASC, e DESC])
>       +- Exchange(distribution=[hash[d]])
>          +- HashAggregate(isMerge=[true], groupBy=[e, d], select=[e, d, Final_MAX(max$0) AS c])
>             +- Exchange(distribution=[hash[e, d]])
>                +- LocalHashAggregate(groupBy=[e, d], select=[e, d, Partial_MAX(f) AS max$0])
>                   +- Calc(select=[e, d, f])
>                      +- BoundedStreamScan(table=[[default_catalog, default_database, Table5]], fields=[d, e, f, g, h])
> {code}
> In the above sql, max(c) could be removed because it is projected out before sink.
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)