Benchao Li created CALCITE-5201: ----------------------------------- Summary: Improve SemiJoinRule to match more cases for semi join Key: CALCITE-5201 URL: https://issues.apache.org/jira/browse/CALCITE-5201 Project: Calcite Issue Type: Improvement Components: core Affects Versions: 1.30.0 Reporter: Benchao Li Assignee: Benchao Li
As disscussed inĀ CALCITE-5195, the following SQL cannot be transformed to semi join: {code:sql} select * from emp where exists(select * from dept where emp.deptno = dept.deptno and emp.empno = dept.deptno) {code} Currently {{SemiJoinRule}} requires that right child must be an {{Aggregate}}, however, sometimes it's not, e.g. in [{{RelBuilder}}|https://github.com/apache/calcite/blob/300f5200fe50870da418366613df1cd09921b1b6/core/src/main/java/org/apache/calcite/tools/RelBuilder.java#L2241-L2247], if the group keys are unique, then we'll remove the {{Aggregate}}. -- This message was sent by Atlassian Jira (v8.20.7#820007)