You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Aitozi (Jira)" <ji...@apache.org> on 2023/02/28 12:54:00 UTC

[jira] [Created] (FLINK-31260) PushLocalHashAggIntoScanRule should also work with union RelNode

Aitozi created FLINK-31260:
------------------------------

             Summary: PushLocalHashAggIntoScanRule should also work with union RelNode
                 Key: FLINK-31260
                 URL: https://issues.apache.org/jira/browse/FLINK-31260
             Project: Flink
          Issue Type: Improvement
            Reporter: Aitozi


As discussed in [comments|https://github.com/apache/flink/pull/22001#discussion_r1119652784] Currently, {{PushLocalHashAggIntoScanRule}} match for the Exchange -> LocalHashAggregate -> Scan. As a result, the following pattern can not be optimized


{code:java}
      +- Union(all=[true], union=[type, sum$0])
         :- Union(all=[true], union=[type, sum$0])
         :  :- LocalHashAggregate(groupBy=[type], select=[type, Partial_SUM(price) AS sum$0])
         :  :  +- TableSourceScan(table=[[default_catalog, default_database, table1, project=[type, price], metadata=[]]], fields=[type, price])
         :  +- LocalHashAggregate(groupBy=[type], select=[type, Partial_SUM(price) AS sum$0])
         :     +- TableSourceScan(table=[[default_catalog, default_database, table2, project=[type, price], metadata=[]]], fields=[type, price])
         +- LocalHashAggregate(groupBy=[type], select=[type, Partial_SUM(price) AS sum$0])
            +- TableSourceScan(table=[[default_catalog, default_database, table3, project=[type, price], metadata=[]]], fields=[type, price])

{code}

We should extend the rule to support this pattern.




--
This message was sent by Atlassian Jira
(v8.20.10#820010)