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)