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

[ignite-3] branch main updated: IGNITE-16738 Add trait definitions to the EMPTY_CONTEXT and to the singleton empty CLUSTER (#805)

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

tledkov 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 e461879e8 IGNITE-16738 Add trait definitions to the EMPTY_CONTEXT and to the singleton empty CLUSTER (#805)
e461879e8 is described below

commit e461879e8bdc7c72d9a30c0729fc64f07733e341
Author: Taras Ledkov <tl...@gridgain.com>
AuthorDate: Thu May 12 10:42:37 2022 +0300

    IGNITE-16738 Add trait definitions to the EMPTY_CONTEXT and to the singleton empty CLUSTER (#805)
---
 .../ignite/internal/sql/engine/ItMixedQueriesTest.java |  1 -
 .../internal/sql/engine/util/BaseQueryContext.java     | 18 ++++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMixedQueriesTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMixedQueriesTest.java
index b337ee660..2794cd033 100644
--- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMixedQueriesTest.java
+++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/sql/engine/ItMixedQueriesTest.java
@@ -158,7 +158,6 @@ public class ItMixedQueriesTest extends AbstractBasicIntegrationTest {
     }
 
     @Test
-    @Disabled("https://issues.apache.org/jira/browse/IGNITE-16738")
     public void testDistinctQueryWithInConditionWithSubquery() {
         var rows = sql("SELECT distinct(name) FROM emp1 o WHERE name IN ("
                 + "   SELECT name"
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/util/BaseQueryContext.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/util/BaseQueryContext.java
index c738d9247..38b408562 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/util/BaseQueryContext.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/util/BaseQueryContext.java
@@ -31,10 +31,13 @@ import org.apache.calcite.config.CalciteConnectionConfigImpl;
 import org.apache.calcite.config.CalciteConnectionProperty;
 import org.apache.calcite.jdbc.CalciteSchema;
 import org.apache.calcite.plan.Contexts;
+import org.apache.calcite.plan.ConventionTraitDef;
 import org.apache.calcite.plan.RelOptCluster;
 import org.apache.calcite.plan.RelOptSchema;
+import org.apache.calcite.plan.RelTraitDef;
 import org.apache.calcite.plan.volcano.VolcanoPlanner;
 import org.apache.calcite.prepare.CalciteCatalogReader;
+import org.apache.calcite.rel.RelCollationTraitDef;
 import org.apache.calcite.rel.RelNode;
 import org.apache.calcite.rel.metadata.Metadata;
 import org.apache.calcite.rel.metadata.MetadataDef;
@@ -48,6 +51,9 @@ import org.apache.calcite.tools.FrameworkConfig;
 import org.apache.calcite.tools.Frameworks;
 import org.apache.ignite.internal.sql.engine.QueryCancel;
 import org.apache.ignite.internal.sql.engine.metadata.cost.IgniteCostFactory;
+import org.apache.ignite.internal.sql.engine.trait.CorrelationTraitDef;
+import org.apache.ignite.internal.sql.engine.trait.DistributionTraitDef;
+import org.apache.ignite.internal.sql.engine.trait.RewindabilityTraitDef;
 import org.apache.ignite.internal.sql.engine.type.IgniteTypeFactory;
 import org.apache.ignite.internal.util.ArrayUtils;
 import org.apache.ignite.lang.IgniteLogger;
@@ -94,6 +100,11 @@ public final class BaseQueryContext extends AbstractQueryContext {
             }
         };
 
+        // Dummy planner must contain all trait definitions to create singleton cluster with all default traits.
+        for (RelTraitDef<?> def : EMPTY_CONTEXT.config().getTraitDefs()) {
+            DUMMY_PLANNER.addRelTraitDef(def);
+        }
+
         RelDataTypeSystem typeSys = CALCITE_CONNECTION_CONFIG.typeSystem(RelDataTypeSystem.class, FRAMEWORK_CONFIG.getTypeSystem());
         TYPE_FACTORY = new IgniteTypeFactory(typeSys);
 
@@ -249,6 +260,13 @@ public final class BaseQueryContext extends AbstractQueryContext {
         private static final FrameworkConfig EMPTY_CONFIG =
                 Frameworks.newConfigBuilder(FRAMEWORK_CONFIG)
                         .defaultSchema(createRootSchema(false))
+                        .traitDefs(new RelTraitDef<?>[] {
+                                ConventionTraitDef.INSTANCE,
+                                RelCollationTraitDef.INSTANCE,
+                                DistributionTraitDef.INSTANCE,
+                                RewindabilityTraitDef.INSTANCE,
+                                CorrelationTraitDef.INSTANCE,
+                        })
                         .build();
 
         private FrameworkConfig frameworkCfg = EMPTY_CONFIG;