This is an automated email from the ASF dual-hosted git repository.

korlov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new cdb906c550 IGNITE-20795: Sql. QuerySplitter does not visit 
IgniteTableFunctionScan nodes
cdb906c550 is described below

commit cdb906c550838ba4637626627b461bbefded3726
Author: Max Zhuravkov <shh...@gmail.com>
AuthorDate: Wed Jan 10 13:03:41 2024 +0200

    IGNITE-20795: Sql. QuerySplitter does not visit IgniteTableFunctionScan 
nodes
---
 .../sql/engine/exec/mapping/QuerySplitter.java       |  7 +++++++
 .../src/test/resources/mapping/correlated.test       | 20 ++++++++++----------
 .../src/test/resources/mapping/table_functions.test  |  2 +-
 3 files changed, 18 insertions(+), 11 deletions(-)

diff --git 
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/QuerySplitter.java
 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/QuerySplitter.java
index e898e1559a..3dc4100bbf 100644
--- 
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/QuerySplitter.java
+++ 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/QuerySplitter.java
@@ -33,6 +33,7 @@ import 
org.apache.ignite.internal.sql.engine.rel.IgniteReceiver;
 import org.apache.ignite.internal.sql.engine.rel.IgniteRel;
 import org.apache.ignite.internal.sql.engine.rel.IgniteSender;
 import org.apache.ignite.internal.sql.engine.rel.IgniteSystemViewScan;
+import org.apache.ignite.internal.sql.engine.rel.IgniteTableFunctionScan;
 import org.apache.ignite.internal.sql.engine.rel.IgniteTableModify;
 import org.apache.ignite.internal.sql.engine.rel.IgniteTableScan;
 import org.apache.ignite.internal.sql.engine.rel.IgniteTrimExchange;
@@ -195,6 +196,12 @@ public class QuerySplitter extends IgniteRelShuttle {
         return rel.clone(idGenerator.nextId());
     }
 
+    /** {@inheritDoc} */
+    @Override
+    public IgniteRel visit(IgniteTableFunctionScan rel) {
+        return rel.clone(idGenerator.nextId());
+    }
+
     /** {@inheritDoc} */
     @Override
     public IgniteRel visit(IgniteTableModify rel) {
diff --git a/modules/sql-engine/src/test/resources/mapping/correlated.test 
b/modules/sql-engine/src/test/resources/mapping/correlated.test
index 3919943217..22383d089f 100644
--- a/modules/sql-engine/src/test/resources/mapping/correlated.test
+++ b/modules/sql-engine/src/test/resources/mapping/correlated.test
@@ -118,7 +118,7 @@ Fragment#0 root
         IgniteReceiver(sourceFragment=1, exchange=1, distribution=single)
         IgniteSort
           IgniteFilter
-            IgniteTableFunctionScan(source=-1, distribution=single)
+            IgniteTableFunctionScan(source=2, distribution=single)
 
 Fragment#1
   targetNodes: [N0]
@@ -127,25 +127,25 @@ Fragment#1
   tree:
     IgniteSender(targetFragment=0, exchange=1, distribution=single)
       IgniteSort
-        IgniteTableScan(name=PUBLIC.T_N1, source=2, distribution=random)
+        IgniteTableScan(name=PUBLIC.T_N1, source=3, distribution=random)
 ---
 
 N0
 SELECT t.c1 FROM ct_n1 t WHERE t.c1 < 5 AND
 EXISTS (SELECT x FROM table(system_range(t.c1, t.c2)) WHERE mod(x, 2) = 0)
 ---
-Fragment#2 root
+Fragment#3 root
   executionNodes: [N0]
-  remoteFragments: [3]
+  remoteFragments: [4]
   tree:
-    IgniteReceiver(sourceFragment=3, exchange=3, distribution=single)
+    IgniteReceiver(sourceFragment=4, exchange=4, distribution=single)
 
-Fragment#3
+Fragment#4
   targetNodes: [N0]
   executionNodes: [N1]
   tables: [CT_N1]
   tree:
-    IgniteSender(targetFragment=2, exchange=3, distribution=single)
+    IgniteSender(targetFragment=3, exchange=4, distribution=single)
       IgniteProject
         IgniteFilter
           IgniteCorrelatedNestedLoopJoin
@@ -153,7 +153,7 @@ Fragment#3
             IgniteColocatedHashAggregate
               IgniteProject
                 IgniteFilter
-                  IgniteTableFunctionScan(source=-1, distribution=single)
+                  IgniteTableFunctionScan(source=2, distribution=single)
 ---
 
 N0
@@ -171,7 +171,7 @@ Fragment#0 root
           IgniteColocatedHashAggregate
             IgniteProject
               IgniteFilter
-                IgniteTableFunctionScan(source=-1, distribution=single)
+                IgniteTableFunctionScan(source=2, distribution=single)
 
 Fragment#1
   targetNodes: [N0]
@@ -179,5 +179,5 @@ Fragment#1
   tables: [T_N1]
   tree:
     IgniteSender(targetFragment=0, exchange=1, distribution=single)
-      IgniteTableScan(name=PUBLIC.T_N1, source=2, distribution=affinity[table: 
T_N1, columns: [ID]])
+      IgniteTableScan(name=PUBLIC.T_N1, source=3, distribution=affinity[table: 
T_N1, columns: [ID]])
 ---
diff --git a/modules/sql-engine/src/test/resources/mapping/table_functions.test 
b/modules/sql-engine/src/test/resources/mapping/table_functions.test
index 4d85ff544f..39d7198600 100644
--- a/modules/sql-engine/src/test/resources/mapping/table_functions.test
+++ b/modules/sql-engine/src/test/resources/mapping/table_functions.test
@@ -4,5 +4,5 @@ SELECT * FROM TABLE(system_range(1, 5))
 Fragment#0 root
   executionNodes: [N0]
   tree:
-    IgniteTableFunctionScan(source=-1, distribution=single)
+    IgniteTableFunctionScan(source=1, distribution=single)
 ---

Reply via email to