This is an automated email from the ASF dual-hosted git repository. ppa 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 2b85cdb332 IGNITE-21373 Sql. Get rid of the Ignite prefix in SQL operators (#3336) 2b85cdb332 is described below commit 2b85cdb3329dda1cca9683c60a346e80bd7e4d73 Author: Pavel Pereslegin <xxt...@gmail.com> AuthorDate: Wed Mar 6 16:14:57 2024 +0300 IGNITE-21373 Sql. Get rid of the Ignite prefix in SQL operators (#3336) --- .../ignite/internal/SqlEngineModuleArchTest.java | 62 +++++++++++ .../internal/sql/engine/ItCorrelatesTest.java | 2 +- .../ignite/internal/sql/engine/ItDmlTest.java | 10 +- .../internal/sql/engine/ItKeyValueGetTest.java | 14 +-- .../internal/sql/engine/ItKeyValuePutTest.java | 8 +- .../internal/sql/engine/ItMixedQueriesTest.java | 12 +-- .../internal/sql/engine/ItSecondaryIndexTest.java | 16 +-- .../engine/rel/IgniteCorrelatedNestedLoopJoin.java | 8 ++ .../internal/sql/engine/rel/IgniteExchange.java | 8 ++ .../internal/sql/engine/rel/IgniteFilter.java | 7 ++ .../sql/engine/rel/IgniteHashIndexSpool.java | 8 ++ .../internal/sql/engine/rel/IgniteIndexScan.java | 8 ++ .../internal/sql/engine/rel/IgniteKeyValueGet.java | 8 ++ .../sql/engine/rel/IgniteKeyValueModify.java | 8 ++ .../internal/sql/engine/rel/IgniteLimit.java | 8 ++ .../internal/sql/engine/rel/IgniteMergeJoin.java | 8 ++ .../sql/engine/rel/IgniteNestedLoopJoin.java | 8 ++ .../internal/sql/engine/rel/IgniteProject.java | 8 ++ .../internal/sql/engine/rel/IgniteReceiver.java | 8 ++ .../internal/sql/engine/rel/IgniteSender.java | 8 ++ .../ignite/internal/sql/engine/rel/IgniteSort.java | 8 ++ .../sql/engine/rel/IgniteSortedIndexSpool.java | 8 ++ .../sql/engine/rel/IgniteSystemViewScan.java | 7 ++ .../sql/engine/rel/IgniteTableFunctionScan.java | 8 ++ .../internal/sql/engine/rel/IgniteTableModify.java | 7 ++ .../internal/sql/engine/rel/IgniteTableScan.java | 7 ++ .../internal/sql/engine/rel/IgniteTableSpool.java | 8 ++ .../sql/engine/rel/IgniteTrimExchange.java | 8 ++ .../internal/sql/engine/rel/IgniteUnionAll.java | 8 ++ .../internal/sql/engine/rel/IgniteValues.java | 8 ++ .../rel/agg/IgniteColocatedHashAggregate.java | 7 ++ .../rel/agg/IgniteColocatedSortAggregate.java | 7 ++ .../sql/engine/rel/agg/IgniteMapHashAggregate.java | 7 ++ .../sql/engine/rel/agg/IgniteMapSortAggregate.java | 7 ++ .../engine/rel/agg/IgniteReduceHashAggregate.java | 8 ++ .../engine/rel/agg/IgniteReduceSortAggregate.java | 8 ++ .../engine/rel/logical/IgniteLogicalIndexScan.java | 8 ++ .../rel/logical/IgniteLogicalSystemViewScan.java | 7 ++ .../engine/rel/logical/IgniteLogicalTableScan.java | 8 ++ .../engine/rel/set/IgniteColocatedIntersect.java | 7 ++ .../sql/engine/rel/set/IgniteColocatedMinus.java | 7 ++ .../sql/engine/rel/set/IgniteMapIntersect.java | 8 ++ .../sql/engine/rel/set/IgniteMapMinus.java | 8 ++ .../sql/engine/rel/set/IgniteReduceIntersect.java | 7 ++ .../sql/engine/rel/set/IgniteReduceMinus.java | 8 ++ .../sql/engine/exec/mapping/FragmentPrinter.java | 2 +- .../internal/sql/engine/planner/PlannerTest.java | 10 +- .../src/test/resources/mapping/correlated.test | 118 ++++++++++----------- .../sql-engine/src/test/resources/mapping/dml.test | 52 ++++----- .../src/test/resources/mapping/merge_join.test | 52 ++++----- .../src/test/resources/mapping/set_ops.test | 26 ++--- .../src/test/resources/mapping/table_affinity.test | 24 ++--- .../test/resources/mapping/table_functions.test | 2 +- .../src/test/resources/mapping/table_identity.test | 56 +++++----- .../resources/mapping/table_identity_single.test | 48 ++++----- .../src/test/resources/mapping/table_single.test | 44 ++++---- .../resources/mapping/test_partition_pruning.test | 56 +++++----- .../src/test/resources/mapping/union.test | 60 +++++------ .../src/test/resources/mapping/values.test | 4 +- .../internal/sql/engine/util/QueryChecker.java | 18 ++-- 60 files changed, 671 insertions(+), 317 deletions(-) diff --git a/modules/arch-test/src/test/java/org/apache/ignite/internal/SqlEngineModuleArchTest.java b/modules/arch-test/src/test/java/org/apache/ignite/internal/SqlEngineModuleArchTest.java new file mode 100644 index 0000000000..00ff60f4e5 --- /dev/null +++ b/modules/arch-test/src/test/java/org/apache/ignite/internal/SqlEngineModuleArchTest.java @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal; + +import com.tngtech.archunit.core.domain.JavaClass; +import com.tngtech.archunit.core.domain.JavaModifier; +import com.tngtech.archunit.core.importer.ImportOption; +import com.tngtech.archunit.junit.AnalyzeClasses; +import com.tngtech.archunit.junit.ArchTest; +import com.tngtech.archunit.lang.ArchCondition; +import com.tngtech.archunit.lang.ArchRule; +import com.tngtech.archunit.lang.ConditionEvents; +import com.tngtech.archunit.lang.SimpleConditionEvent; +import com.tngtech.archunit.lang.syntax.ArchRuleDefinition; +import org.apache.calcite.rel.RelNode; +import org.apache.ignite.internal.sql.engine.rel.IgniteRel; +import org.apache.ignite.lang.LocationProvider.RootLocationProvider; + +/** + * Checks that all non-abstract descendants of {@link IgniteRel} override {@link RelNode#getRelTypeName()}. + */ +@AnalyzeClasses( + packages = "org.apache.ignite.internal.sql.engine.rel", + importOptions = ImportOption.DoNotIncludeTests.class, + locations = RootLocationProvider.class) +public class SqlEngineModuleArchTest { + @ArchTest + public static final ArchRule ALL_REL_NODES_DEFINE_REL_TYPE_NAME = ArchRuleDefinition.classes() + .that() + .implement(IgniteRel.class) + .and() + .doNotHaveModifier(JavaModifier.ABSTRACT) + .should(new ArchCondition<>("override org.apache.calcite.rel.RelNode.getRelTypeName") { + @Override + public void check(JavaClass javaClass, ConditionEvents conditionEvents) { + boolean overrided = javaClass.getMethods().stream() + .anyMatch(it -> "getRelTypeName".equals(it.getName())); + + if (!overrided) { + conditionEvents.add(SimpleConditionEvent.violated( + javaClass, + javaClass.getName() + " must override method 'getRelTypeName()'" + )); + } + } + }); +} diff --git a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItCorrelatesTest.java b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItCorrelatesTest.java index 602a5c3398..bfb84bc68b 100644 --- a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItCorrelatesTest.java +++ b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItCorrelatesTest.java @@ -43,7 +43,7 @@ public class ItCorrelatesTest extends BaseSqlIntegrationTest { sql("INSERT INTO test_tbl VALUES (1, 1)"); assertQuery("SELECT " + DISABLED_JOIN_RULES + " t0.v, (SELECT t0.v + t1.v FROM test_tbl t1) AS j FROM test_tbl t0") - .matches(containsSubPlan("IgniteCorrelatedNestedLoopJoin")) + .matches(containsSubPlan("CorrelatedNestedLoopJoin")) .returns(1, 2) .check(); } 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 46b903863e..c7f82938cb 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 @@ -738,14 +738,14 @@ public class ItDmlTest extends BaseSqlIntegrationTest { for (int i = 0; i < tableSize; i++) { assertQuery("INSERT INTO test1 VALUES (?, ?, ?)") .withParams(i, i, i) - .matches(containsSubPlan("IgniteKeyValueModify")) + .matches(containsSubPlan("KeyValueModify")) .returns(1L) .check(); } // multistep insert assertQuery("INSERT INTO test2 SELECT * FROM test1") - .matches(containsSubPlan("IgniteTableModify")) + .matches(containsSubPlan("TableModify")) .returns((long) tableSize) .check(); @@ -760,7 +760,7 @@ public class ItDmlTest extends BaseSqlIntegrationTest { // multistep delete assertQuery("DELETE FROM test2") - .matches(containsSubPlan("IgniteTableModify")) + .matches(containsSubPlan("TableModify")) .returns((long) tableSize) .check(); @@ -768,7 +768,7 @@ public class ItDmlTest extends BaseSqlIntegrationTest { for (int i = 0; i < tableSize; i++) { assertQuery("SELECT * FROM test1 WHERE id1=? AND id2=?") .withParams(i, i) - .matches(containsSubPlan("IgniteKeyValueGet")) + .matches(containsSubPlan("KeyValueGet")) .returns(i, i, i) .check(); } @@ -778,7 +778,7 @@ public class ItDmlTest extends BaseSqlIntegrationTest { for (int i = 0; i < tableSize; i++) { assertQuery("DELETE FROM test1 WHERE id1=? AND id2=?") .withParams(i, i) - .matches(containsSubPlan("IgniteTableModify")) + .matches(containsSubPlan("TableModify")) .returns(1L) .check(); } diff --git a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItKeyValueGetTest.java b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItKeyValueGetTest.java index e4718caccc..4dace7a946 100644 --- a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItKeyValueGetTest.java +++ b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItKeyValueGetTest.java @@ -54,7 +54,7 @@ public class ItKeyValueGetTest extends BaseSqlIntegrationTest { int key = randomKey(); assertQuery("SELECT * FROM simple_key WHERE id = ?") - .matches(containsSubPlan("IgniteKeyValueGet")) + .matches(containsSubPlan("KeyValueGet")) .withParams(key) .returns(key, key) .check(); @@ -65,7 +65,7 @@ public class ItKeyValueGetTest extends BaseSqlIntegrationTest { int key = randomKey(); assertQuery("SELECT * FROM complex_key_normal_order WHERE id1 = ? AND id2 = ?") - .matches(containsSubPlan("IgniteKeyValueGet")) + .matches(containsSubPlan("KeyValueGet")) .withParams(key, 2 * key) .returns(key, 2 * key, key) .check(); @@ -76,7 +76,7 @@ public class ItKeyValueGetTest extends BaseSqlIntegrationTest { int key = randomKey(); assertQuery("SELECT * FROM complex_key_revers_order WHERE id1 = ? AND id2 = ?") - .matches(containsSubPlan("IgniteKeyValueGet")) + .matches(containsSubPlan("KeyValueGet")) .withParams(key, 2 * key) .returns(key, 2 * key, key) .check(); @@ -85,13 +85,13 @@ public class ItKeyValueGetTest extends BaseSqlIntegrationTest { @Test void lookupBySimpleKeyWithPostFiltration() { assertQuery("SELECT * FROM simple_key WHERE id = ? AND val > 5") - .matches(containsSubPlan("IgniteKeyValueGet")) + .matches(containsSubPlan("KeyValueGet")) .withParams(1) .returnNothing() .check(); assertQuery("SELECT * FROM simple_key WHERE id = ? AND val > 5") - .matches(containsSubPlan("IgniteKeyValueGet")) + .matches(containsSubPlan("KeyValueGet")) .withParams(6) .returns(6, 6) .check(); @@ -102,13 +102,13 @@ public class ItKeyValueGetTest extends BaseSqlIntegrationTest { int key = randomKey(); assertQuery("SELECT val FROM simple_key WHERE id = ?") - .matches(containsSubPlan("IgniteKeyValueGet")) + .matches(containsSubPlan("KeyValueGet")) .withParams(key) .returns(key) .check(); assertQuery("SELECT id, val * 10 FROM simple_key WHERE id = ?") - .matches(containsSubPlan("IgniteKeyValueGet")) + .matches(containsSubPlan("KeyValueGet")) .withParams(key) .returns(key, key * 10) .check(); diff --git a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItKeyValuePutTest.java b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItKeyValuePutTest.java index c10bcf1a7b..21b003d0b4 100644 --- a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItKeyValuePutTest.java +++ b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItKeyValuePutTest.java @@ -55,7 +55,7 @@ public class ItKeyValuePutTest extends BaseSqlIntegrationTest { void insertConstantSimpleKey() { for (int i = 0; i < TABLE_SIZE; i++) { assertQuery(format("INSERT INTO simple_key VALUES ({}, {})", i, i)) - .matches(containsSubPlan("IgniteKeyValueModify")) + .matches(containsSubPlan("KeyValueModify")) .returns(1L) .check(); } @@ -72,7 +72,7 @@ public class ItKeyValuePutTest extends BaseSqlIntegrationTest { void insertDynamicParamsSimpleKey() { for (int i = 0; i < TABLE_SIZE; i++) { assertQuery("INSERT INTO simple_key VALUES (?, ?)") - .matches(containsSubPlan("IgniteKeyValueModify")) + .matches(containsSubPlan("KeyValueModify")) .withParams(i, i) .returns(1L) .check(); @@ -90,7 +90,7 @@ public class ItKeyValuePutTest extends BaseSqlIntegrationTest { void insertSimpleKeyWithCast() { for (int i = 0; i < TABLE_SIZE; i++) { assertQuery("INSERT INTO simple_key VALUES (?, ?)") - .matches(containsSubPlan("IgniteKeyValueModify")) + .matches(containsSubPlan("KeyValueModify")) .withParams((byte) i, (byte) i) .returns(1L) .check(); @@ -108,7 +108,7 @@ public class ItKeyValuePutTest extends BaseSqlIntegrationTest { void insertComplexKey() { for (int i = 0; i < TABLE_SIZE; i++) { assertQuery("INSERT INTO complex_key VALUES (?, ?, ?)") - .matches(containsSubPlan("IgniteKeyValueModify")) + .matches(containsSubPlan("KeyValueModify")) .withParams(i, 2 * i, i) .returns(1L) .check(); diff --git a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMixedQueriesTest.java b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMixedQueriesTest.java index 9d391f7800..05830a7a7a 100644 --- a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMixedQueriesTest.java +++ b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMixedQueriesTest.java @@ -298,7 +298,7 @@ public class ItMixedQueriesTest extends BaseSqlIntegrationTest { assertQuery("select c1 from test_tbl ORDER BY c1") .matches(containsIndexScan("PUBLIC", "TEST_TBL", "IDX_ASC")) - .matches(not(containsSubPlan("IgniteSort"))) + .matches(not(containsSubPlan("Sort"))) .ordered() .returns(1) .returns(2) @@ -307,7 +307,7 @@ public class ItMixedQueriesTest extends BaseSqlIntegrationTest { .check(); assertQuery("select c1 from test_tbl ORDER BY c1 asc nulls first") - .matches(containsSubPlan("IgniteSort")) + .matches(containsSubPlan("Sort")) .ordered() .returns(null) .returns(1) @@ -317,7 +317,7 @@ public class ItMixedQueriesTest extends BaseSqlIntegrationTest { assertQuery("select c1 from test_tbl ORDER BY c1 asc nulls last") .matches(containsIndexScan("PUBLIC", "TEST_TBL", "IDX_ASC")) - .matches(not(containsSubPlan("IgniteSort"))) + .matches(not(containsSubPlan("Sort"))) .ordered() .returns(1) .returns(2) @@ -327,7 +327,7 @@ public class ItMixedQueriesTest extends BaseSqlIntegrationTest { assertQuery("select c1 from test_tbl ORDER BY c1 desc") .matches(containsIndexScan("PUBLIC", "TEST_TBL", "IDX_DESC")) - .matches(not(containsSubPlan("IgniteSort"))) + .matches(not(containsSubPlan("Sort"))) .ordered() .returns(null) .returns(3) @@ -337,7 +337,7 @@ public class ItMixedQueriesTest extends BaseSqlIntegrationTest { assertQuery("select c1 from test_tbl ORDER BY c1 desc nulls first") .matches(containsIndexScan("PUBLIC", "TEST_TBL", "IDX_DESC")) - .matches(not(containsSubPlan("IgniteSort"))) + .matches(not(containsSubPlan("Sort"))) .ordered() .returns(null) .returns(3) @@ -346,7 +346,7 @@ public class ItMixedQueriesTest extends BaseSqlIntegrationTest { .check(); assertQuery("select c1 from test_tbl ORDER BY c1 desc nulls last") - .matches(containsSubPlan("IgniteSort")) + .matches(containsSubPlan("Sort")) .ordered() .returns(3) .returns(2) diff --git a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSecondaryIndexTest.java b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSecondaryIndexTest.java index 64c428e1a4..1e40ffc988 100644 --- a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSecondaryIndexTest.java +++ b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItSecondaryIndexTest.java @@ -122,7 +122,7 @@ public class ItSecondaryIndexTest extends BaseSqlIntegrationTest { public void testIndexLoopJoin() { assertQuery("SELECT /*+ DISABLE_RULE('MergeJoinConverter', 'NestedLoopJoinConverter') */ d1.name, d2.name " + "FROM Developer d1, Developer d2 WHERE d1.id = d2.id") - .matches(containsSubPlan("IgniteCorrelatedNestedLoopJoin")) + .matches(containsSubPlan("CorrelatedNestedLoopJoin")) .returns("Bach", "Bach") .returns("Beethoven", "Beethoven") .returns("Mozart", "Mozart") @@ -186,7 +186,7 @@ public class ItSecondaryIndexTest extends BaseSqlIntegrationTest { @Test public void testKeyEqualsFilter() { assertQuery("SELECT * FROM Developer WHERE id=2") - .matches(containsSubPlan("IgniteKeyValueGet(table=[[PUBLIC, DEVELOPER]]")) + .matches(containsSubPlan("KeyValueGet(table=[[PUBLIC, DEVELOPER]]")) .returns(2, "Beethoven", 2, "Vienna", 44) .check(); } @@ -581,7 +581,7 @@ public class ItSecondaryIndexTest extends BaseSqlIntegrationTest { public void testOrderByKey() { assertQuery("SELECT * FROM Developer WHERE id<=4 ORDER BY id") .matches(containsTableScan("PUBLIC", "DEVELOPER")) - .matches(containsSubPlan("IgniteSort")) + .matches(containsSubPlan("Sort")) .returns(1, "Mozart", 3, "Vienna", 33) .returns(2, "Beethoven", 2, "Vienna", 44) .returns(3, "Bach", 1, "Leipzig", 55) @@ -594,7 +594,7 @@ public class ItSecondaryIndexTest extends BaseSqlIntegrationTest { public void testOrderByDepId() { assertQuery("SELECT depid FROM Developer ORDER BY depId") .matches(containsIndexScan("PUBLIC", "DEVELOPER", DEPID_IDX)) - .matches(not(containsSubPlan("IgniteSort"))) + .matches(not(containsSubPlan("Sort"))) .returns(1) // Bach .returns(2) // Beethoven or Strauss .returns(2) // Strauss or Beethoven @@ -629,7 +629,7 @@ public class ItSecondaryIndexTest extends BaseSqlIntegrationTest { assertQuery("SELECT * FROM Developer ORDER BY name, city") .matches(containsAnyScan("PUBLIC", "DEVELOPER")) .matches(containsAnyScan("PUBLIC", "DEVELOPER")) - .matches(containsSubPlan("IgniteSort")) + .matches(containsSubPlan("Sort")) .returns(18, "Arnalds", 17, "", -1) .returns(3, "Bach", 1, "Leipzig", 55) .returns(2, "Beethoven", 2, "Vienna", 44) @@ -661,7 +661,7 @@ public class ItSecondaryIndexTest extends BaseSqlIntegrationTest { public void testOrderByNameCityDesc() { assertQuery("SELECT ID, NAME, DEPID, CITY, AGE FROM Developer ORDER BY name DESC, city DESC") .matches(containsIndexScan("PUBLIC", "DEVELOPER", NAME_CITY_IDX)) - .matches(not(containsSubPlan("IgniteSort"))) + .matches(not(containsSubPlan("Sort"))) .returns(16, "Zimmer", 15, "", -1) .returns(19, "Yiruma", 18, "", -1) .returns(7, "Verdy", 6, "Rankola", 88) @@ -693,7 +693,7 @@ public class ItSecondaryIndexTest extends BaseSqlIntegrationTest { public void testOrderByNoIndexedColumn() { assertQuery("SELECT * FROM Developer ORDER BY age DESC, depid ASC") .matches(containsAnyProject("PUBLIC", "DEVELOPER")) - .matches(containsSubPlan("IgniteSort")) + .matches(containsSubPlan("Sort")) .returns(8, "Stravinsky", 7, "Spt", 89) .returns(7, "Verdy", 6, "Rankola", 88) .returns(5, "Vagner", 4, "Leipzig", 70) @@ -912,7 +912,7 @@ public class ItSecondaryIndexTest extends BaseSqlIntegrationTest { assertQuery(sql) .disableRules("NestedLoopJoinConverter", "MergeJoinConverter") - .matches(containsSubPlan("IgniteCorrelatedNestedLoopJoin")) + .matches(containsSubPlan("CorrelatedNestedLoopJoin")) .matches(containsIndexScan("PUBLIC", "T", "T_IDX")) .returns(0, null) .returns(1, null) diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteCorrelatedNestedLoopJoin.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteCorrelatedNestedLoopJoin.java index 82d3c7bcfa..58aa8ea7b8 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteCorrelatedNestedLoopJoin.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteCorrelatedNestedLoopJoin.java @@ -48,6 +48,8 @@ import org.apache.ignite.internal.sql.engine.util.Commons; * The set of output rows is a subset of the cartesian product of the two inputs; precisely which subset depends on the join condition. */ public class IgniteCorrelatedNestedLoopJoin extends AbstractIgniteJoin { + private static final String REL_TYPE_NAME = "CorrelatedNestedLoopJoin"; + /** * Creates a Join. * @@ -181,4 +183,10 @@ public class IgniteCorrelatedNestedLoopJoin extends AbstractIgniteJoin { // condition selectivity already counted within the external filter return super.estimateRowCount(mq) / mq.getSelectivity(this, getCondition()); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteExchange.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteExchange.java index 2aa97576d2..a9797bf6bd 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteExchange.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteExchange.java @@ -38,6 +38,8 @@ import org.apache.ignite.internal.sql.engine.trait.IgniteDistribution; * Relational expression that imposes a particular distribution on its input without otherwise changing its content. */ public class IgniteExchange extends Exchange implements IgniteRel { + private static final String REL_TYPE_NAME = "Exchange"; + /** * Creates an Exchange. * @@ -103,4 +105,10 @@ public class IgniteExchange extends Exchange implements IgniteRel { public IgniteRel clone(RelOptCluster cluster, List<IgniteRel> inputs) { return new IgniteExchange(cluster, getTraitSet(), sole(inputs), distribution); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteFilter.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteFilter.java index 361cf3c613..93fa7c34b3 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteFilter.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteFilter.java @@ -42,6 +42,8 @@ import org.apache.ignite.internal.sql.engine.trait.TraitsAwareIgniteRel; * false.</p> */ public class IgniteFilter extends Filter implements TraitsAwareIgniteRel { + private static final String REL_TYPE_NAME = "Filter"; + /** * Creates a filter. * @@ -105,4 +107,9 @@ public class IgniteFilter extends Filter implements TraitsAwareIgniteRel { public IgniteRel clone(RelOptCluster cluster, List<IgniteRel> inputs) { return new IgniteFilter(cluster, getTraitSet(), sole(inputs), getCondition()); } + + /** {@inheritDoc} */ + @Override public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteHashIndexSpool.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteHashIndexSpool.java index c57343203b..5f91c8edf7 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteHashIndexSpool.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteHashIndexSpool.java @@ -40,6 +40,8 @@ import org.apache.ignite.internal.sql.engine.util.RexUtils; * Relational operator that returns the hashed contents of a table and allow to lookup rows by specified keys. */ public class IgniteHashIndexSpool extends AbstractIgniteSpool { + private static final String REL_TYPE_NAME = "HashIndexSpool"; + /** Search row. */ private final List<RexNode> searchRow; @@ -178,4 +180,10 @@ public class IgniteHashIndexSpool extends AbstractIgniteSpool { public boolean allowNulls() { return allowNulls; } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteIndexScan.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteIndexScan.java index 52d2ff9d3a..38a86b63b0 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteIndexScan.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteIndexScan.java @@ -36,6 +36,8 @@ import org.jetbrains.annotations.Nullable; * Relational operator that returns the contents of a table using an index. */ public class IgniteIndexScan extends AbstractIndexScan implements SourceAwareIgniteRel { + private static final String REL_TYPE_NAME = "IndexScan"; + private final long sourceId; /** Index collation. Required for proper expanding search bounds and creating index row converter. */ @@ -161,4 +163,10 @@ public class IgniteIndexScan extends AbstractIndexScan implements SourceAwareIgn return new IgniteIndexScan(sourceId, cluster, getTraitSet(), getTable(), idxName, type, collation, projects, condition, searchBounds, requiredColumns); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteKeyValueGet.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteKeyValueGet.java index 0f300fcd8a..13057efc64 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteKeyValueGet.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteKeyValueGet.java @@ -46,6 +46,8 @@ import org.jetbrains.annotations.Nullable; * </ul> */ public class IgniteKeyValueGet extends ProjectableFilterableTableScan implements IgniteRel { + private static final String REL_TYPE_NAME = "KeyValueGet"; + private final List<RexNode> keyExpressions; /** @@ -101,6 +103,12 @@ public class IgniteKeyValueGet extends ProjectableFilterableTableScan implements .item("key", keyExpressions); } + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } + /** * Returns a list of expressions in the order of a primary key columns of related table * to use as lookup key. diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteKeyValueModify.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteKeyValueModify.java index 57d991e15a..8bb7a25138 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteKeyValueModify.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteKeyValueModify.java @@ -48,6 +48,8 @@ import org.apache.ignite.internal.tx.InternalTransaction; * </ul> */ public class IgniteKeyValueModify extends AbstractRelNode implements IgniteRel { + private static final String REL_TYPE_NAME = "KeyValueModify"; + /** Enumeration of supported modification operations. */ public enum Operation { PUT @@ -113,6 +115,12 @@ public class IgniteKeyValueModify extends AbstractRelNode implements IgniteRel { .item("expressions", expressions); } + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } + /** * Returns a list of expressions representing either full row or only a key * depending on particular operation. diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteLimit.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteLimit.java index f6b4d4af5b..50c777a997 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteLimit.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteLimit.java @@ -41,6 +41,8 @@ import org.apache.ignite.internal.sql.engine.trait.TraitUtils; /** Relational expression that applies a limit and/or offset to its input. */ public class IgniteLimit extends SingleRel implements IgniteRel { + private static final String REL_TYPE_NAME = "Limit"; + /** Offset. */ private final RexNode offset; @@ -195,4 +197,10 @@ public class IgniteLimit extends SingleRel implements IgniteRel { public IgniteRel clone(RelOptCluster cluster, List<IgniteRel> inputs) { return new IgniteLimit(cluster, getTraitSet(), sole(inputs), offset, fetch); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteMergeJoin.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteMergeJoin.java index 7112ea67a9..17e9e4d253 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteMergeJoin.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteMergeJoin.java @@ -54,6 +54,8 @@ import org.apache.ignite.internal.sql.engine.util.Commons; * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 */ public class IgniteMergeJoin extends AbstractIgniteJoin { + private static final String REL_TYPE_NAME = "MergeJoin"; + /** * Collation of a left child. Keep it here to restore after deserialization. */ @@ -298,6 +300,12 @@ public class IgniteMergeJoin extends AbstractIgniteJoin { .item("rightCollation", rightCollation); } + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } + /** * Get collation of a left child. */ diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteNestedLoopJoin.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteNestedLoopJoin.java index 445a1b9e88..c11309e034 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteNestedLoopJoin.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteNestedLoopJoin.java @@ -42,6 +42,8 @@ import org.apache.ignite.internal.sql.engine.util.Commons; * join condition. */ public class IgniteNestedLoopJoin extends AbstractIgniteJoin { + private static final String REL_TYPE_NAME = "NestedLoopJoin"; + /** * Creates a Join. * @@ -117,4 +119,10 @@ public class IgniteNestedLoopJoin extends AbstractIgniteJoin { return new IgniteNestedLoopJoin(cluster, getTraitSet(), inputs.get(0), inputs.get(1), getCondition(), getVariablesSet(), getJoinType()); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteProject.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteProject.java index a074969c38..298f45b708 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteProject.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteProject.java @@ -54,6 +54,8 @@ import org.apache.ignite.internal.sql.engine.trait.TraitsAwareIgniteRel; * Relational expression that computes a set of 'select expressions' from its input relational expression. */ public class IgniteProject extends Project implements TraitsAwareIgniteRel { + private static final String REL_TYPE_NAME = "Project"; + /** * Creates a Project. * @@ -200,4 +202,10 @@ public class IgniteProject extends Project implements TraitsAwareIgniteRel { public IgniteRel clone(RelOptCluster cluster, List<IgniteRel> inputs) { return new IgniteProject(cluster, getTraitSet(), sole(inputs), getProjects(), getRowType()); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteReceiver.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteReceiver.java index 41a2a54563..4ea7c14969 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteReceiver.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteReceiver.java @@ -34,6 +34,8 @@ import org.apache.calcite.util.Pair; * Relational expression that receives elements from remote {@link IgniteSender}. */ public class IgniteReceiver extends AbstractRelNode implements IgniteRel { + private static final String REL_TYPE_NAME = "Receiver"; + private final long exchangeId; private final long sourceFragmentId; @@ -147,4 +149,10 @@ public class IgniteReceiver extends AbstractRelNode implements IgniteRel { public IgniteRel clone(RelOptCluster cluster, List<IgniteRel> inputs) { return new IgniteReceiver(cluster, getTraitSet(), rowType, exchangeId, sourceFragmentId, collation); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSender.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSender.java index 7d62cbf73c..5dd8b74ed1 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSender.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSender.java @@ -34,6 +34,8 @@ import org.apache.ignite.internal.sql.engine.trait.IgniteDistribution; * Relational expression that iterates over its input and sends elements to remote {@link IgniteReceiver}. */ public class IgniteSender extends SingleRel implements IgniteRel { + private static final String REL_TYPE_NAME = "Sender"; + private final long exchangeId; private final long targetFragmentId; @@ -155,4 +157,10 @@ public class IgniteSender extends SingleRel implements IgniteRel { public IgniteRel clone(RelOptCluster cluster, List<IgniteRel> inputs) { return new IgniteSender(cluster, getTraitSet(), sole(inputs), exchangeId(), targetFragmentId(), distribution()); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSort.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSort.java index 6664df0709..36777dfaff 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSort.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSort.java @@ -45,6 +45,8 @@ import org.apache.ignite.internal.sql.engine.trait.TraitUtils; * Ignite sort operator. */ public class IgniteSort extends Sort implements IgniteRel { + private static final String REL_TYPE_NAME = "Sort"; + /** * Constructor. * @@ -187,4 +189,10 @@ public class IgniteSort extends Sort implements IgniteRel { return Math.min(inputRows, fetch + offset); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSortedIndexSpool.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSortedIndexSpool.java index 9065f13619..2707bff81a 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSortedIndexSpool.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSortedIndexSpool.java @@ -40,6 +40,8 @@ import org.apache.ignite.internal.sql.engine.prepare.bounds.SearchBounds; * Relational operator that returns the sorted contents of a table and allow to lookup rows by specified bounds. */ public class IgniteSortedIndexSpool extends AbstractIgniteSpool implements IgniteRel { + private static final String REL_TYPE_NAME = "SortedIndexSpool"; + private final RelCollation collation; /** Index search conditions. */ @@ -181,4 +183,10 @@ public class IgniteSortedIndexSpool extends AbstractIgniteSpool implements Ignit return costFactory.makeCost(rowCnt, cpuCost, 0, totalBytes, 0); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSystemViewScan.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSystemViewScan.java index 47b3e60073..25140718eb 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSystemViewScan.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteSystemViewScan.java @@ -34,6 +34,7 @@ import org.jetbrains.annotations.Nullable; * Relational operator that returns the contents of a system view. */ public class IgniteSystemViewScan extends ProjectableFilterableTableScan implements SourceAwareIgniteRel { + private static final String REL_TYPE_NAME = "SystemViewScan"; private final long sourceId; @@ -127,4 +128,10 @@ public class IgniteSystemViewScan extends ProjectableFilterableTableScan impleme return super.explainTerms0(pw) .itemIf("sourceId", sourceId, sourceId != -1); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableFunctionScan.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableFunctionScan.java index bf586f40b8..e6a9a84167 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableFunctionScan.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableFunctionScan.java @@ -39,6 +39,8 @@ import org.apache.ignite.internal.sql.engine.exec.mapping.QuerySplitter; * Relational operator for table function scan. */ public class IgniteTableFunctionScan extends TableFunctionScan implements SourceAwareIgniteRel { + private static final String REL_TYPE_NAME = "TableFunctionScan"; + /** Default estimate row count. */ private static final int ESTIMATE_ROW_COUNT = 100; @@ -140,4 +142,10 @@ public class IgniteTableFunctionScan extends TableFunctionScan implements Source public double estimateRowCount(RelMetadataQuery mq) { return ESTIMATE_ROW_COUNT; } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableModify.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableModify.java index ce1bed4795..53d02b7417 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableModify.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableModify.java @@ -35,6 +35,7 @@ import org.apache.ignite.internal.sql.engine.util.Commons; * Relational operator that represents DML operation (such as INSERT, UPDATE, DELETE, etc.) */ public class IgniteTableModify extends TableModify implements SourceAwareIgniteRel { + private static final String REL_TYPE_NAME = "TableModify"; private final long sourceId; @@ -182,4 +183,10 @@ public class IgniteTableModify extends TableModify implements SourceAwareIgniteR public long sourceId() { return sourceId; } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableScan.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableScan.java index 4b76f009d5..dd893cf20c 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableScan.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableScan.java @@ -34,6 +34,8 @@ import org.jetbrains.annotations.Nullable; * Relational operator that returns the contents of a table. */ public class IgniteTableScan extends ProjectableFilterableTableScan implements SourceAwareIgniteRel { + private static final String REL_TYPE_NAME = "TableScan"; + private final long sourceId; /** @@ -152,4 +154,9 @@ public class IgniteTableScan extends ProjectableFilterableTableScan implements S public IgniteTableScan withHints(List<RelHint> hintList) { return new IgniteTableScan(sourceId, getCluster(), getTraitSet(), hintList, getTable(), projects, condition, requiredColumns); } + + /** {@inheritDoc} */ + @Override public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableSpool.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableSpool.java index 1875ed37d9..b95ae669bf 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableSpool.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTableSpool.java @@ -33,6 +33,8 @@ import org.apache.ignite.internal.sql.engine.metadata.cost.IgniteCostFactory; * Relational operator that returns the contents of a table. */ public class IgniteTableSpool extends AbstractIgniteSpool { + private static final String REL_TYPE_NAME = "TableSpool"; + /** * Constructor. * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 @@ -95,4 +97,10 @@ public class IgniteTableSpool extends AbstractIgniteSpool { return costFactory.makeCost(rowCnt, cpuCost, 0, totalBytes, 0); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTrimExchange.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTrimExchange.java index 9b2ae3d919..2eabf8735a 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTrimExchange.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteTrimExchange.java @@ -39,6 +39,8 @@ import org.apache.ignite.internal.sql.engine.trait.IgniteDistribution; * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 */ public class IgniteTrimExchange extends Exchange implements SourceAwareIgniteRel { + private static final String REL_TYPE_NAME = "TrimExchange"; + private final long sourceId; /** @@ -135,4 +137,10 @@ public class IgniteTrimExchange extends Exchange implements SourceAwareIgniteRel public IgniteRel clone(RelOptCluster cluster, List<IgniteRel> inputs) { return new IgniteTrimExchange(sourceId, cluster, getTraitSet(), sole(inputs), getDistribution()); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteUnionAll.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteUnionAll.java index 71f38e10a5..7b69a6d28d 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteUnionAll.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteUnionAll.java @@ -43,6 +43,8 @@ import org.apache.ignite.internal.sql.engine.util.Commons; * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 */ public class IgniteUnionAll extends Union implements TraitsAwareIgniteRel { + private static final String REL_TYPE_NAME = "UnionAll"; + /** * Constructor. * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 @@ -127,4 +129,10 @@ public class IgniteUnionAll extends Union implements TraitsAwareIgniteRel { public IgniteRel clone(RelOptCluster cluster, List<IgniteRel> inputs) { return new IgniteUnionAll(cluster, getTraitSet(), Commons.cast(inputs)); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteValues.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteValues.java index 745986280a..d3a7ee5661 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteValues.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/IgniteValues.java @@ -36,6 +36,8 @@ import org.apache.ignite.internal.sql.engine.exec.mapping.QuerySplitter; * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 */ public class IgniteValues extends Values implements SourceAwareIgniteRel { + private static final String REL_TYPE_NAME = "Values"; + private final long sourceId; /** @@ -130,4 +132,10 @@ public class IgniteValues extends Values implements SourceAwareIgniteRel { public long sourceId() { return sourceId; } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteColocatedHashAggregate.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteColocatedHashAggregate.java index 6ac3795c90..d4828234e1 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteColocatedHashAggregate.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteColocatedHashAggregate.java @@ -36,6 +36,8 @@ import org.apache.ignite.internal.sql.engine.rel.IgniteRelVisitor; * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 */ public class IgniteColocatedHashAggregate extends IgniteColocatedAggregateBase implements IgniteHashAggregateBase { + private static final String REL_TYPE_NAME = "ColocatedHashAggregate"; + public IgniteColocatedHashAggregate(RelOptCluster cluster, RelTraitSet traitSet, RelNode input, ImmutableBitSet groupSet, List<ImmutableBitSet> groupSets, List<AggregateCall> aggCalls) { super(cluster, traitSet, input, groupSet, groupSets, aggCalls); @@ -75,4 +77,9 @@ public class IgniteColocatedHashAggregate extends IgniteColocatedAggregateBase i public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { return computeSelfCostHash(planner, mq); } + + /** {@inheritDoc} */ + @Override public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteColocatedSortAggregate.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteColocatedSortAggregate.java index b99549b43e..e4b5434091 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteColocatedSortAggregate.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteColocatedSortAggregate.java @@ -40,6 +40,8 @@ import org.apache.ignite.internal.sql.engine.trait.TraitUtils; * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 */ public class IgniteColocatedSortAggregate extends IgniteColocatedAggregateBase implements IgniteSortAggregateBase { + private static final String REL_TYPE_NAME = "ColocatedSortAggregate"; + /** Collation. */ private final RelCollation collation; @@ -110,4 +112,9 @@ public class IgniteColocatedSortAggregate extends IgniteColocatedAggregateBase i public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { return computeSelfCostSort(planner, mq); } + + /** {@inheritDoc} */ + @Override public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteMapHashAggregate.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteMapHashAggregate.java index fa6432adff..b0f836388c 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteMapHashAggregate.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteMapHashAggregate.java @@ -39,6 +39,8 @@ import org.apache.ignite.internal.sql.engine.util.PlanUtils; * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 */ public class IgniteMapHashAggregate extends IgniteMapAggregateBase implements IgniteHashAggregateBase { + private static final String REL_TYPE_NAME = "MapHashAggregate"; + /** * Constructor. * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 @@ -96,4 +98,9 @@ public class IgniteMapHashAggregate extends IgniteMapAggregateBase implements Ig public RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq) { return computeSelfCostHash(planner, mq); } + + /** {@inheritDoc} */ + @Override public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteMapSortAggregate.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteMapSortAggregate.java index 0e7ef67d2e..5d45677312 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteMapSortAggregate.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteMapSortAggregate.java @@ -45,6 +45,8 @@ import org.apache.ignite.internal.sql.engine.util.PlanUtils; * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 */ public class IgniteMapSortAggregate extends IgniteMapAggregateBase implements IgniteSortAggregateBase { + private static final String REL_TYPE_NAME = "MapSortAggregate"; + /** Collation. */ private final RelCollation collation; @@ -138,4 +140,9 @@ public class IgniteMapSortAggregate extends IgniteMapAggregateBase implements Ig public RelCollation collation() { return collation; } + + /** {@inheritDoc} */ + @Override public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteReduceHashAggregate.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteReduceHashAggregate.java index 8f95c07e4e..7ecc96f52a 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteReduceHashAggregate.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteReduceHashAggregate.java @@ -40,6 +40,8 @@ import org.apache.ignite.internal.sql.engine.rel.IgniteRelVisitor; * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 */ public class IgniteReduceHashAggregate extends IgniteReduceAggregateBase implements IgniteHashAggregateBase { + private static final String REL_TYPE_NAME = "ReduceHashAggregate"; + /** * Constructor. * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 @@ -120,4 +122,10 @@ public class IgniteReduceHashAggregate extends IgniteReduceAggregateBase impleme return List.of(Pair.of(nodeTraits.replace(RelCollations.EMPTY), List.of(inTraits.get(0).replace(RelCollations.EMPTY)))); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteReduceSortAggregate.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteReduceSortAggregate.java index 357ba1c42d..094eec595f 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteReduceSortAggregate.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/agg/IgniteReduceSortAggregate.java @@ -42,6 +42,8 @@ import org.apache.ignite.internal.sql.engine.trait.TraitUtils; * TODO Documentation https://issues.apache.org/jira/browse/IGNITE-15859 */ public class IgniteReduceSortAggregate extends IgniteReduceAggregateBase implements IgniteSortAggregateBase { + private static final String REL_TYPE_NAME = "ReduceSortAggregate"; + /** Collation. */ private final RelCollation collation; @@ -139,4 +141,10 @@ public class IgniteReduceSortAggregate extends IgniteReduceAggregateBase impleme public RelCollation collation() { return collation; } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/logical/IgniteLogicalIndexScan.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/logical/IgniteLogicalIndexScan.java index ca2b741e3f..61f71d055d 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/logical/IgniteLogicalIndexScan.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/logical/IgniteLogicalIndexScan.java @@ -39,6 +39,8 @@ import org.jetbrains.annotations.Nullable; * Logical relational expression for reading data from an index. */ public class IgniteLogicalIndexScan extends AbstractIndexScan { + private static final String REL_TYPE_NAME = "LogicalIndexScan"; + /** Creates a IgniteLogicalIndexScan. */ public static IgniteLogicalIndexScan create( RelOptCluster cluster, @@ -153,4 +155,10 @@ public class IgniteLogicalIndexScan extends AbstractIndexScan { requiredColumns ); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/logical/IgniteLogicalSystemViewScan.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/logical/IgniteLogicalSystemViewScan.java index 52f633a1cc..1420a5990d 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/logical/IgniteLogicalSystemViewScan.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/logical/IgniteLogicalSystemViewScan.java @@ -32,6 +32,7 @@ import org.jetbrains.annotations.Nullable; * Logical relational expression for reading data from a system view. */ public class IgniteLogicalSystemViewScan extends ProjectableFilterableTableScan { + private static final String REL_TYPE_NAME = "LogicalSystemViewScan"; /** * Creates asSystem view scan. @@ -68,4 +69,10 @@ public class IgniteLogicalSystemViewScan extends ProjectableFilterableTableScan return new IgniteLogicalSystemViewScan(getCluster(), getTraitSet(), hintList, getTable(), projects, condition, requiredColumns); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/logical/IgniteLogicalTableScan.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/logical/IgniteLogicalTableScan.java index 6a77fd6481..6cda4b633f 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/logical/IgniteLogicalTableScan.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/logical/IgniteLogicalTableScan.java @@ -31,6 +31,8 @@ import org.jetbrains.annotations.Nullable; * Logical relational expression for reading data from a table. */ public class IgniteLogicalTableScan extends ProjectableFilterableTableScan { + private static final String REL_TYPE_NAME = "LogicalTableScan"; + /** Creates a IgniteTableScan. */ public static IgniteLogicalTableScan create( RelOptCluster cluster, @@ -72,4 +74,10 @@ public class IgniteLogicalTableScan extends ProjectableFilterableTableScan { public IgniteLogicalTableScan withHints(List<RelHint> hintList) { return new IgniteLogicalTableScan(getCluster(), getTraitSet(), hintList, getTable(), projects, condition, requiredColumns); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteColocatedIntersect.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteColocatedIntersect.java index 5e80e3a31b..d115948769 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteColocatedIntersect.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteColocatedIntersect.java @@ -30,6 +30,8 @@ import org.apache.ignite.internal.sql.engine.util.Commons; * Physical node for INTERSECT operator which inputs are colocated. */ public class IgniteColocatedIntersect extends IgniteIntersect implements IgniteColocatedSetOp { + private static final String REL_TYPE_NAME = "ColocatedIntersect"; + /** * Constructor. * @@ -80,4 +82,9 @@ public class IgniteColocatedIntersect extends IgniteIntersect implements IgniteC return getInput(0).getRowType().getFieldCount() + getInputs().size(); } + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteColocatedMinus.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteColocatedMinus.java index 509f053309..1d4c4e2c7a 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteColocatedMinus.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteColocatedMinus.java @@ -30,6 +30,7 @@ import org.apache.ignite.internal.sql.engine.util.Commons; * Physical node for MINUS (EXCEPT) operator which inputs are colocated. */ public class IgniteColocatedMinus extends IgniteMinus implements IgniteColocatedSetOp { + private static final String REL_TYPE_NAME = "ColocatedMinus"; /** * Constructor. @@ -80,4 +81,10 @@ public class IgniteColocatedMinus extends IgniteMinus implements IgniteColocated public int aggregateFieldsCount() { return getInput(0).getRowType().getFieldCount() + COUNTER_FIELDS_CNT; } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteMapIntersect.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteMapIntersect.java index 4fc137b698..606bc868d8 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteMapIntersect.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteMapIntersect.java @@ -32,6 +32,8 @@ import org.apache.ignite.internal.sql.engine.util.Commons; * Physical node for MAP phase of INTERSECT operator. */ public class IgniteMapIntersect extends IgniteIntersect implements IgniteMapSetOp { + private static final String REL_TYPE_NAME = "MapIntersect"; + /** * Constructor. * @@ -90,4 +92,10 @@ public class IgniteMapIntersect extends IgniteIntersect implements IgniteMapSetO public int aggregateFieldsCount() { return getInput(0).getRowType().getFieldCount() + getInputs().size(); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteMapMinus.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteMapMinus.java index b0d7362bb4..dde8cc217e 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteMapMinus.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteMapMinus.java @@ -32,6 +32,8 @@ import org.apache.ignite.internal.sql.engine.util.Commons; * Physical node for MAP phase of MINUS (EXCEPT) operator. */ public class IgniteMapMinus extends IgniteMinus implements IgniteMapSetOp { + private static final String REL_TYPE_NAME = "MapMinus"; + /** * Constructor. * @@ -89,4 +91,10 @@ public class IgniteMapMinus extends IgniteMinus implements IgniteMapSetOp { public int aggregateFieldsCount() { return getInput(0).getRowType().getFieldCount() + COUNTER_FIELDS_CNT; } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteReduceIntersect.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteReduceIntersect.java index 8012580849..17e8c89fa2 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteReduceIntersect.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteReduceIntersect.java @@ -34,6 +34,7 @@ import org.apache.ignite.internal.sql.engine.rel.IgniteRelVisitor; * Physical node for REDUCE phase of INTERSECT operator. */ public class IgniteReduceIntersect extends IgniteIntersect implements IgniteReduceSetOp { + private static final String REL_TYPE_NAME = "ReduceIntersect"; /** * Constructor. @@ -106,4 +107,10 @@ public class IgniteReduceIntersect extends IgniteIntersect implements IgniteRedu public int aggregateFieldsCount() { return getInput(0).getRowType().getFieldCount(); } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteReduceMinus.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteReduceMinus.java index d8b7adad67..97a63fafee 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteReduceMinus.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/set/IgniteReduceMinus.java @@ -34,6 +34,8 @@ import org.apache.ignite.internal.sql.engine.rel.IgniteRelVisitor; * Physical node for REDUCE phase of MINUS (EXCEPT) operator. */ public class IgniteReduceMinus extends IgniteMinus implements IgniteReduceSetOp { + private static final String REL_TYPE_NAME = "ReduceMinus"; + /** * Constructor. * @@ -102,4 +104,10 @@ public class IgniteReduceMinus extends IgniteMinus implements IgniteReduceSetOp public int aggregateFieldsCount() { return rowType.getFieldCount() + COUNTER_FIELDS_CNT; } + + /** {@inheritDoc} */ + @Override + public String getRelTypeName() { + return REL_TYPE_NAME; + } } diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/FragmentPrinter.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/FragmentPrinter.java index 5ca6a0f4e8..25116f531c 100644 --- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/FragmentPrinter.java +++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/FragmentPrinter.java @@ -234,7 +234,7 @@ final class FragmentPrinter extends IgniteRelShuttle { @Override public IgniteRel visit(IgniteRel rel) { output.appendPadding(); - output.writeString(rel.getClass().getSimpleName()); + output.writeString(rel.getRelTypeName()); return super.visit(rel); } diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/PlannerTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/PlannerTest.java index 45754bb944..a8a5004ce2 100644 --- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/PlannerTest.java +++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/PlannerTest.java @@ -199,11 +199,11 @@ public class PlannerTest extends AbstractPlannerTest { RelNode phys = physicalPlan(sql, publicSchema, "CorrelatedNestedLoopJoin"); assertNotNull(phys); - assertEquals("IgniteSort(sort0=[$3], sort1=[$0], dir0=[ASC], dir1=[ASC])" + System.lineSeparator() - + " IgniteProject(DEPTNO=[$3], NAME=[$4], ID=[$0], NAME0=[$1])" + System.lineSeparator() - + " IgniteNestedLoopJoin(condition=[AND(=($3, $2), >=($1, $4))], joinType=[inner])" + System.lineSeparator() - + " IgniteTableScan(table=[[PUBLIC, EMP]])" + System.lineSeparator() - + " IgniteTableScan(table=[[PUBLIC, DEPT]])" + System.lineSeparator(), + assertEquals("Sort(sort0=[$3], sort1=[$0], dir0=[ASC], dir1=[ASC])" + System.lineSeparator() + + " Project(DEPTNO=[$3], NAME=[$4], ID=[$0], NAME0=[$1])" + System.lineSeparator() + + " NestedLoopJoin(condition=[AND(=($3, $2), >=($1, $4))], joinType=[inner])" + System.lineSeparator() + + " TableScan(table=[[PUBLIC, EMP]])" + System.lineSeparator() + + " TableScan(table=[[PUBLIC, DEPT]])" + System.lineSeparator(), RelOptUtil.toString(phys)); } diff --git a/modules/sql-engine/src/test/resources/mapping/correlated.test b/modules/sql-engine/src/test/resources/mapping/correlated.test index af808bfdec..584c9f903b 100644 --- a/modules/sql-engine/src/test/resources/mapping/correlated.test +++ b/modules/sql-engine/src/test/resources/mapping/correlated.test @@ -6,7 +6,7 @@ Fragment#4 root remoteFragments: [5] exchangeSourceNodes: {5=[N1]} tree: - IgniteReceiver(sourceFragment=5, exchange=5, distribution=single) + Receiver(sourceFragment=5, exchange=5, distribution=single) Fragment#1 targetNodes: [N1] @@ -14,8 +14,8 @@ Fragment#1 tables: [T_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=5, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.T_N1, source=3, partitions=1, distribution=random) + Sender(targetFragment=5, exchange=1, distribution=single) + TableScan(name=PUBLIC.T_N1, source=3, partitions=1, distribution=random) Fragment#5 targetNodes: [N0] @@ -25,12 +25,12 @@ Fragment#5 tables: [CT_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=4, exchange=5, distribution=single) - IgniteProject - IgniteNestedLoopJoin - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteColocatedHashAggregate - IgniteTableScan(name=PUBLIC.CT_N1, source=2, partitions=1, distribution=single) + Sender(targetFragment=4, exchange=5, distribution=single) + Project + NestedLoopJoin + Receiver(sourceFragment=1, exchange=1, distribution=single) + ColocatedHashAggregate + TableScan(name=PUBLIC.CT_N1, source=2, partitions=1, distribution=single) --- N1 @@ -43,11 +43,11 @@ Fragment#0 root tables: [CT_N1] partitions: {N1=[0:1]} tree: - IgniteProject - IgniteNestedLoopJoin - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteColocatedHashAggregate - IgniteTableScan(name=PUBLIC.CT_N1, source=2, partitions=1, distribution=single) + Project + NestedLoopJoin + Receiver(sourceFragment=1, exchange=1, distribution=single) + ColocatedHashAggregate + TableScan(name=PUBLIC.CT_N1, source=2, partitions=1, distribution=single) Fragment#1 targetNodes: [N1] @@ -55,8 +55,8 @@ Fragment#1 tables: [T_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.T_N1, source=3, partitions=1, distribution=random) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.T_N1, source=3, partitions=1, distribution=random) --- N0 @@ -67,7 +67,7 @@ Fragment#4 root remoteFragments: [5] exchangeSourceNodes: {5=[N1]} tree: - IgniteReceiver(sourceFragment=5, exchange=5, distribution=single) + Receiver(sourceFragment=5, exchange=5, distribution=single) Fragment#1 targetNodes: [N1] @@ -75,8 +75,8 @@ Fragment#1 tables: [T_N2] partitions: {N2=[0:1]} tree: - IgniteSender(targetFragment=5, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.T_N2, source=3, partitions=1, distribution=random) + Sender(targetFragment=5, exchange=1, distribution=single) + TableScan(name=PUBLIC.T_N2, source=3, partitions=1, distribution=random) Fragment#5 targetNodes: [N0] @@ -86,12 +86,12 @@ Fragment#5 tables: [CT_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=4, exchange=5, distribution=single) - IgniteProject - IgniteNestedLoopJoin - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteColocatedHashAggregate - IgniteTableScan(name=PUBLIC.CT_N1, source=2, partitions=1, distribution=single) + Sender(targetFragment=4, exchange=5, distribution=single) + Project + NestedLoopJoin + Receiver(sourceFragment=1, exchange=1, distribution=single) + ColocatedHashAggregate + TableScan(name=PUBLIC.CT_N1, source=2, partitions=1, distribution=single) --- N1 @@ -104,11 +104,11 @@ Fragment#0 root tables: [CT_N1] partitions: {N1=[0:1]} tree: - IgniteProject - IgniteNestedLoopJoin - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteColocatedHashAggregate - IgniteTableScan(name=PUBLIC.CT_N1, source=2, partitions=1, distribution=single) + Project + NestedLoopJoin + Receiver(sourceFragment=1, exchange=1, distribution=single) + ColocatedHashAggregate + TableScan(name=PUBLIC.CT_N1, source=2, partitions=1, distribution=single) Fragment#1 targetNodes: [N1] @@ -116,8 +116,8 @@ Fragment#1 tables: [T_N2] partitions: {N2=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.T_N2, source=3, partitions=1, distribution=random) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.T_N2, source=3, partitions=1, distribution=random) --- N0 @@ -128,12 +128,12 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1]} tree: - IgniteProject - IgniteMergeJoin - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteSort - IgniteFilter - IgniteTableFunctionScan(source=2, distribution=single) + Project + MergeJoin + Receiver(sourceFragment=1, exchange=1, distribution=single) + Sort + Filter + TableFunctionScan(source=2, distribution=single) Fragment#1 targetNodes: [N0] @@ -141,9 +141,9 @@ Fragment#1 tables: [T_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteSort - IgniteTableScan(name=PUBLIC.T_N1, source=3, partitions=1, distribution=random) + Sender(targetFragment=0, exchange=1, distribution=single) + Sort + TableScan(name=PUBLIC.T_N1, source=3, partitions=1, distribution=random) --- N0 @@ -155,7 +155,7 @@ Fragment#3 root remoteFragments: [4] exchangeSourceNodes: {4=[N1]} tree: - IgniteReceiver(sourceFragment=4, exchange=4, distribution=single) + Receiver(sourceFragment=4, exchange=4, distribution=single) Fragment#4 targetNodes: [N0] @@ -163,14 +163,14 @@ Fragment#4 tables: [CT_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=3, exchange=4, distribution=single) - IgniteProject - IgniteCorrelatedNestedLoopJoin - IgniteTableScan(name=PUBLIC.CT_N1, source=1, partitions=1, distribution=single) - IgniteColocatedHashAggregate - IgniteProject - IgniteFilter - IgniteTableFunctionScan(source=2, distribution=single) + Sender(targetFragment=3, exchange=4, distribution=single) + Project + CorrelatedNestedLoopJoin + TableScan(name=PUBLIC.CT_N1, source=1, partitions=1, distribution=single) + ColocatedHashAggregate + Project + Filter + TableFunctionScan(source=2, distribution=single) --- N0 @@ -182,13 +182,13 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1]} tree: - IgniteProject - IgniteCorrelatedNestedLoopJoin - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteColocatedHashAggregate - IgniteProject - IgniteFilter - IgniteTableFunctionScan(source=2, distribution=single) + Project + CorrelatedNestedLoopJoin + Receiver(sourceFragment=1, exchange=1, distribution=single) + ColocatedHashAggregate + Project + Filter + TableFunctionScan(source=2, distribution=single) Fragment#1 targetNodes: [N0] @@ -196,6 +196,6 @@ Fragment#1 tables: [T_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.T_N1, source=3, partitions=1, distribution=affinity[table: T_N1, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.T_N1, source=3, partitions=1, distribution=affinity[table: T_N1, columns: [ID]]) --- diff --git a/modules/sql-engine/src/test/resources/mapping/dml.test b/modules/sql-engine/src/test/resources/mapping/dml.test index 9122dd3680..c1716a9297 100644 --- a/modules/sql-engine/src/test/resources/mapping/dml.test +++ b/modules/sql-engine/src/test/resources/mapping/dml.test @@ -6,9 +6,9 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1]} tree: - IgniteProject - IgniteColocatedHashAggregate - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Project + ColocatedHashAggregate + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N0] @@ -18,16 +18,16 @@ Fragment#1 tables: [T1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableModify(name=PUBLIC.T1_N1, source=2, distribution=affinity[table: T1_N1, columns: [ID]]) - IgniteReceiver(sourceFragment=3, exchange=3, distribution=affinity[table: T1_N1, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableModify(name=PUBLIC.T1_N1, source=2, distribution=affinity[table: T1_N1, columns: [ID]]) + Receiver(sourceFragment=3, exchange=3, distribution=affinity[table: T1_N1, columns: [ID]]) Fragment#3 targetNodes: [N1] executionNodes: [N0] tree: - IgniteSender(targetFragment=1, exchange=3, distribution=affinity[table: T1_N1, columns: [ID]]) - IgniteValues + Sender(targetFragment=1, exchange=3, distribution=affinity[table: T1_N1, columns: [ID]]) + Values --- N1 @@ -38,9 +38,9 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1]} tree: - IgniteProject - IgniteColocatedHashAggregate - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Project + ColocatedHashAggregate + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N1] @@ -48,9 +48,9 @@ Fragment#1 tables: [T1_N1, T1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableModify(name=PUBLIC.T1_N1, source=2, distribution=affinity[table: T1_N1, columns: [ID]]) - IgniteTableScan(name=PUBLIC.T1_N1, source=3, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableModify(name=PUBLIC.T1_N1, source=2, distribution=affinity[table: T1_N1, columns: [ID]]) + TableScan(name=PUBLIC.T1_N1, source=3, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) --- N2 @@ -61,9 +61,9 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1]} tree: - IgniteProject - IgniteColocatedHashAggregate - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Project + ColocatedHashAggregate + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N2] @@ -71,9 +71,9 @@ Fragment#1 tables: [T1_N1, T1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableModify(name=PUBLIC.T1_N1, source=2, distribution=affinity[table: T1_N1, columns: [ID]]) - IgniteTableScan(name=PUBLIC.T1_N1, source=3, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableModify(name=PUBLIC.T1_N1, source=2, distribution=affinity[table: T1_N1, columns: [ID]]) + TableScan(name=PUBLIC.T1_N1, source=3, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) --- N1 @@ -84,9 +84,9 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N2, N3]} tree: - IgniteProject - IgniteColocatedHashAggregate - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Project + ColocatedHashAggregate + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N1] @@ -94,7 +94,7 @@ Fragment#1 tables: [T2_N2N3, T2_N2N3] partitions: {N2=[0:2], N3=[1:2]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableModify(name=PUBLIC.T2_N2N3, source=2, distribution=affinity[table: T2_N2N3, columns: [ID]]) - IgniteTableScan(name=PUBLIC.T2_N2N3, source=3, partitions=2, distribution=affinity[table: T2_N2N3, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableModify(name=PUBLIC.T2_N2N3, source=2, distribution=affinity[table: T2_N2N3, columns: [ID]]) + TableScan(name=PUBLIC.T2_N2N3, source=3, partitions=2, distribution=affinity[table: T2_N2N3, columns: [ID]]) --- diff --git a/modules/sql-engine/src/test/resources/mapping/merge_join.test b/modules/sql-engine/src/test/resources/mapping/merge_join.test index 76fab743ac..5df9ab5737 100644 --- a/modules/sql-engine/src/test/resources/mapping/merge_join.test +++ b/modules/sql-engine/src/test/resources/mapping/merge_join.test @@ -6,7 +6,7 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1]} tree: - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N0] @@ -14,13 +14,13 @@ Fragment#1 tables: [T1_N1, T2_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteProject - IgniteMergeJoin - IgniteSort - IgniteTableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) - IgniteSort - IgniteTableScan(name=PUBLIC.T2_N1, source=3, partitions=1, distribution=affinity[table: T2_N1, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + Project + MergeJoin + Sort + TableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) + Sort + TableScan(name=PUBLIC.T2_N1, source=3, partitions=1, distribution=affinity[table: T2_N1, columns: [ID]]) --- N1 @@ -31,7 +31,7 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1]} tree: - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N1] @@ -39,13 +39,13 @@ Fragment#1 tables: [T1_N1, T2_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteProject - IgniteMergeJoin - IgniteSort - IgniteTableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) - IgniteSort - IgniteTableScan(name=PUBLIC.T2_N1, source=3, partitions=1, distribution=affinity[table: T2_N1, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + Project + MergeJoin + Sort + TableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) + Sort + TableScan(name=PUBLIC.T2_N1, source=3, partitions=1, distribution=affinity[table: T2_N1, columns: [ID]]) --- N0 @@ -56,7 +56,7 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1]} tree: - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#4 targetNodes: [N0] @@ -66,12 +66,12 @@ Fragment#4 tables: [T1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteProject - IgniteMergeJoin - IgniteSort - IgniteTableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) - IgniteReceiver(sourceFragment=5, exchange=5, distribution=affinity[table: T2_N2, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + Project + MergeJoin + Sort + TableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) + Receiver(sourceFragment=5, exchange=5, distribution=affinity[table: T2_N2, columns: [ID]]) Fragment#5 targetNodes: [N1] @@ -79,7 +79,7 @@ Fragment#5 tables: [T2_N2] partitions: {N2=[0:1]} tree: - IgniteSender(targetFragment=4, exchange=5, distribution=affinity[table: T2_N2, columns: [ID]]) - IgniteSort - IgniteTableScan(name=PUBLIC.T2_N2, source=3, partitions=1, distribution=affinity[table: T2_N2, columns: [ID]]) + Sender(targetFragment=4, exchange=5, distribution=affinity[table: T2_N2, columns: [ID]]) + Sort + TableScan(name=PUBLIC.T2_N2, source=3, partitions=1, distribution=affinity[table: T2_N2, columns: [ID]]) --- diff --git a/modules/sql-engine/src/test/resources/mapping/set_ops.test b/modules/sql-engine/src/test/resources/mapping/set_ops.test index a118f5e0af..377a4d2bbd 100644 --- a/modules/sql-engine/src/test/resources/mapping/set_ops.test +++ b/modules/sql-engine/src/test/resources/mapping/set_ops.test @@ -6,9 +6,9 @@ Fragment#0 root remoteFragments: [1, 2] exchangeSourceNodes: {1=[N1], 2=[N2]} tree: - IgniteColocatedMinus - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteReceiver(sourceFragment=2, exchange=2, distribution=single) + ColocatedMinus + Receiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=2, exchange=2, distribution=single) Fragment#2 targetNodes: [N1] @@ -16,8 +16,8 @@ Fragment#2 tables: [T2_N2] partitions: {N2=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=2, distribution=single) - IgniteTableScan(name=PUBLIC.T2_N2, source=3, partitions=1, distribution=random) + Sender(targetFragment=0, exchange=2, distribution=single) + TableScan(name=PUBLIC.T2_N2, source=3, partitions=1, distribution=random) Fragment#1 targetNodes: [N1] @@ -25,8 +25,8 @@ Fragment#1 tables: [T1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.T1_N1, source=4, partitions=1, distribution=random) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.T1_N1, source=4, partitions=1, distribution=random) --- N1 @@ -37,8 +37,8 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1, N2]} tree: - IgniteReduceMinus - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + ReduceMinus + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N1] @@ -46,8 +46,8 @@ Fragment#1 tables: [T1_N1, T2_N2] partitions: {N1=[0:1], N2=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteMapMinus - IgniteTableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=random) - IgniteTableScan(name=PUBLIC.T2_N2, source=3, partitions=1, distribution=random) + Sender(targetFragment=0, exchange=1, distribution=single) + MapMinus + TableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=random) + TableScan(name=PUBLIC.T2_N2, source=3, partitions=1, distribution=random) --- diff --git a/modules/sql-engine/src/test/resources/mapping/table_affinity.test b/modules/sql-engine/src/test/resources/mapping/table_affinity.test index a8fe590a7e..b0f993c11d 100644 --- a/modules/sql-engine/src/test/resources/mapping/table_affinity.test +++ b/modules/sql-engine/src/test/resources/mapping/table_affinity.test @@ -6,7 +6,7 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1]} tree: - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N1] @@ -14,8 +14,8 @@ Fragment#1 tables: [T1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) --- N2 @@ -26,7 +26,7 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1]} tree: - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N2] @@ -34,8 +34,8 @@ Fragment#1 tables: [T1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) --- N1 @@ -46,7 +46,7 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1]} tree: - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N1] @@ -54,8 +54,8 @@ Fragment#1 tables: [T1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) --- N1 @@ -66,7 +66,7 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1, N2]} tree: - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N1] @@ -74,6 +74,6 @@ Fragment#1 tables: [T2_N1N2] partitions: {N1=[0:2], N2=[1:2]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.T2_N1N2, source=2, partitions=2, distribution=affinity[table: T2_N1N2, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.T2_N1N2, source=2, partitions=2, distribution=affinity[table: T2_N1N2, 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 39d7198600..40da6c46d4 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) + TableFunctionScan(source=1, distribution=single) --- diff --git a/modules/sql-engine/src/test/resources/mapping/table_identity.test b/modules/sql-engine/src/test/resources/mapping/table_identity.test index 136fd8cb0a..d7f03a6109 100644 --- a/modules/sql-engine/src/test/resources/mapping/table_identity.test +++ b/modules/sql-engine/src/test/resources/mapping/table_identity.test @@ -6,9 +6,9 @@ Fragment#0 root remoteFragments: [1, 2] exchangeSourceNodes: {1=[N1], 2=[N2]} tree: - IgniteNestedLoopJoin - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteReceiver(sourceFragment=2, exchange=2, distribution=single) + NestedLoopJoin + Receiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=2, exchange=2, distribution=single) Fragment#2 targetNodes: [N0] @@ -16,8 +16,8 @@ Fragment#2 tables: [NT2_N2] partitions: {N2=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=2, distribution=single) - IgniteTableScan(name=PUBLIC.NT2_N2, source=3, partitions=1, distribution=identity[0]) + Sender(targetFragment=0, exchange=2, distribution=single) + TableScan(name=PUBLIC.NT2_N2, source=3, partitions=1, distribution=identity[0]) Fragment#1 targetNodes: [N0] @@ -25,8 +25,8 @@ Fragment#1 tables: [NT1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.NT1_N1, source=4, partitions=1, distribution=identity[0]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.NT1_N1, source=4, partitions=1, distribution=identity[0]) --- N1 @@ -37,9 +37,9 @@ Fragment#0 root remoteFragments: [1, 2] exchangeSourceNodes: {1=[N1], 2=[N2]} tree: - IgniteNestedLoopJoin - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteReceiver(sourceFragment=2, exchange=2, distribution=single) + NestedLoopJoin + Receiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=2, exchange=2, distribution=single) Fragment#2 targetNodes: [N1] @@ -47,8 +47,8 @@ Fragment#2 tables: [NT2_N2] partitions: {N2=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=2, distribution=single) - IgniteTableScan(name=PUBLIC.NT2_N2, source=3, partitions=1, distribution=identity[0]) + Sender(targetFragment=0, exchange=2, distribution=single) + TableScan(name=PUBLIC.NT2_N2, source=3, partitions=1, distribution=identity[0]) Fragment#1 targetNodes: [N1] @@ -56,8 +56,8 @@ Fragment#1 tables: [NT1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.NT1_N1, source=4, partitions=1, distribution=identity[0]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.NT1_N1, source=4, partitions=1, distribution=identity[0]) --- N0 @@ -68,9 +68,9 @@ Fragment#0 root remoteFragments: [1, 2] exchangeSourceNodes: {1=[N1], 2=[N1]} tree: - IgniteNestedLoopJoin - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteReceiver(sourceFragment=2, exchange=2, distribution=single) + NestedLoopJoin + Receiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=2, exchange=2, distribution=single) Fragment#2 targetNodes: [N0] @@ -78,8 +78,8 @@ Fragment#2 tables: [NT2_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=2, distribution=single) - IgniteTableScan(name=PUBLIC.NT2_N1, source=3, partitions=1, distribution=identity[0]) + Sender(targetFragment=0, exchange=2, distribution=single) + TableScan(name=PUBLIC.NT2_N1, source=3, partitions=1, distribution=identity[0]) Fragment#1 targetNodes: [N0] @@ -87,8 +87,8 @@ Fragment#1 tables: [NT1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.NT1_N1, source=4, partitions=1, distribution=identity[0]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.NT1_N1, source=4, partitions=1, distribution=identity[0]) --- N1 @@ -99,9 +99,9 @@ Fragment#0 root remoteFragments: [1, 2] exchangeSourceNodes: {1=[N1], 2=[N1]} tree: - IgniteNestedLoopJoin - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteReceiver(sourceFragment=2, exchange=2, distribution=single) + NestedLoopJoin + Receiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=2, exchange=2, distribution=single) Fragment#2 targetNodes: [N1] @@ -109,8 +109,8 @@ Fragment#2 tables: [NT2_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=2, distribution=single) - IgniteTableScan(name=PUBLIC.NT2_N1, source=3, partitions=1, distribution=identity[0]) + Sender(targetFragment=0, exchange=2, distribution=single) + TableScan(name=PUBLIC.NT2_N1, source=3, partitions=1, distribution=identity[0]) Fragment#1 targetNodes: [N1] @@ -118,6 +118,6 @@ Fragment#1 tables: [NT1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.NT1_N1, source=4, partitions=1, distribution=identity[0]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.NT1_N1, source=4, partitions=1, distribution=identity[0]) --- diff --git a/modules/sql-engine/src/test/resources/mapping/table_identity_single.test b/modules/sql-engine/src/test/resources/mapping/table_identity_single.test index 7aba29f324..006200b299 100644 --- a/modules/sql-engine/src/test/resources/mapping/table_identity_single.test +++ b/modules/sql-engine/src/test/resources/mapping/table_identity_single.test @@ -6,7 +6,7 @@ Fragment#4 root remoteFragments: [5] exchangeSourceNodes: {5=[N1]} tree: - IgniteReceiver(sourceFragment=5, exchange=5, distribution=single) + Receiver(sourceFragment=5, exchange=5, distribution=single) Fragment#2 targetNodes: [N1] @@ -14,8 +14,8 @@ Fragment#2 tables: [NT_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=5, exchange=2, distribution=single) - IgniteTableScan(name=PUBLIC.NT_N1, source=3, partitions=1, distribution=identity[0]) + Sender(targetFragment=5, exchange=2, distribution=single) + TableScan(name=PUBLIC.NT_N1, source=3, partitions=1, distribution=identity[0]) Fragment#5 targetNodes: [N0] @@ -25,10 +25,10 @@ Fragment#5 tables: [CT_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=4, exchange=5, distribution=single) - IgniteNestedLoopJoin - IgniteTableScan(name=PUBLIC.CT_N1, source=1, partitions=1, distribution=single) - IgniteReceiver(sourceFragment=2, exchange=2, distribution=single) + Sender(targetFragment=4, exchange=5, distribution=single) + NestedLoopJoin + TableScan(name=PUBLIC.CT_N1, source=1, partitions=1, distribution=single) + Receiver(sourceFragment=2, exchange=2, distribution=single) --- N1 @@ -41,9 +41,9 @@ Fragment#0 root tables: [CT_N1] partitions: {N1=[0:1]} tree: - IgniteNestedLoopJoin - IgniteTableScan(name=PUBLIC.CT_N1, source=1, partitions=1, distribution=single) - IgniteReceiver(sourceFragment=2, exchange=2, distribution=single) + NestedLoopJoin + TableScan(name=PUBLIC.CT_N1, source=1, partitions=1, distribution=single) + Receiver(sourceFragment=2, exchange=2, distribution=single) Fragment#2 targetNodes: [N1] @@ -51,8 +51,8 @@ Fragment#2 tables: [NT_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=2, distribution=single) - IgniteTableScan(name=PUBLIC.NT_N1, source=3, partitions=1, distribution=identity[0]) + Sender(targetFragment=0, exchange=2, distribution=single) + TableScan(name=PUBLIC.NT_N1, source=3, partitions=1, distribution=identity[0]) --- N0 @@ -63,7 +63,7 @@ Fragment#4 root remoteFragments: [5] exchangeSourceNodes: {5=[N1]} tree: - IgniteReceiver(sourceFragment=5, exchange=5, distribution=single) + Receiver(sourceFragment=5, exchange=5, distribution=single) Fragment#2 targetNodes: [N1] @@ -71,8 +71,8 @@ Fragment#2 tables: [NT_N2] partitions: {N2=[0:1]} tree: - IgniteSender(targetFragment=5, exchange=2, distribution=single) - IgniteTableScan(name=PUBLIC.NT_N2, source=3, partitions=1, distribution=identity[0]) + Sender(targetFragment=5, exchange=2, distribution=single) + TableScan(name=PUBLIC.NT_N2, source=3, partitions=1, distribution=identity[0]) Fragment#5 targetNodes: [N0] @@ -82,10 +82,10 @@ Fragment#5 tables: [CT_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=4, exchange=5, distribution=single) - IgniteNestedLoopJoin - IgniteTableScan(name=PUBLIC.CT_N1, source=1, partitions=1, distribution=single) - IgniteReceiver(sourceFragment=2, exchange=2, distribution=single) + Sender(targetFragment=4, exchange=5, distribution=single) + NestedLoopJoin + TableScan(name=PUBLIC.CT_N1, source=1, partitions=1, distribution=single) + Receiver(sourceFragment=2, exchange=2, distribution=single) --- N1 @@ -98,9 +98,9 @@ Fragment#0 root tables: [CT_N1] partitions: {N1=[0:1]} tree: - IgniteNestedLoopJoin - IgniteTableScan(name=PUBLIC.CT_N1, source=1, partitions=1, distribution=single) - IgniteReceiver(sourceFragment=2, exchange=2, distribution=single) + NestedLoopJoin + TableScan(name=PUBLIC.CT_N1, source=1, partitions=1, distribution=single) + Receiver(sourceFragment=2, exchange=2, distribution=single) Fragment#2 targetNodes: [N1] @@ -108,6 +108,6 @@ Fragment#2 tables: [NT_N2] partitions: {N2=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=2, distribution=single) - IgniteTableScan(name=PUBLIC.NT_N2, source=3, partitions=1, distribution=identity[0]) + Sender(targetFragment=0, exchange=2, distribution=single) + TableScan(name=PUBLIC.NT_N2, source=3, partitions=1, distribution=identity[0]) --- diff --git a/modules/sql-engine/src/test/resources/mapping/table_single.test b/modules/sql-engine/src/test/resources/mapping/table_single.test index e6a16a29d5..12d7342b82 100644 --- a/modules/sql-engine/src/test/resources/mapping/table_single.test +++ b/modules/sql-engine/src/test/resources/mapping/table_single.test @@ -6,7 +6,7 @@ Fragment#3 root remoteFragments: [4] exchangeSourceNodes: {4=[N1]} tree: - IgniteReceiver(sourceFragment=4, exchange=4, distribution=single) + Receiver(sourceFragment=4, exchange=4, distribution=single) Fragment#4 targetNodes: [N0] @@ -14,10 +14,10 @@ Fragment#4 tables: [CT1_N1, CT2_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=3, exchange=4, distribution=single) - IgniteNestedLoopJoin - IgniteTableScan(name=PUBLIC.CT1_N1, source=1, partitions=1, distribution=single) - IgniteTableScan(name=PUBLIC.CT2_N1, source=2, partitions=1, distribution=single) + Sender(targetFragment=3, exchange=4, distribution=single) + NestedLoopJoin + TableScan(name=PUBLIC.CT1_N1, source=1, partitions=1, distribution=single) + TableScan(name=PUBLIC.CT2_N1, source=2, partitions=1, distribution=single) --- N1 @@ -28,9 +28,9 @@ Fragment#0 root tables: [CT1_N1, CT2_N1] partitions: {N1=[0:1]} tree: - IgniteNestedLoopJoin - IgniteTableScan(name=PUBLIC.CT1_N1, source=1, partitions=1, distribution=single) - IgniteTableScan(name=PUBLIC.CT2_N1, source=2, partitions=1, distribution=single) + NestedLoopJoin + TableScan(name=PUBLIC.CT1_N1, source=1, partitions=1, distribution=single) + TableScan(name=PUBLIC.CT2_N1, source=2, partitions=1, distribution=single) --- N0 @@ -41,7 +41,7 @@ Fragment#5 root remoteFragments: [6] exchangeSourceNodes: {6=[N2]} tree: - IgniteReceiver(sourceFragment=6, exchange=6, distribution=single) + Receiver(sourceFragment=6, exchange=6, distribution=single) Fragment#4 targetNodes: [N2] @@ -49,8 +49,8 @@ Fragment#4 tables: [CT1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=6, exchange=4, distribution=single) - IgniteTableScan(name=PUBLIC.CT1_N1, source=1, partitions=1, distribution=single) + Sender(targetFragment=6, exchange=4, distribution=single) + TableScan(name=PUBLIC.CT1_N1, source=1, partitions=1, distribution=single) Fragment#6 targetNodes: [N0] @@ -60,10 +60,10 @@ Fragment#6 tables: [CT2_N2] partitions: {N2=[0:1]} tree: - IgniteSender(targetFragment=5, exchange=6, distribution=single) - IgniteNestedLoopJoin - IgniteReceiver(sourceFragment=4, exchange=4, distribution=single) - IgniteTableScan(name=PUBLIC.CT2_N2, source=2, partitions=1, distribution=single) + Sender(targetFragment=5, exchange=6, distribution=single) + NestedLoopJoin + Receiver(sourceFragment=4, exchange=4, distribution=single) + TableScan(name=PUBLIC.CT2_N2, source=2, partitions=1, distribution=single) --- N1 @@ -74,7 +74,7 @@ Fragment#5 root remoteFragments: [6] exchangeSourceNodes: {6=[N2]} tree: - IgniteReceiver(sourceFragment=6, exchange=6, distribution=single) + Receiver(sourceFragment=6, exchange=6, distribution=single) Fragment#4 targetNodes: [N2] @@ -82,8 +82,8 @@ Fragment#4 tables: [CT1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=6, exchange=4, distribution=single) - IgniteTableScan(name=PUBLIC.CT1_N1, source=1, partitions=1, distribution=single) + Sender(targetFragment=6, exchange=4, distribution=single) + TableScan(name=PUBLIC.CT1_N1, source=1, partitions=1, distribution=single) Fragment#6 targetNodes: [N1] @@ -93,8 +93,8 @@ Fragment#6 tables: [CT2_N2] partitions: {N2=[0:1]} tree: - IgniteSender(targetFragment=5, exchange=6, distribution=single) - IgniteNestedLoopJoin - IgniteReceiver(sourceFragment=4, exchange=4, distribution=single) - IgniteTableScan(name=PUBLIC.CT2_N2, source=2, partitions=1, distribution=single) + Sender(targetFragment=5, exchange=6, distribution=single) + NestedLoopJoin + Receiver(sourceFragment=4, exchange=4, distribution=single) + TableScan(name=PUBLIC.CT2_N2, source=2, partitions=1, distribution=single) --- diff --git a/modules/sql-engine/src/test/resources/mapping/test_partition_pruning.test b/modules/sql-engine/src/test/resources/mapping/test_partition_pruning.test index fb13e9b698..9b8ce7d85f 100644 --- a/modules/sql-engine/src/test/resources/mapping/test_partition_pruning.test +++ b/modules/sql-engine/src/test/resources/mapping/test_partition_pruning.test @@ -7,7 +7,7 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N2]} tree: - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N1] @@ -15,8 +15,8 @@ Fragment#1 tables: [T1_N1N2N3] partitions: {N2=[1:3]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.T1_N1N2N3, source=2, partitions=3, distribution=affinity[table: T1_N1N2N3, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.T1_N1N2N3, source=2, partitions=3, distribution=affinity[table: T1_N1N2N3, columns: [ID]]) --- # Partition pruning of joined tables (relies on predicate push down) N1 @@ -27,9 +27,9 @@ Fragment#0 root remoteFragments: [1, 2] exchangeSourceNodes: {1=[N2], 2=[N4]} tree: - IgniteMergeJoin - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteReceiver(sourceFragment=2, exchange=2, distribution=single) + MergeJoin + Receiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=2, exchange=2, distribution=single) Fragment#2 targetNodes: [N1] @@ -37,9 +37,9 @@ Fragment#2 tables: [T2_N4N5] partitions: {N4=[0:2]} tree: - IgniteSender(targetFragment=0, exchange=2, distribution=single) - IgniteSort - IgniteTableScan(name=PUBLIC.T2_N4N5, source=3, partitions=2, distribution=affinity[table: T2_N4N5, columns: [ID]]) + Sender(targetFragment=0, exchange=2, distribution=single) + Sort + TableScan(name=PUBLIC.T2_N4N5, source=3, partitions=2, distribution=affinity[table: T2_N4N5, columns: [ID]]) Fragment#1 targetNodes: [N1] @@ -47,9 +47,9 @@ Fragment#1 tables: [T1_N1N2N3] partitions: {N2=[1:3]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteSort - IgniteTableScan(name=PUBLIC.T1_N1N2N3, source=4, partitions=3, distribution=affinity[table: T1_N1N2N3, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + Sort + TableScan(name=PUBLIC.T1_N1N2N3, source=4, partitions=3, distribution=affinity[table: T1_N1N2N3, columns: [ID]]) --- # Self join, different predicates that produce same set of partitions N1 @@ -60,9 +60,9 @@ Fragment#0 root remoteFragments: [1, 2] exchangeSourceNodes: {1=[N2], 2=[N2]} tree: - IgniteMergeJoin - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteReceiver(sourceFragment=2, exchange=2, distribution=single) + MergeJoin + Receiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=2, exchange=2, distribution=single) Fragment#2 targetNodes: [N1] @@ -70,9 +70,9 @@ Fragment#2 tables: [T1_N1N2N3] partitions: {N2=[1:3]} tree: - IgniteSender(targetFragment=0, exchange=2, distribution=single) - IgniteSort - IgniteTableScan(name=PUBLIC.T1_N1N2N3, source=3, partitions=3, distribution=affinity[table: T1_N1N2N3, columns: [ID]]) + Sender(targetFragment=0, exchange=2, distribution=single) + Sort + TableScan(name=PUBLIC.T1_N1N2N3, source=3, partitions=3, distribution=affinity[table: T1_N1N2N3, columns: [ID]]) Fragment#1 targetNodes: [N1] @@ -80,9 +80,9 @@ Fragment#1 tables: [T1_N1N2N3] partitions: {N2=[1:3]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteSort - IgniteTableScan(name=PUBLIC.T1_N1N2N3, source=4, partitions=3, distribution=affinity[table: T1_N1N2N3, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + Sort + TableScan(name=PUBLIC.T1_N1N2N3, source=4, partitions=3, distribution=affinity[table: T1_N1N2N3, columns: [ID]]) --- # Self join, different predicates that produce disjoint set of partitions N1 @@ -93,7 +93,7 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N2, N3]} tree: - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N1] @@ -101,10 +101,10 @@ Fragment#1 tables: [T1_N1N2N3, T1_N1N2N3] partitions: {N2=[1:3], N3=[2:3]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteMergeJoin - IgniteSort - IgniteTableScan(name=PUBLIC.T1_N1N2N3, source=2, partitions=3, distribution=affinity[table: T1_N1N2N3, columns: [ID]]) - IgniteSort - IgniteTableScan(name=PUBLIC.T1_N1N2N3, source=3, partitions=3, distribution=affinity[table: T1_N1N2N3, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + MergeJoin + Sort + TableScan(name=PUBLIC.T1_N1N2N3, source=2, partitions=3, distribution=affinity[table: T1_N1N2N3, columns: [ID]]) + Sort + TableScan(name=PUBLIC.T1_N1N2N3, source=3, partitions=3, distribution=affinity[table: T1_N1N2N3, columns: [ID]]) --- diff --git a/modules/sql-engine/src/test/resources/mapping/union.test b/modules/sql-engine/src/test/resources/mapping/union.test index dd045d4f7a..9b58561ed5 100644 --- a/modules/sql-engine/src/test/resources/mapping/union.test +++ b/modules/sql-engine/src/test/resources/mapping/union.test @@ -7,11 +7,11 @@ Fragment#0 root remoteFragments: [1, 2] exchangeSourceNodes: {1=[N1], 2=[N1]} tree: - IgniteReduceHashAggregate - IgniteMapHashAggregate - IgniteUnionAll - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteReceiver(sourceFragment=2, exchange=2, distribution=single) + ReduceHashAggregate + MapHashAggregate + UnionAll + Receiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=2, exchange=2, distribution=single) Fragment#2 targetNodes: [N1] @@ -19,8 +19,8 @@ Fragment#2 tables: [T2_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=2, distribution=single) - IgniteTableScan(name=PUBLIC.T2_N1, source=3, partitions=1, distribution=affinity[table: T2_N1, columns: [ID]]) + Sender(targetFragment=0, exchange=2, distribution=single) + TableScan(name=PUBLIC.T2_N1, source=3, partitions=1, distribution=affinity[table: T2_N1, columns: [ID]]) Fragment#1 targetNodes: [N1] @@ -28,8 +28,8 @@ Fragment#1 tables: [T1_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.T1_N1, source=4, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.T1_N1, source=4, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) --- N1 @@ -41,7 +41,7 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1]} tree: - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N1] @@ -49,11 +49,11 @@ Fragment#1 tables: [T1_N1, T2_N1] partitions: {N1=[0:1]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteColocatedHashAggregate - IgniteUnionAll - IgniteTableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) - IgniteTableScan(name=PUBLIC.T2_N1, source=3, partitions=1, distribution=affinity[table: T2_N1, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + ColocatedHashAggregate + UnionAll + TableScan(name=PUBLIC.T1_N1, source=2, partitions=1, distribution=affinity[table: T1_N1, columns: [ID]]) + TableScan(name=PUBLIC.T2_N1, source=3, partitions=1, distribution=affinity[table: T2_N1, columns: [ID]]) --- N1 @@ -65,11 +65,11 @@ Fragment#0 root remoteFragments: [1, 2] exchangeSourceNodes: {1=[N1, N2], 2=[N1, N2]} tree: - IgniteReduceHashAggregate - IgniteMapHashAggregate - IgniteUnionAll - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) - IgniteReceiver(sourceFragment=2, exchange=2, distribution=single) + ReduceHashAggregate + MapHashAggregate + UnionAll + Receiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=2, exchange=2, distribution=single) Fragment#2 targetNodes: [N1] @@ -77,8 +77,8 @@ Fragment#2 tables: [T2_N1N2] partitions: {N1=[0:2], N2=[1:2]} tree: - IgniteSender(targetFragment=0, exchange=2, distribution=single) - IgniteTableScan(name=PUBLIC.T2_N1N2, source=3, partitions=2, distribution=affinity[table: T2_N1N2, columns: [ID]]) + Sender(targetFragment=0, exchange=2, distribution=single) + TableScan(name=PUBLIC.T2_N1N2, source=3, partitions=2, distribution=affinity[table: T2_N1N2, columns: [ID]]) Fragment#1 targetNodes: [N1] @@ -86,8 +86,8 @@ Fragment#1 tables: [T1_N1N2] partitions: {N1=[0:2], N2=[1:2]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteTableScan(name=PUBLIC.T1_N1N2, source=4, partitions=2, distribution=affinity[table: T1_N1N2, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + TableScan(name=PUBLIC.T1_N1N2, source=4, partitions=2, distribution=affinity[table: T1_N1N2, columns: [ID]]) --- N1 @@ -99,7 +99,7 @@ Fragment#0 root remoteFragments: [1] exchangeSourceNodes: {1=[N1, N2]} tree: - IgniteReceiver(sourceFragment=1, exchange=1, distribution=single) + Receiver(sourceFragment=1, exchange=1, distribution=single) Fragment#1 targetNodes: [N1] @@ -107,9 +107,9 @@ Fragment#1 tables: [T1_N1N2, T2_N1N2] partitions: {N1=[0:2], N2=[1:2]} tree: - IgniteSender(targetFragment=0, exchange=1, distribution=single) - IgniteColocatedHashAggregate - IgniteUnionAll - IgniteTableScan(name=PUBLIC.T1_N1N2, source=2, partitions=2, distribution=affinity[table: T1_N1N2, columns: [ID]]) - IgniteTableScan(name=PUBLIC.T2_N1N2, source=3, partitions=2, distribution=affinity[table: T2_N1N2, columns: [ID]]) + Sender(targetFragment=0, exchange=1, distribution=single) + ColocatedHashAggregate + UnionAll + TableScan(name=PUBLIC.T1_N1N2, source=2, partitions=2, distribution=affinity[table: T1_N1N2, columns: [ID]]) + TableScan(name=PUBLIC.T2_N1N2, source=3, partitions=2, distribution=affinity[table: T2_N1N2, columns: [ID]]) --- diff --git a/modules/sql-engine/src/test/resources/mapping/values.test b/modules/sql-engine/src/test/resources/mapping/values.test index fe3cb632b5..7a9f440c04 100644 --- a/modules/sql-engine/src/test/resources/mapping/values.test +++ b/modules/sql-engine/src/test/resources/mapping/values.test @@ -4,7 +4,7 @@ SELECT 1 Fragment#0 root executionNodes: [N1] tree: - IgniteValues + Values --- N2 @@ -13,5 +13,5 @@ SELECT 1 Fragment#0 root executionNodes: [N2] tree: - IgniteValues + Values --- diff --git a/modules/sql-engine/src/testFixtures/java/org/apache/ignite/internal/sql/engine/util/QueryChecker.java b/modules/sql-engine/src/testFixtures/java/org/apache/ignite/internal/sql/engine/util/QueryChecker.java index 195710df0e..36a46d2009 100644 --- a/modules/sql-engine/src/testFixtures/java/org/apache/ignite/internal/sql/engine/util/QueryChecker.java +++ b/modules/sql-engine/src/testFixtures/java/org/apache/ignite/internal/sql/engine/util/QueryChecker.java @@ -40,12 +40,12 @@ public interface QueryChecker { /** Creates a matcher that matches if the examined string contains the specified string anywhere. */ static Matcher<String> containsUnion(boolean all) { - return CoreMatchers.containsString("IgniteUnionAll(all=[" + all + "])"); + return CoreMatchers.containsString("UnionAll(all=[" + all + "])"); } /** Creates a matcher that matches if the examined string contains the specified string anywhere. */ static Matcher<String> containsUnion() { - return CoreMatchers.containsString("IgniteUnionAll(all="); + return CoreMatchers.containsString("UnionAll(all="); } /** @@ -56,7 +56,7 @@ public interface QueryChecker { * @return Matcher. */ static Matcher<String> containsTableScan(String schema, String tblName) { - return containsSubPlan("IgniteTableScan(table=[[" + schema + ", " + tblName + "]]"); + return containsSubPlan("TableScan(table=[[" + schema + ", " + tblName + "]]"); } /** @@ -67,7 +67,7 @@ public interface QueryChecker { * @return Matcher. */ static Matcher<String> containsIndexScan(String schema, String tblName) { - return matchesOnce(".*IgniteIndexScan\\(table=\\[\\[" + schema + ", " + tblName + "\\]\\]," + return matchesOnce(".*IndexScan\\(table=\\[\\[" + schema + ", " + tblName + "\\]\\]," + " tableId=\\[.*\\].*\\)"); } @@ -80,7 +80,7 @@ public interface QueryChecker { * @return Matcher. */ static Matcher<String> containsIndexScan(String schema, String tblName, String idxName) { - return matchesOnce(".*IgniteIndexScan\\(table=\\[\\[" + schema + ", " + tblName + "\\]\\]," + return matchesOnce(".*IndexScan\\(table=\\[\\[" + schema + ", " + tblName + "\\]\\]," + " tableId=\\[.*\\], index=\\[" + idxName + "\\].*\\)"); } @@ -112,7 +112,7 @@ public interface QueryChecker { * @return Matcher. */ static Matcher<String> containsProject(String schema, String tblName, int... requiredColumns) { - return matches(".*Ignite(Table|Index)Scan\\(table=\\[\\[" + schema + ", " + return matches(".*(Table|Index)Scan\\(table=\\[\\[" + schema + ", " + tblName + "\\]\\], " + ".*requiredColumns=\\[\\{" + Arrays.toString(requiredColumns) .replaceAll("\\[", "") @@ -128,7 +128,7 @@ public interface QueryChecker { * @return Matcher. */ static Matcher<String> containsOneProject(String schema, String tblName, int... requiredColumns) { - return matchesOnce(".*Ignite(Table|Index)Scan\\(table=\\[\\[" + schema + ", " + return matchesOnce(".*(Table|Index)Scan\\(table=\\[\\[" + schema + ", " + tblName + "\\]\\], " + ".*requiredColumns=\\[\\{" + Arrays.toString(requiredColumns) .replaceAll("\\[", "") @@ -143,7 +143,7 @@ public interface QueryChecker { * @return Matcher. */ static Matcher<String> containsAnyProject(String schema, String tblName) { - return matchesOnce(".*Ignite(Table|Index)Scan\\(table=\\[\\[" + schema + ", " + return matchesOnce(".*(Table|Index)Scan\\(table=\\[\\[" + schema + ", " + tblName + "\\]\\],.*requiredColumns=\\[\\{(\\d|\\W|,)+\\}\\].*"); } @@ -284,7 +284,7 @@ public interface QueryChecker { */ static Matcher<String> containsAnyScan(String schema, String tblName, String... idxNames) { if (nullOrEmpty(idxNames)) { - return matchesOnce(".*Ignite(Table|Index)Scan\\(table=\\[\\[" + schema + ", " + tblName + "\\]\\].*"); + return matchesOnce(".*(Table|Index)Scan\\(table=\\[\\[" + schema + ", " + tblName + "\\]\\].*"); } return CoreMatchers.anyOf(