ruanhui created CALCITE-6447: -------------------------------- Summary: extract common expressions for disjunctions in Join Key: CALCITE-6447 URL: https://issues.apache.org/jira/browse/CALCITE-6447 Project: Calcite Issue Type: New Feature Components: core Affects Versions: 1.37.0 Reporter: ruanhui Fix For: 1.37.0
For SQL: {code:java} select * from tbl_a join tbl_b on tbl_a.id = tbl_b.id where (tbl_a.x > 100 and tbl_b.y < 10) or (tbl_a.x > 100 and tbl_b.z > 20){code} we can rewrite it to {code:java} select * from tbl_a join tbl_b on tbl_a.id = tbl_b.id where tbl_a.x > 100 and (tbl_b.y < 10 or tbl_b.z > 20){code} And in this way *tbl_a.x > 100* can be pushed down and it is likely that this will help reduce the amount of data involved in the join. -- This message was sent by Atlassian Jira (v8.20.10#820010)