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)