You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "zzwqqq (Jira)" <ji...@apache.org> on 2026/07/05 02:14:00 UTC

[jira] [Created] (CALCITE-7642) RelToSqlConverter may generate duplicate output column names for case-insensitive dialects

zzwqqq created CALCITE-7642:
-------------------------------

             Summary: 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


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)