Konstantin Orlov created IGNITE-26014:
-----------------------------------------

             Summary: Sql. ArrayIndexOutOfBoundsException when converting MERGE 
with join
                 Key: IGNITE-26014
                 URL: https://issues.apache.org/jira/browse/IGNITE-26014
             Project: Ignite
          Issue Type: Bug
          Components: sql ai3
            Reporter: Konstantin Orlov


Here is the reproducer:
{code}
CREATE TABLE t1 (id INT PRIMARY KEY, val1 INT, val2 INT);
CREATE TABLE t2 (id INT PRIMARY KEY, val1 INT, val2 INT, val3 INT, val4 INT, 
val5 INT);

MERGE INTO t1 dst
 USING (
    SELECT t1.id, t2.val5
      FROM t1 LEFT JOIN t2 ON t1.id = t2.id
 ) src
   ON src.id = dst.id
 WHEN MATCHED THEN UPDATE SET val1 = src.val5
 WHEN NOT MATCHED THEN INSERT (id, val1) VALUES (src.id, src.val5)
{code}

The script above fails with
{code}
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 20 out of bounds for 
length 14
        at 
org.apache.calcite.runtime.PairLists$ArrayImmutablePairList.get(PairLists.java:573)
        at 
org.apache.calcite.runtime.PairLists$ArrayImmutablePairList.get(PairLists.java:550)
        at org.apache.calcite.tools.RelBuilder.inferAlias(RelBuilder.java:2421)
        at org.apache.calcite.tools.RelBuilder.project_(RelBuilder.java:2168)
        at org.apache.calcite.tools.RelBuilder.project(RelBuilder.java:2013)
        at org.apache.calcite.tools.RelBuilder.project(RelBuilder.java:1996)
        at org.apache.calcite.tools.RelBuilder.project(RelBuilder.java:1968)
        at org.apache.calcite.tools.RelBuilder.project(RelBuilder.java:1957)
        at 
org.apache.ignite.internal.sql.engine.prepare.IgniteSqlToRelConvertor.convertMerge(IgniteSqlToRelConvertor.java:297)
        at 
org.apache.ignite.internal.sql.engine.prepare.IgniteSqlToRelConvertor.convertQueryRecursive(IgniteSqlToRelConvertor.java:81)
{code}



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

Reply via email to