[ https://issues.apache.org/jira/browse/HIVE-22262?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17065206#comment-17065206 ]
Vineet Garg commented on HIVE-22262: ------------------------------------ Unfortunately rewriting still isn't triggered for above query. AggregateJoinTransposeRule does group by pushdown (along with eager count) and adds an extra count() on both side generating the following plan {noformat} HiveAggregate(group=[{3, 4}], agg#0=[sum($8)], agg#1=[$SUM0($9)]) HiveProject(TO_DATE=[$0], $f1=[$1], count=[$2], pk1=[$3], fk4=[$4], CAST=[$5], count0=[$6], $f4=[$7], $f8=[*($1, $6)], $f9=[*($2, $7)]) HiveJoin(condition=[=($0, $5)], joinType=[inner], algorithm=[none], cost=[not available]) HiveAggregate(group=[{1}], agg#0=[sum($0)], count=[count()]) HiveProject(subset=[rel#500:Subset#2.HIVE.[]], fk3=[$2], TO_DATE=[TO_DATE($3)]) HiveFilter(subset=[rel#498:Subset#1.HIVE.[]], condition=[IS NOT NULL(TO_DATE($3))]) HiveTableScan(subset=[rel#496:Subset#0.HIVE.[]], table=[[default, fact]], table:alias=[fact]) HiveAggregate(group=[{0, 1, 3}], count=[count()], agg#1=[count($2)]) HiveProject(subset=[rel#505:Subset#5.HIVE.[]], pk1=[$0], fk4=[$1], c1=[$2], CAST=[CAST($1):DATE]) HiveFilter(subset=[rel#503:Subset#4.HIVE.[]], condition=[IS NOT NULL(CAST($1):DATE)]) HiveTableScan(subset=[rel#501:Subset#3.HIVE.[]], table=[[default, dim2]], table:alias=[dim2]) {noformat} Currently MV rewriting isn't capable of rewriting if there is an aggregate on query which isn't in view More specific repro {code:sql} create materialized view av3 stored as orc as select fk1, fk2, fk3, fk4, sum(fk3) from fact group by fk1,fk2,fk3,fk4; explain cbo select sum(fk3), count(*) from fact group by fk4; {code} > Aggregate pushdown through join may generate additional rewriting > opportunities > ------------------------------------------------------------------------------- > > Key: HIVE-22262 > URL: https://issues.apache.org/jira/browse/HIVE-22262 > Project: Hive > Issue Type: Sub-task > Components: CBO, Materialized views > Affects Versions: 3.1.2 > Reporter: Steve Carlin > Assignee: Vineet Garg > Priority: Major > Attachments: eager-v2.sql > > > In this case, there is a function used in the query and materialized view, > but the aggregate is not being pushed down. Script is attached. > Example query and materialized view: > create materialized view av1 stored as orc as select fk1, fk2, fk3, > to_date(fk4), sum(1) from fact group by 1, 2, 3, 4; > explain cbo select pk1, dim2.fk4, sum(1), count(c1) > from fact, dim2 > where to_date(fact.fk4) = dim2.fk4 > group by 1, 2 > order by 1, 2; -- This message was sent by Atlassian Jira (v8.3.4#803005)