Jesus Camacho Rodriguez created HIVE-13807:
----------------------------------------------

             Summary: 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


Follow-up of HIVE-13068.

Currently, when we pull up predicates through Union operation with Calcite 
metadata provider, we just create a single conjunction 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, 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