You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Stamatis Zampetakis (Jira)" <ji...@apache.org> on 2023/04/25 14:09:00 UTC
[jira] [Created] (CALCITE-5675) Infer predicates for anti-join
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)