Details
-
Improvement
-
Status: Reopened
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
Repro:
Add the following test to SqlToRelConverterTest.java.
@Test public void testSubQueryIN() { final String sql = "select deptno\n" + "from EMP e\n" + "where deptno in (select deptno\n" + "from EMP where empno=e.empno+1)"; sql(sql).ok(); }
Plan:
LogicalProject(DEPTNO=[$7]) LogicalJoin(condition=[AND(=($0, $10), =($7, $9))], joinType=[inner]) LogicalTableScan(table=[[CATALOG, SALES, EMP]]) LogicalAggregate(group=[{0, 1}]) LogicalProject(DEPTNO=[$7], EMPNO0=[$9]) LogicalJoin(condition=[=($0, +($9, 1))], joinType=[inner]) LogicalTableScan(table=[[CATALOG, SALES, EMP]]) LogicalProject(EMPNO=[$0]) LogicalTableScan(table=[[CATALOG, SALES, EMP]])
One join would suffice.
Attachments
Issue Links
- relates to
-
CALCITE-1624 Inefficient plan for NOT IN correlated subqueries
- Closed
- links to