[ https://issues.apache.org/jira/browse/CALCITE-7071 ]
weihua zhang deleted comment on CALCITE-7071: --------------------------------------- was (Author: JIRAUSER307426): similar to [https://github.com/apache/spark/blob/bde09039fb2f26eea996733bab11182440d7bbc7/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/joins.scala#L158] ? > 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 > Priority: Minor > Labels: pull-request-available > 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)