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) ---