Skip to content

Commit b758b9f

Browse files
author
krooswu
committed
[CALCITE-7343] RelToSqlConverter generate wrong sql when scalar correlated sub-query in Project
1 parent 883ec9f commit b758b9f

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11814,4 +11814,25 @@ public Sql schema(CalciteAssert.SchemaSpec schemaSpec) {
1181411814
sql(sql).schema(CalciteAssert.SchemaSpec.JDBC_SCOTT).ok(expected);
1181511815
}
1181611816

11817+
@Test void testMultiLevelCrossReference() {
11818+
final String sql = "SELECT \"e\".\"ENAME\",\n"
11819+
+ " (SELECT COUNT(*)\n"
11820+
+ " FROM (SELECT \"d\".\"DEPTNO\", \"d\".\"DNAME\" FROM \"DEPT\" \"d\" "
11821+
+ " JOIN \"BONUS\" \"b\" ON \"d\".\"DEPTNO\" = \"e\".\"DEPTNO\") AS \"mid\"\n"
11822+
+ " WHERE \"mid\".\"DNAME\" = (SELECT \"DNAME\" FROM \"DEPT\" "
11823+
+ " WHERE \"DEPTNO\" = \"e\".\"DEPTNO\" "
11824+
+ " AND \"LOC\" = \"mid\".\"DNAME\"))\n"
11825+
+ "FROM \"EMP\" AS \"e\"";
11826+
final String expected = "SELECT \"ENAME\", (SELECT COUNT(*)\n"
11827+
+ "FROM (SELECT \"DEPT\".\"DEPTNO\", \"DEPT\".\"DNAME\"\n"
11828+
+ "FROM \"SCOTT\".\"DEPT\"\n"
11829+
+ "INNER JOIN \"SCOTT\".\"BONUS\" ON \"DEPT\".\"DEPTNO\" = \"EMP\".\"DEPTNO\") AS \"t\"\n"
11830+
+ "WHERE \"DNAME\" = (SELECT \"DNAME\"\n"
11831+
+ "FROM \"SCOTT\".\"DEPT\"\n"
11832+
+ "WHERE \"DEPTNO\" = \"EMP\".\"DEPTNO\" AND \"LOC\" = \"t\".\"DNAME\"))\n"
11833+
+ "FROM \"SCOTT\".\"EMP\" AS \"EMP\"";
11834+
11835+
sql(sql).schema(CalciteAssert.SchemaSpec.JDBC_SCOTT).ok(expected);
11836+
}
11837+
1181711838
}

0 commit comments

Comments
 (0)