[
https://issues.apache.org/jira/browse/CALCITE-7642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18093847#comment-18093847
]
Zhen Chen commented on CALCITE-7642:
------------------------------------
I think I understand what you mean. If a column name in the inner query isn't
explicitly specified, it should be assigned a unique name. If that is the case,
please update the Jira description so others can understand your point.
Regarding your example:
select "id" from (
SELECT "t"."id", "t0"."id" as "id"
FROM (VALUES (1)) AS "t" ("id"),
(VALUES (1)) AS "t0" ("id")
) t;
I consider this valid; I specified two "id" columns in the inner query and then
projected "id"—this is a scenario where an error *should* occur.
> RelToSqlConverter may generate duplicate output column names for
> case-insensitive dialects
> ------------------------------------------------------------------------------------------
>
> Key: CALCITE-7642
> URL: https://issues.apache.org/jira/browse/CALCITE-7642
> Project: Calcite
> Issue Type: Bug
> Components: core
> Reporter: zzwqqq
> Assignee: zzwqqq
> Priority: Major
> Labels: pull-request-available
>
> RelToSqlConverter can emit output column names that are distinct in a row
> type but not distinct for the target dialect.
> Reproducer:
> Use a case-insensitive PostgreSQL dialect:
> {code:java}
> new PostgresqlSqlDialect(
> PostgresqlSqlDialect.DEFAULT_CONTEXT.withCaseSensitive(false)){code}
> Input SQL:
> {code:sql}
> SELECT *
> FROM (VALUES (1)) AS "t" ("id")
> JOIN (VALUES (1)) AS "t0" ("ID") ON TRUE
>
> {code}
> Current output:
> {code:java}
> SELECT "t"."id", "t0"."ID"
> FROM (VALUES (1)) AS "t" ("id"),
> (VALUES (1)) AS "t0" ("ID"){code}
> The output column names are "id" and "ID", which are duplicates for a
> case-insensitive dialect.
> Expected output:
> {code:sql}
> SELECT "t"."id", "t0"."ID" AS "ID0"
> FROM (VALUES (1)) AS "t" ("id"),
> (VALUES (1)) AS "t0" ("ID"){code}
> I think RelToSqlConverter should uniquify generated output names using the
> target dialect's case-sensitivity.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)