Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
Description
Enhance RelMdPredicates to be able to infer predicates for anti-joins.
Consider the following plans with an anti join between EMP and DEPT tables.
PulledUpPredicates
LogicalJoin(condition=[=($7, $8)], joinType=[anti]) LogicalFilter(condition=[=($1, 'Victor')]) LogicalTableScan(table=[[scott, EMP]]) LogicalFilter(condition=[=($1, 'CSD')]) LogicalTableScan(table=[[scott, DEPT]])
We can infer that the >($1, 'Victor') predicate holds on the result of the join.
RightInferredPredicates
LogicalJoin(condition=[=($7, $8)], joinType=[anti]) LogicalFilter(condition=[>($7, 10)]) LogicalTableScan(table=[[scott, EMP]]) LogicalTableScan(table=[[scott, DEPT]])
We can infer that the >($0, 10) predicate holds on the right relation (DEPT).
Attachments
Issue Links
- blocks
-
HIVE-25953 Drop HiveRelMdPredicates::getPredicates(Join...) to use that of RelMdPredicates
- In Progress
- links to