You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Zhen Chen (Jira)" <ji...@apache.org> on 2025/06/24 13:24:00 UTC
[jira] [Created] (CALCITE-7071) Support replacing Join node with its child node when Join condition is false in ProjectJoinRemoveRule
Zhen Chen created CALCITE-7071:
----------------------------------
Summary: Support replacing Join node with its child node when Join condition is false in ProjectJoinRemoveRule
Key: CALCITE-7071
URL: https://issues.apache.org/jira/browse/CALCITE-7071
Project: Calcite
Issue Type: Improvement
Reporter: Zhen Chen
Assignee: Zhen Chen
Fix For: 1.41.0
SQL
{code:java}
SELECT e.deptno
FROM sales.emp e
LEFT JOIN sales.dept d ON e.deptno = d.deptno and e.deptno between 3 and 1
{code}
Plan before
{code:java}
LogicalProject(DEPTNO=[$7])
LogicalJoin(condition=[false], joinType=[left])
LogicalTableScan(table=[[CATALOG, SALES, EMP]])
LogicalTableScan(table=[[CATALOG, SALES, DEPT]])
{code}
Plan after
{code:java}
LogicalProject(DEPTNO=[$7])
LogicalTableScan(table=[[CATALOG, SALES, EMP]])
{code}
In ProjectJoinRemoveRule, when the Join condition is false, replace the Join with its left child for a left join or its right child for a right join. The above is an example of a left join.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)