Stamatis Zampetakis created CALCITE-5675:
--------------------------------------------
Summary: Infer predicates for anti-join
Key: CALCITE-5675
URL: https://issues.apache.org/jira/browse/CALCITE-5675
Project: Calcite
Issue Type: Improvement
Components: core
Reporter: Stamatis Zampetakis
Assignee: Stamatis Zampetakis
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+
{noformat}
LogicalJoin(condition=[=($7, $8)], joinType=[anti])
LogicalFilter(condition=[=($1, 'Victor')])
LogicalTableScan(table=[[scott, EMP]])
LogicalFilter(condition=[=($1, 'CSD')])
LogicalTableScan(table=[[scott, DEPT]])
{noformat}
We can infer that the {{>($1, 'Victor')}} predicate holds on the result of the
join.
+RightInferredPredicates+
{noformat}
LogicalJoin(condition=[=($7, $8)], joinType=[anti])
LogicalFilter(condition=[>($7, 10)])
LogicalTableScan(table=[[scott, EMP]])
LogicalTableScan(table=[[scott, DEPT]])
{noformat}
We can infer that the {{>($0, 10)}} predicate holds on the right relation
(DEPT).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)