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(

Reply via email to