[ 
https://issues.apache.org/jira/browse/HIVE-13807?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15304405#comment-15304405
 ] 

Ashutosh Chauhan commented on HIVE-13807:
-----------------------------------------

+1

> Extend metadata provider to pull up predicates through Union
> ------------------------------------------------------------
>
>                 Key: HIVE-13807
>                 URL: https://issues.apache.org/jira/browse/HIVE-13807
>             Project: Hive
>          Issue Type: Sub-task
>          Components: CBO
>    Affects Versions: 2.1.0
>            Reporter: Jesus Camacho Rodriguez
>            Assignee: Jesus Camacho Rodriguez
>         Attachments: HIVE-13807.patch
>
>
> Follow-up of HIVE-13068.
> Currently, when we pull up predicates through Union operation with Calcite 
> metadata provider, we just create a single disjunction of pulled up 
> predicates. 
> E.g. Assume operators _I1, I2, I3_ with predicates {{P1, P2, P3}} that can be 
> pulled up through them, respectively.
> For an operation _Union (I1, I2, I3)_ we infer a new predicate {{Pu}}, such 
> that {{Pu = P1 OR P2 OR P3}}.
> While this is correct, we miss some chances for simplification e.g. if there 
> are common factors in P1, P2, and P3. Further, this inference differs 
> slightly from the way that the metadata provider pulls up predicates for 
> other operators (a list of predicates), thus breaking some assumptions and 
> missing some optimization opportunities.
> Ex. ql/src/test/results/clientpositive/input26.q.out
> {noformat}
> explain
> select * from (
>   select * from (select * from srcpart a where a.ds = '2008-04-08' and a.hr = 
> '11' order by a.key limit 5)pa
>     union all
>   select * from (select * from srcpart b where b.ds = '2008-04-08' and b.hr = 
> '14' limit 5)pb
> )subq
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to