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)

Reply via email to