You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ko...@apache.org on 2024/01/10 11:03:47 UTC
(ignite-3) branch main updated: IGNITE-20795: Sql. QuerySplitter does not visit IgniteTableFunctionScan nodes
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 <sh...@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)
---