[
https://issues.apache.org/jira/browse/CALCITE-6218?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Guillaume Massé updated CALCITE-6218:
-------------------------------------
Description:
input query:
{code:java}
SELECT
"a", "x"
FROM
"myDb"."myTable",
unnest("xs") as "x"; {code}
schema:
[https://github.com/MasseGuillaume/calcite/blob/0126e6cfa47061886b2012ad2d2c32408455ae88/testkit/src/main/java/org/apache/calcite/test/CalciteAssert.java#L2180-L2211]
{code:java}
myTable(
a: BIGINT,
// ...
xs: ARRAY<BIGINT>,
// ...
) {code}
logical plan:
{code:java}
LogicalProject(a=[$0], x=[$6])
LogicalCorrelate(correlation=[$cor0], joinType=[inner],
requiredColumns=[{4}])
LogicalProject(a=[$0], b=[$1.n11.b], c=[$1.n12.c], d=[$2.d], xs=[$3],
e=[$4])
LogicalTableScan(table=[[myDb, myTable]])
Uncollect
LogicalProject(xs=[$cor0.xs])
LogicalValues(tuples=[[{ 0 }]]) {code}
obtained sql:
{code:java}
SELECT
"$cor0"."a",
"$cor0"."xs0" AS "x"
FROM
(
SELECT "a", "n1"."n11"."b", "n1"."n12"."c", "n2"."d", "xs", "e" FROM
"myDb"."myTable"
) AS "$cor0",
LATERAL UNNEST (
SELECT "$cor0"."xs" FROM (VALUES (0)) AS "t" ("ZERO")
) AS "t1" ("xs") AS "t10"
{code}
I would expect the query to be converted to something close to the original
query. Here "xs0" does not exists.
[https://github.com/MasseGuillaume/calcite/commit/0126e6cfa47061886b2012ad2d2c32408455ae88]
was:
input query:
{code:java}
SELECT
"a", "x"
FROM
"myDb"."myTable",
unnest("xs") as "x"; {code}
schema:
[https://github.com/MasseGuillaume/calcite/blob/0126e6cfa47061886b2012ad2d2c32408455ae88/testkit/src/main/java/org/apache/calcite/test/CalciteAssert.java#L2180-L2211]
{code:java}
myTable(
a: BIGINT,
// ...
xs: ARRAY<BIGINT>,
// ...
) {code}
logical plan:
{code:java}
LogicalProject(a=[$0], x=[$6])
LogicalCorrelate(correlation=[$cor0], joinType=[inner],
requiredColumns=[{4}])
LogicalProject(a=[$0], b=[$1.n11.b], c=[$1.n12.c], d=[$2.d], xs=[$3],
e=[$4])
LogicalTableScan(table=[[myDb, myTable]])
Uncollect
LogicalProject(xs=[$cor0.xs])
LogicalValues(tuples=[[{ 0 }]]) {code}
obtained sql:
{code:java}
SELECT
"$cor0"."a",
"$cor0"."xs0" AS "x"
FROM (
SELECT "a", "n1"."n11"."b", "n1"."n12"."c", "n2"."d", "xs", "e" FROM
"myDb"."myTable"
) AS "$cor0",
LATERAL UNNEST (
SELECT "$cor0"."xs" FROM (VALUES (0)) AS "t" ("ZERO")
) AS "t1" ("xs") AS "t10" {code}
I would expect the query to be converted to something close to the original
query. Here "xs0" does not exists.
[https://github.com/MasseGuillaume/calcite/commit/0126e6cfa47061886b2012ad2d2c32408455ae88]
> RelToSqlConverter fails to convert correlated lateral joins
> -----------------------------------------------------------
>
> Key: CALCITE-6218
> URL: https://issues.apache.org/jira/browse/CALCITE-6218
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.36.0
> Reporter: Guillaume Massé
> Priority: Major
>
>
> input query:
> {code:java}
> SELECT
> "a", "x"
> FROM
> "myDb"."myTable",
> unnest("xs") as "x"; {code}
> schema:
> [https://github.com/MasseGuillaume/calcite/blob/0126e6cfa47061886b2012ad2d2c32408455ae88/testkit/src/main/java/org/apache/calcite/test/CalciteAssert.java#L2180-L2211]
> {code:java}
> myTable(
> a: BIGINT,
> // ...
> xs: ARRAY<BIGINT>,
> // ...
> ) {code}
> logical plan:
> {code:java}
> LogicalProject(a=[$0], x=[$6])
> LogicalCorrelate(correlation=[$cor0], joinType=[inner],
> requiredColumns=[{4}])
> LogicalProject(a=[$0], b=[$1.n11.b], c=[$1.n12.c], d=[$2.d], xs=[$3],
> e=[$4])
> LogicalTableScan(table=[[myDb, myTable]])
> Uncollect
> LogicalProject(xs=[$cor0.xs])
> LogicalValues(tuples=[[{ 0 }]]) {code}
> obtained sql:
>
> {code:java}
> SELECT
> "$cor0"."a",
> "$cor0"."xs0" AS "x"
> FROM
> (
> SELECT "a", "n1"."n11"."b", "n1"."n12"."c", "n2"."d", "xs", "e" FROM
> "myDb"."myTable"
> ) AS "$cor0",
> LATERAL UNNEST (
> SELECT "$cor0"."xs" FROM (VALUES (0)) AS "t" ("ZERO")
> ) AS "t1" ("xs") AS "t10"
> {code}
> I would expect the query to be converted to something close to the original
> query. Here "xs0" does not exists.
>
> [https://github.com/MasseGuillaume/calcite/commit/0126e6cfa47061886b2012ad2d2c32408455ae88]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)