Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.30.0
Description
As disscussed inĀ CALCITE-5195, the following SQL cannot be transformed to semi join:
select * from emp where exists(select * from dept where emp.deptno = dept.deptno and emp.empno = dept.deptno)
Currently SemiJoinRule requires that right child must be an Aggregate, however, sometimes it's not, e.g. in RelBuilder, if the group keys are unique, then we'll remove the Aggregate.
Attachments
Issue Links
- is related to
-
CALCITE-330 Add a rule that converts join-on-aggregate to semi-join
- Closed
- relates to
-
CALCITE-5229 JdbcTest#testDynamicParameterInLimitOffset throws IllegalArgumentException
- In Progress
-
CALCITE-5195 ArrayIndexOutOfBoundsException when inferring more equal conditions from join condition for semi join
- Closed
-
CALCITE-5391 JoinOnUniqueToSemiJoinRule should preserve field names, if possible
- Closed
- links to