[
https://issues.apache.org/jira/browse/HIVE-28829?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stamatis Zampetakis updated HIVE-28829:
---------------------------------------
Attachment: cbo_redundant_aggregate.q
> Remove redundant aggregate operator from query plan
> ---------------------------------------------------
>
> Key: HIVE-28829
> URL: https://issues.apache.org/jira/browse/HIVE-28829
> Project: Hive
> Issue Type: Improvement
> Components: CBO
> Reporter: Stamatis Zampetakis
> Assignee: Stamatis Zampetakis
> Priority: Major
> Attachments: cbo_redundant_aggregate.q
>
>
> Some queries contain redundant aggregate operators in the query plan. One
> such example is shown below.
> {code:sql}
> create table t1 (a1 int, b1 string);
> explain cbo
> select b1 from t1 where a1 = 1
> union
> select b1 from t1 where a1 = 2
> union
> select b1 from t1 where 1 = 0;
> {code}
> {noformat}
> HiveAggregate(group=[{0}])
> HiveProject(b1=[$0])
> HiveAggregate(group=[{0}])
> HiveProject(b1=[$0])
> HiveUnion(all=[true])
> HiveProject(b1=[$1])
> HiveFilter(condition=[=($0, 1)])
> HiveTableScan(table=[[default, t1]], table:alias=[t1])
> HiveProject(b1=[$1])
> HiveFilter(condition=[=($0, 2)])
> HiveTableScan(table=[[default, t1]], table:alias=[t1])
> {noformat}
> It's pretty obvious that the top {{HiveAggregate}} and {{HiveProject}}
> operators are completely redundant and can be removed.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)