Haisheng Yuan created CALCITE-2948: -------------------------------------- Summary: SqlToRelConverter generates complicated logical plan for subquery Key: CALCITE-2948 URL: https://issues.apache.org/jira/browse/CALCITE-2948 Project: Calcite Issue Type: Bug Components: core Reporter: Haisheng Yuan
Repro: Add the following test to SqlToRelConverterTest.java. {code: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(); } {code} Plan: {code:java} 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]]) {code} One join would suffice. -- This message was sent by Atlassian JIRA (v7.6.3#76005)