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)