[ 
https://issues.apache.org/jira/browse/IGNITE-25896?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrey Mashenkov reassigned IGNITE-25896:
-----------------------------------------

    Assignee: Andrey Mashenkov

> SQL: "field names not distinct" on a join operation when -ea JVM option is set
> ------------------------------------------------------------------------------
>
>                 Key: IGNITE-25896
>                 URL: https://issues.apache.org/jira/browse/IGNITE-25896
>             Project: Ignite
>          Issue Type: Bug
>          Components: sql ai3
>    Affects Versions: 3.1
>            Reporter: Andrey Khitrin
>            Assignee: Andrey Mashenkov
>            Priority: Critical
>              Labels: ignite-3
>         Attachments: ignite3db-0.log, reproduce.sql
>
>
> Steps to reproduce:
> 1. Set the following option in `etc/vars.env`: `IGNITE3_EXTRA_JVM_ARGS="-ea"`.
> 2. Start and initialize a single-node cluster.
> 3. Run a provided SQL file via CLI: `ignite3 sql --file reproduce.sql`
> A file contains the following correct SQL query in the last line:
> {code:sql}
> SELECT C.NAME, P.NAME FROM PUBLIC.CAR AS C LEFT JOIN PUBLIC.PARKING AS P ON 
> C.PARKINGID = P.ID ORDER BY C.ID, P.NAME;
> {code}
> Expected result: a file is executed successfully (like it does when we use a 
> default empty value for `IGNITE3_EXTRA_JVM_ARGS`).
> Actual result: error when a query is executed:
> {code}
> SQL query execution error
> Failed to fetch query results [curId=123]. Error message: field names not 
> distinct: RecordType(VARCHAR(255) NAME, VARCHAR(255) NAME)
> {code}
> Stackrtace on the server side:
> {code}
> 2025-07-14 13:26:33:101 +0500 
> [INFO][%defaultNode%sql-planning-pool-3][JdbcQueryCursorHandlerImpl] Failed 
> to fetch query results [curId=123].
> org.apache.ignite.sql.SqlException: IGN-CMN-65535 field names not distinct: 
> RecordType(VARCHAR(255) NAME, VARCHAR(255) NAME) TraceId:bb336ea9
>         at 
> org.apache.ignite.internal.lang.SqlExceptionMapperUtil.mapToPublicSqlException(SqlExceptionMapperUtil.java:73)
>         at 
> org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.lambda$prepareAsync$1(PrepareServiceImpl.java:296)
>         at 
> java.base/java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:990)
>         at 
> java.base/java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:974)
>         at 
> java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
>         at 
> java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1773)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
>         at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
>         at java.base/java.lang.Thread.run(Thread.java:840)
> Caused by: org.apache.ignite.lang.IgniteException: IGN-CMN-65535 field names 
> not distinct: RecordType(VARCHAR(255) NAME, VARCHAR(255) NAME) 
> TraceId:bb336ea9
>         at 
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.lambda$mapToPublicException$2(IgniteExceptionMapperUtil.java:88)
>         at 
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapCheckingResultIsPublic(IgniteExceptionMapperUtil.java:141)
>         at 
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:110)
>         at 
> org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:88)
>         at 
> org.apache.ignite.internal.lang.SqlExceptionMapperUtil.mapToPublicSqlException(SqlExceptionMapperUtil.java:63)
>         ... 8 more
> Caused by: java.lang.AssertionError: field names not distinct: 
> RecordType(VARCHAR(255) NAME, VARCHAR(255) NAME)
>         at org.apache.calcite.util.Litmus.lambda$static$0(Litmus.java:31)
>         at org.apache.calcite.rel.core.Project.isValid(Project.java:267)
>         at org.apache.calcite.rel.core.Project.<init>(Project.java:106)
>         at org.apache.calcite.rel.core.Project.<init>(Project.java:117)
>         at 
> org.apache.ignite.internal.sql.engine.rel.IgniteProject.<init>(IgniteProject.java:76)
>         at 
> org.apache.ignite.internal.sql.engine.prepare.PlannerHelper.optimize(PlannerHelper.java:210)
>         at 
> org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.doOptimize(PrepareServiceImpl.java:726)
>         at 
> org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.lambda$prepareQuery$5(PrepareServiceImpl.java:439)
>         at 
> java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
>         ... 3 more
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to