You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by al...@apache.org on 2022/03/05 13:51:41 UTC

[ignite] branch sql-calcite updated: IGNITE-16652 Fix minor issues for green TC bot visa - Fixes #9866.

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

alexpl pushed a commit to branch sql-calcite
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/sql-calcite by this push:
     new fc0b454  IGNITE-16652 Fix minor issues for green TC bot visa - Fixes #9866.
fc0b454 is described below

commit fc0b454584e04c0720e9298c03c974c88a757e54
Author: Aleksey Plekhanov <pl...@gmail.com>
AuthorDate: Sat Mar 5 16:49:35 2022 +0300

    IGNITE-16652 Fix minor issues for green TC bot visa - Fixes #9866.
    
    Signed-off-by: Aleksey Plekhanov <pl...@gmail.com>
---
 .../calcite/exec/ClosableIteratorsHolder.java      |  2 +-
 .../query/calcite/metadata/IgniteMdCollation.java  |  2 +-
 .../query/calcite/rel/IgniteAggregate.java         |  4 +--
 .../rel/agg/IgniteColocatedAggregateBase.java      |  4 +--
 .../rel/agg/IgniteColocatedHashAggregate.java      |  4 +--
 .../rel/agg/IgniteColocatedSortAggregate.java      |  4 +--
 .../calcite/rel/agg/IgniteMapAggregateBase.java    |  4 +--
 .../calcite/rel/set/IgniteColocatedIntersect.java  |  2 +-
 .../calcite/rel/set/IgniteColocatedMinus.java      |  2 +-
 .../query/calcite/rel/set/IgniteIntersect.java     |  2 +-
 .../query/calcite/rel/set/IgniteMinus.java         |  2 +-
 .../query/calcite/schema/IgniteTable.java          |  2 +-
 .../processors/query/calcite/TestUtils.java        | 41 ++++++++++++++++++++++
 .../integration/TableDdlIntegrationTest.java       |  2 +-
 .../calcite/planner/JoinColocationPlannerTest.java |  2 +-
 .../internal/jdbc2/JdbcMetadataSelfTest.java       |  8 +++--
 .../ignite/jdbc/thin/JdbcThinMetadataSelfTest.java | 23 +++++++++---
 .../apache/ignite/util/SystemViewCommandTest.java  |  6 ++--
 .../ignite/internal/jdbc/thin/JdbcThinTcpIo.java   |  3 +-
 .../apache/ignite/testframework/GridTestUtils.java | 16 ---------
 .../cache/metric/SqlViewExporterSpiTest.java       |  6 ++--
 21 files changed, 93 insertions(+), 48 deletions(-)

diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ClosableIteratorsHolder.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ClosableIteratorsHolder.java
index 063abb5..caae30f 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ClosableIteratorsHolder.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ClosableIteratorsHolder.java
@@ -68,7 +68,7 @@ public class ClosableIteratorsHolder {
 
     /** */
     public void init() {
-        cleanWorker = new Thread(() -> cleanUp(true));
+        cleanWorker = new Thread(() -> cleanUp(true), "ignite-calcite-iterators-cleanup");
         cleanWorker.setDaemon(true);
         cleanWorker.start();
     }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdCollation.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdCollation.java
index 37b22a2..90ea7f1 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdCollation.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdCollation.java
@@ -98,7 +98,7 @@ public class IgniteMdCollation implements MetadataHandler<BuiltInMetadata.Collat
     }
 
     /** Catch-all implementation for
-     * {@link BuiltInMetadata.Collation#collations()},
+     * {@link org.apache.calcite.rel.metadata.BuiltInMetadata.Collation#collations()},
      * invoked using reflection, for any relational expression not
      * handled by a more specific method.
      *
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteAggregate.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteAggregate.java
index 3b85c31..3fada0a 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteAggregate.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteAggregate.java
@@ -39,7 +39,7 @@ import static org.apache.ignite.internal.processors.query.calcite.trait.TraitUti
  *
  */
 public abstract class IgniteAggregate extends Aggregate implements IgniteRel {
-    /** {@inheritDoc} */
+    /** */
     protected IgniteAggregate(
         RelOptCluster cluster,
         RelTraitSet traitSet,
@@ -51,7 +51,7 @@ public abstract class IgniteAggregate extends Aggregate implements IgniteRel {
         super(cluster, traitSet, ImmutableList.of(), input, groupSet, groupSets, aggCalls);
     }
 
-    /** {@inheritDoc} */
+    /** */
     protected IgniteAggregate(RelInput input) {
         super(changeTraits(input, IgniteConvention.INSTANCE));
     }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteColocatedAggregateBase.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteColocatedAggregateBase.java
index c397474..905a822 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteColocatedAggregateBase.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteColocatedAggregateBase.java
@@ -39,7 +39,7 @@ import org.apache.ignite.internal.processors.query.calcite.util.Commons;
  *
  */
 public abstract class IgniteColocatedAggregateBase extends IgniteAggregate implements TraitsAwareIgniteRel {
-    /** {@inheritDoc} */
+    /** */
     protected IgniteColocatedAggregateBase(
         RelOptCluster cluster,
         RelTraitSet traitSet,
@@ -51,7 +51,7 @@ public abstract class IgniteColocatedAggregateBase extends IgniteAggregate imple
         super(cluster, traitSet, input, groupSet, groupSets, aggCalls);
     }
 
-    /** {@inheritDoc} */
+    /** */
     protected IgniteColocatedAggregateBase(RelInput input) {
         super(TraitUtils.changeTraits(input, IgniteConvention.INSTANCE));
     }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteColocatedHashAggregate.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteColocatedHashAggregate.java
index 880cbba..0357917 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteColocatedHashAggregate.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteColocatedHashAggregate.java
@@ -36,13 +36,13 @@ import org.apache.ignite.internal.processors.query.calcite.rel.IgniteRelVisitor;
  *
  */
 public class IgniteColocatedHashAggregate extends IgniteColocatedAggregateBase implements IgniteHashAggregateBase {
-    /** {@inheritDoc} */
+    /** */
     public IgniteColocatedHashAggregate(RelOptCluster cluster, RelTraitSet traitSet, RelNode input, ImmutableBitSet groupSet,
         List<ImmutableBitSet> groupSets, List<AggregateCall> aggCalls) {
         super(cluster, traitSet, input, groupSet, groupSets, aggCalls);
     }
 
-    /** {@inheritDoc} */
+    /** */
     public IgniteColocatedHashAggregate(RelInput input) {
         super(input);
     }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteColocatedSortAggregate.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteColocatedSortAggregate.java
index b15484b..50488bf 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteColocatedSortAggregate.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteColocatedSortAggregate.java
@@ -43,7 +43,7 @@ public class IgniteColocatedSortAggregate extends IgniteColocatedAggregateBase i
     /** Collation. */
     private final RelCollation collation;
 
-    /** {@inheritDoc} */
+    /** */
     public IgniteColocatedSortAggregate(
         RelOptCluster cluster,
         RelTraitSet traitSet,
@@ -61,7 +61,7 @@ public class IgniteColocatedSortAggregate extends IgniteColocatedAggregateBase i
         this.collation = collation;
     }
 
-    /** {@inheritDoc} */
+    /** */
     public IgniteColocatedSortAggregate(RelInput input) {
         super(input);
 
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteMapAggregateBase.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteMapAggregateBase.java
index fdc0971..fb54113 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteMapAggregateBase.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteMapAggregateBase.java
@@ -36,7 +36,7 @@ import org.apache.ignite.internal.processors.query.calcite.trait.TraitsAwareIgni
  *
  */
 public abstract class IgniteMapAggregateBase extends IgniteAggregate implements TraitsAwareIgniteRel {
-    /** {@inheritDoc} */
+    /** */
     protected IgniteMapAggregateBase(
         RelOptCluster cluster,
         RelTraitSet traitSet,
@@ -48,7 +48,7 @@ public abstract class IgniteMapAggregateBase extends IgniteAggregate implements
         super(cluster, traitSet, input, groupSet, groupSets, aggCalls);
     }
 
-    /** {@inheritDoc} */
+    /** */
     protected IgniteMapAggregateBase(RelInput input) {
         super(TraitUtils.changeTraits(input, IgniteConvention.INSTANCE));
     }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteColocatedIntersect.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteColocatedIntersect.java
index 16a72c7..c22b6e4 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteColocatedIntersect.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteColocatedIntersect.java
@@ -30,7 +30,7 @@ import org.apache.ignite.internal.processors.query.calcite.util.Commons;
  * Physical node for INTERSECT operator which inputs are colocated.
  */
 public class IgniteColocatedIntersect extends IgniteIntersect implements IgniteColocatedSetOp {
-    /** {@inheritDoc} */
+    /** */
     public IgniteColocatedIntersect(
         RelOptCluster cluster,
         RelTraitSet traitSet,
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteColocatedMinus.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteColocatedMinus.java
index e7458a3..c1f9b02b 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteColocatedMinus.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteColocatedMinus.java
@@ -30,7 +30,7 @@ import org.apache.ignite.internal.processors.query.calcite.util.Commons;
  * Physical node for MINUS (EXCEPT) operator which inputs are colocated.
  */
 public class IgniteColocatedMinus extends IgniteMinus implements IgniteColocatedSetOp {
-    /** {@inheritDoc} */
+    /** */
     public IgniteColocatedMinus(
         RelOptCluster cluster,
         RelTraitSet traitSet,
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteIntersect.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteIntersect.java
index 3f876a4..75f3780 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteIntersect.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteIntersect.java
@@ -38,7 +38,7 @@ public abstract class IgniteIntersect extends Intersect implements IgniteSetOp {
         super(cluster, traits, inputs, all);
     }
 
-    /** {@inheritDoc} */
+    /** */
     protected IgniteIntersect(RelInput input) {
         super(TraitUtils.changeTraits(input, IgniteConvention.INSTANCE));
     }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteMinus.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteMinus.java
index 1a57a4b..d27a9bb 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteMinus.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteMinus.java
@@ -41,7 +41,7 @@ public abstract class IgniteMinus extends Minus implements IgniteSetOp {
         super(cluster, traits, inputs, all);
     }
 
-    /** {@inheritDoc} */
+    /** */
     protected IgniteMinus(RelInput input) {
         super(TraitUtils.changeTraits(input, IgniteConvention.INSTANCE));
     }
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteTable.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteTable.java
index b42f4fa..1d12c8c 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteTable.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteTable.java
@@ -152,7 +152,7 @@ public interface IgniteTable extends TranslatableTable {
     /**
      * Returns index rebuild flag.
      *
-     * @param {@code True} if index rebuild in progress.
+     * @return {@code True} if index rebuild in progress.
      */
     boolean isIndexRebuildInProgress();
 }
diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/TestUtils.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/TestUtils.java
new file mode 100644
index 0000000..c5fb9ff
--- /dev/null
+++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/TestUtils.java
@@ -0,0 +1,41 @@
+/*
+ * 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.processors.query.calcite;
+
+import java.util.Collection;
+import org.hamcrest.CustomMatcher;
+import org.hamcrest.Matcher;
+
+/**
+ *  Test utils.
+ */
+public class TestUtils {
+    /**
+     * Matcher to verify size of the collection.
+     *
+     * @param size Required size.
+     * @return {@code true} in case collection is not null and has an exactly the same size.
+     */
+    public static <T extends Collection<?>> Matcher<T> hasSize(int size) {
+        return new CustomMatcher<T>("should be non empty with size=" + size) {
+            @Override public boolean matches(Object item) {
+                return item instanceof Collection && ((Collection<?>)item).size() == size;
+            }
+        };
+    }
+}
diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/TableDdlIntegrationTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/TableDdlIntegrationTest.java
index 28824b1..804d6bf 100644
--- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/TableDdlIntegrationTest.java
+++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/TableDdlIntegrationTest.java
@@ -43,8 +43,8 @@ import org.hamcrest.Matcher;
 import org.junit.Ignore;
 import org.junit.Test;
 
+import static org.apache.ignite.internal.processors.query.calcite.TestUtils.hasSize;
 import static org.apache.ignite.internal.util.IgniteUtils.map;
-import static org.apache.ignite.testframework.GridTestUtils.hasSize;
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.hasItem;
 import static org.hamcrest.CoreMatchers.nullValue;
diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/planner/JoinColocationPlannerTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/planner/JoinColocationPlannerTest.java
index 053a827..616405c 100644
--- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/planner/JoinColocationPlannerTest.java
+++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/planner/JoinColocationPlannerTest.java
@@ -30,7 +30,7 @@ import org.apache.ignite.internal.processors.query.calcite.trait.IgniteDistribut
 import org.apache.ignite.internal.util.typedef.internal.CU;
 import org.junit.Test;
 
-import static org.apache.ignite.testframework.GridTestUtils.hasSize;
+import static org.apache.ignite.internal.processors.query.calcite.TestUtils.hasSize;
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
diff --git a/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcMetadataSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcMetadataSelfTest.java
index d381d1b..4956476 100755
--- a/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcMetadataSelfTest.java
+++ b/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcMetadataSelfTest.java
@@ -36,6 +36,7 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.Set;
+import java.util.TreeSet;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.cache.QueryEntity;
 import org.apache.ignite.cache.QueryIndex;
@@ -319,7 +320,7 @@ public class JdbcMetadataSelfTest extends GridCommonAbstractTest {
      */
     @Test
     public void testGetAllView() throws Exception {
-        Set<String> expViews = new HashSet<>(Arrays.asList(
+        Set<String> expViews = new TreeSet<>(Arrays.asList(
             "BASELINE_NODES",
             "BASELINE_NODE_ATTRIBUTES",
             "CACHES",
@@ -361,10 +362,11 @@ public class JdbcMetadataSelfTest extends GridCommonAbstractTest {
             "DS_REENTRANTLOCKS",
             "STATISTICS_CONFIGURATION",
             "STATISTICS_PARTITION_DATA",
-            "STATISTICS_LOCAL_DATA"
+            "STATISTICS_LOCAL_DATA",
+            "STATISTICS_GLOBAL_DATA"
         ));
 
-        Set<String> actViews = new HashSet<>();
+        Set<String> actViews = new TreeSet<>();
 
         try (Connection conn = DriverManager.getConnection(BASE_URL)) {
             DatabaseMetaData meta = conn.getMetaData();
diff --git a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinMetadataSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinMetadataSelfTest.java
index 43ec92f..c57c742 100644
--- a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinMetadataSelfTest.java
+++ b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinMetadataSelfTest.java
@@ -37,6 +37,7 @@ import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Set;
+import java.util.TreeSet;
 
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.cache.QueryEntity;
@@ -413,7 +414,7 @@ public class JdbcThinMetadataSelfTest extends JdbcThinAbstractSelfTest {
     public void testGetAllView() throws Exception {
         testGetTables(
             new String[] {"VIEW"},
-            new HashSet<>(Arrays.asList(
+            new TreeSet<>(Arrays.asList(
                 "SYS.METRICS",
                 "SYS.SERVICES",
                 "SYS.CACHE_GROUPS",
@@ -455,6 +456,7 @@ public class JdbcThinMetadataSelfTest extends JdbcThinAbstractSelfTest {
                 "SYS.DS_SEMAPHORES",
                 "SYS.DS_REENTRANTLOCKS",
                 "SYS.STATISTICS_LOCAL_DATA",
+                "SYS.STATISTICS_GLOBAL_DATA",
                 "SYS.STATISTICS_PARTITION_DATA",
                 "SYS.STATISTICS_CONFIGURATION"
             ))
@@ -470,7 +472,7 @@ public class JdbcThinMetadataSelfTest extends JdbcThinAbstractSelfTest {
 
             ResultSet rs = meta.getTables(null, null, null, tblTypes);
 
-            Set<String> actualTbls = new HashSet<>(expTbls.size());
+            Set<String> actualTbls = new TreeSet<>();
 
             while (rs.next()) {
                 actualTbls.add(rs.getString("TABLE_SCHEM") + '.'
@@ -605,7 +607,7 @@ public class JdbcThinMetadataSelfTest extends JdbcThinAbstractSelfTest {
 
             ResultSet rs = meta.getColumns(null, null, null, null);
 
-            Set<String> expectedCols = new HashSet<>(Arrays.asList(
+            Set<String> expectedCols = new TreeSet<>(Arrays.asList(
                 "PUBLIC.Quoted.Id.null",
                 "PUBLIC.Quoted.Name.null.50",
                 "PUBLIC.TEST.ID.null",
@@ -654,7 +656,7 @@ public class JdbcThinMetadataSelfTest extends JdbcThinAbstractSelfTest {
 
             Assert.assertEquals(expectedCols, actualUserCols);
 
-            expectedCols = new HashSet<>(Arrays.asList(
+            expectedCols = new TreeSet<>(Arrays.asList(
                 "SYS.BASELINE_NODES.CONSISTENT_ID.null.2147483647",
                 "SYS.BASELINE_NODES.ONLINE.null.1",
                 "SYS.BASELINE_NODE_ATTRIBUTES.NODE_CONSISTENT_ID.null.2147483647",
@@ -1116,7 +1118,18 @@ public class JdbcThinMetadataSelfTest extends JdbcThinAbstractSelfTest {
                 "SYS.STATISTICS_LOCAL_DATA.TYPE.null.2147483647",
                 "SYS.STATISTICS_PARTITION_DATA.NULLS.null.19",
                 "SYS.STATISTICS_PARTITION_DATA.COLUMN.null.2147483647",
-                "SYS.STATISTICS_LOCAL_DATA.SCHEMA.null.2147483647"
+                "SYS.STATISTICS_LOCAL_DATA.SCHEMA.null.2147483647",
+                "SYS.STATISTICS_GLOBAL_DATA.SCHEMA.null.2147483647",
+                "SYS.STATISTICS_GLOBAL_DATA.TYPE.null.2147483647",
+                "SYS.STATISTICS_GLOBAL_DATA.NAME.null.2147483647",
+                "SYS.STATISTICS_GLOBAL_DATA.COLUMN.null.2147483647",
+                "SYS.STATISTICS_GLOBAL_DATA.ROWS_COUNT.null.19",
+                "SYS.STATISTICS_GLOBAL_DATA.DISTINCT.null.19",
+                "SYS.STATISTICS_GLOBAL_DATA.NULLS.null.19",
+                "SYS.STATISTICS_GLOBAL_DATA.TOTAL.null.19",
+                "SYS.STATISTICS_GLOBAL_DATA.SIZE.null.10",
+                "SYS.STATISTICS_GLOBAL_DATA.VERSION.null.19",
+                "SYS.STATISTICS_GLOBAL_DATA.LAST_UPDATE_TIME.null.2147483647"
                 ));
 
             Assert.assertEquals(expectedCols, actualSystemCols);
diff --git a/modules/control-utility/src/test/java/org/apache/ignite/util/SystemViewCommandTest.java b/modules/control-utility/src/test/java/org/apache/ignite/util/SystemViewCommandTest.java
index 9fee8d3..6e27942 100644
--- a/modules/control-utility/src/test/java/org/apache/ignite/util/SystemViewCommandTest.java
+++ b/modules/control-utility/src/test/java/org/apache/ignite/util/SystemViewCommandTest.java
@@ -26,6 +26,7 @@ import java.util.List;
 import java.util.Objects;
 import java.util.Properties;
 import java.util.Set;
+import java.util.TreeSet;
 import java.util.UUID;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -414,7 +415,7 @@ public class SystemViewCommandTest extends GridCommandHandlerClusterByClassAbstr
     /** */
     @Test
     public void testViews() {
-        Set<String> expViewNames = new HashSet<>(asList(
+        Set<String> expViewNames = new TreeSet<>(asList(
             "METRICS",
             "VIEWS",
             "SERVICES",
@@ -451,6 +452,7 @@ public class SystemViewCommandTest extends GridCommandHandlerClusterByClassAbstr
             "STATISTICS_CONFIGURATION",
             "STATISTICS_PARTITION_DATA",
             "STATISTICS_LOCAL_DATA",
+            "STATISTICS_GLOBAL_DATA",
             "DS_ATOMICLONGS",
             "DS_ATOMICREFERENCES",
             "DS_ATOMICSTAMPED",
@@ -462,7 +464,7 @@ public class SystemViewCommandTest extends GridCommandHandlerClusterByClassAbstr
             "DS_QUEUES"
         ));
 
-        Set<String> viewNames = new HashSet<>();
+        Set<String> viewNames = new TreeSet<>();
 
         List<List<String>> sqlViewsView = systemView(ignite0, SQL_VIEWS_VIEW);
 
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java b/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java
index a33c16e..c7762fa 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/jdbc/thin/JdbcThinTcpIo.java
@@ -382,7 +382,8 @@ public class JdbcThinTcpIo {
                     + ", url=" + connProps.getUrl() + " address=" + sockAddr + ']', SqlStateCode.CONNECTION_REJECTED);
             }
 
-            if (VER_2_8_0.equals(srvProtoVer0)
+            if (VER_2_9_0.equals(srvProtoVer0)
+                || VER_2_8_0.equals(srvProtoVer0)
                 || VER_2_7_0.equals(srvProtoVer0)
                 || VER_2_5_0.equals(srvProtoVer0)
                 || VER_2_4_0.equals(srvProtoVer0)
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java b/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
index bb9fb6a..38711a5 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
@@ -120,8 +120,6 @@ import org.apache.ignite.spi.discovery.DiscoverySpiListener;
 import org.apache.ignite.ssl.SslContextFactory;
 import org.apache.ignite.testframework.config.GridTestProperties;
 import org.apache.ignite.testframework.junits.GridAbstractTest;
-import org.hamcrest.CustomMatcher;
-import org.hamcrest.Matcher;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -2605,18 +2603,4 @@ public final class GridTestUtils {
     public static void suppressException(RunnableX runnableX) {
         runnableX.run();
     }
-
-    /**
-     * Matcher to verify size of the collection.
-     *
-     * @param size Required size.
-     * @return {@code true} in case collection is not null and has an exactly the same size.
-     */
-    public static <T extends Collection<?>> Matcher<T> hasSize(int size) {
-        return new CustomMatcher<T>("should be non empty with size=" + size) {
-            @Override public boolean matches(Object item) {
-                return item instanceof Collection && ((Collection<?>)item).size() == size;
-            }
-        };
-    }
 }
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java
index 8d7d3f8..7953f63 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java
@@ -26,6 +26,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Properties;
 import java.util.Set;
+import java.util.TreeSet;
 import java.util.UUID;
 import java.util.concurrent.BrokenBarrierException;
 import java.util.concurrent.CountDownLatch;
@@ -399,7 +400,7 @@ public class SqlViewExporterSpiTest extends AbstractExporterSpiTest {
     /** */
     @Test
     public void testViews() throws Exception {
-        Set<String> expViews = new HashSet<>(asList(
+        Set<String> expViews = new TreeSet<>(asList(
             "METRICS",
             "SERVICES",
             "CACHE_GROUPS",
@@ -436,6 +437,7 @@ public class SqlViewExporterSpiTest extends AbstractExporterSpiTest {
             "STATISTICS_CONFIGURATION",
             "STATISTICS_PARTITION_DATA",
             "STATISTICS_LOCAL_DATA",
+            "STATISTICS_GLOBAL_DATA",
             "DS_ATOMICLONGS",
             "DS_ATOMICREFERENCES",
             "DS_ATOMICSTAMPED",
@@ -447,7 +449,7 @@ public class SqlViewExporterSpiTest extends AbstractExporterSpiTest {
             "DS_QUEUES"
         ));
 
-        Set<String> actViews = new HashSet<>();
+        Set<String> actViews = new TreeSet<>();
 
         List<List<?>> res = execute(ignite0, "SELECT * FROM SYS.VIEWS");