This is an automated email from the ASF dual-hosted git repository. amashenkov pushed a commit to branch ignite-26014 in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit dd2219aab05e52b7780a83199a1da3685cebd6b8 Author: amashenkov <[email protected]> AuthorDate: Tue Jul 29 15:15:25 2025 +0300 wip --- .../org/apache/ignite/internal/sql/engine/ItDmlTest.java | 15 +++++++++++++++ .../sql/engine/prepare/IgniteSqlToRelConvertor.java | 2 -- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItDmlTest.java b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItDmlTest.java index 749a384ab0f..7d04a45eeb6 100644 --- a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItDmlTest.java +++ b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItDmlTest.java @@ -557,6 +557,21 @@ public class ItDmlTest extends BaseSqlIntegrationTest { ); } + @Test + public void testMergeWithSubquery() { + sqlScript("CREATE TABLE t1 (id INT PRIMARY KEY, val1 INT, val2 INT);\n" + + "CREATE TABLE t2 (id INT PRIMARY KEY, val1 INT, val2 INT, val3 INT, val4 INT, val5 INT);\n" + + "\n" + + "MERGE INTO t1 dst\n" + + " USING (\n" + + " SELECT t1.id, t2.val5\n" + + " FROM t1 LEFT JOIN t2 ON t1.id = t2.id\n" + + " ) src\n" + + " ON src.id = dst.id\n" + + " WHEN MATCHED THEN UPDATE SET val1 = src.val5\n" + + " WHEN NOT MATCHED THEN INSERT (id, val1) VALUES (src.id, src.val5)"); + } + /** * Test verifies that scan is executed within provided transaction. */ diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/IgniteSqlToRelConvertor.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/IgniteSqlToRelConvertor.java index 0220e52aa28..cf30a328933 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/IgniteSqlToRelConvertor.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/IgniteSqlToRelConvertor.java @@ -246,8 +246,6 @@ public class IgniteSqlToRelConvertor extends SqlToRelConverter implements Initia RelNode input = insertRel.getInput(0); if (input instanceof LogicalProject) { - level1InsertExprs = ((LogicalProject) input).getProjects(); - } else { // TODO https://issues.apache.org/jira/browse/IGNITE-22293 // convertInsert() may return LogicalTableModify without projection in the input. // As a workaround for this case, we additionally build required column expressions.
