[
https://issues.apache.org/jira/browse/CALCITE-6221?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mihai Budiu resolved CALCITE-6221.
----------------------------------
Fix Version/s: 1.39.0
Resolution: Fixed
Fixed in
https://github.com/apache/calcite/commit/a56d069f76b26ef9619968846313d00a34ab8d1d
Thank you for the contribution [~kramerul], and for your persistence.
> JDBC adapter generates invalid query when the same table is joined multiple
> times
> ---------------------------------------------------------------------------------
>
> Key: CALCITE-6221
> URL: https://issues.apache.org/jira/browse/CALCITE-6221
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.36.0
> Environment: Local development
> Reporter: Ulrich Kramer
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.39.0
>
>
> Adding the following unit test to {{JdbcAdapterTest}}
> {code:java}
> @Test void testUnknownColumn() {
> CalciteAssert.model(JdbcTest.SCOTT_MODEL)
> .query("SELECT\n" +
> " \"content-format-owner\",\n" +
> " \"content-owner\"\n" +
> "FROM\n" +
> " (\n" +
> " SELECT\n" +
> " d1.dname AS \"content-format-owner\",\n" +
> " d2.dname || ' ' AS \"content-owner\"\n" +
> " FROM\n" +
> " scott.emp e1\n" +
> " left outer join scott.dept d1 on e1.deptno =
> d1.deptno\n" +
> " left outer join scott.dept d2 on e1.deptno =
> d2.deptno\n" +
> " left outer join scott.emp e2 on e1.deptno =
> e2.deptno\n" +
> " GROUP BY\n" +
> " d1.dname,\n" +
> " d2.dname\n" +
> " )\n" +
> "WHERE\n" +
> " \"content-owner\" IN (?)")
> .runs();
> }
> {code}
> Fails because the following SQL is sent to the underlying database
> {code:SQL}
> SELECT
> "t2"."DNAME" AS "content-format-owner",
> "t2"."DNAME0" || ' ' AS "content-owner"
> FROM
> (
> SELECT
> *
> FROM
> (
> SELECT
> "DEPTNO"
> FROM
> "SCOTT"."EMP"
> ) AS "t"
> LEFT JOIN (
> SELECT
> "DEPTNO",
> "DNAME"
> FROM
> "SCOTT"."DEPT"
> ) AS "t0" ON "t"."DEPTNO" = "t0"."DEPTNO"
> LEFT JOIN (
> SELECT
> "DEPTNO",
> "DNAME"
> FROM
> "SCOTT"."DEPT"
> ) AS "t1" ON "t"."DEPTNO" = "t1"."DEPTNO"
> WHERE
> "t1"."DNAME" || ' ' = ?
> ) AS "t2"
> LEFT JOIN (
> SELECT
> "DEPTNO"
> FROM
> "SCOTT"."EMP"
> ) AS "t3" ON "t2"."DEPTNO" = "t3"."DEPTNO"
> GROUP BY
> "t2"."DNAME",
> "t2"."DNAME0"
> {code}
> The column {{"t2"."DNAME0"}} does not exist.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)