Julian Hyde created CALCITE-6833: ------------------------------------ Summary: JDBC adapter generates invalid table alias for semi-join in UNION Key: CALCITE-6833 URL: https://issues.apache.org/jira/browse/CALCITE-6833 Project: Calcite Issue Type: Bug Reporter: Julian Hyde
Following CALCITE-5395, the test [RelToSqlConverterTest.testUnionUnderSemiJoinNode|https://github.com/apache/calcite/blob/2ddfb0eb00bd87b040e4ca743a7451034dd28f98/core/src/test/java/org/apache/calcite/rel/rel2sql/RelToSqlConverterTest.java#L1783], generates the following query, which is invalid. {code} SELECT "DEPTNO" FROM (SELECT * FROM (SELECT * FROM "scott"."EMP" UNION ALL SELECT * FROM "scott"."EMP") WHERE EXISTS (SELECT 1 FROM "scott"."DEPT" WHERE "t"."DEPTNO" = "DEPT"."DEPTNO")) AS "t"; {code} The query is invalid because the table alias "t" is used in a scope where it is not visible. I suspect that {{AS "t"}} should be at the end of line 7, not line 11. {{RelToSqlConverterTest}} correctly gives a validation error {noformat} >From line 10, column 7 to line 10, column 9: Table 't' not found {noformat} Validation is only now enabled, during development of a fix for CALCITE-5529. -- This message was sent by Atlassian Jira (v8.20.10#820010)