diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java index 83f1c7e7418f2..f060d32c01197 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/CalciteQueryProcessor.java @@ -259,8 +259,11 @@ public class CalciteQueryProcessor extends GridProcessorAdapter implements Query public CalciteQueryProcessor(GridKernalContext ctx) { super(ctx); + FrameworkConfig customFrameworkCfg = ctx.plugins().createComponent(FrameworkConfig.class); + frameworkCfg = customFrameworkCfg != null ? customFrameworkCfg : FRAMEWORK_CONFIG; + failureProcessor = ctx.failure(); - schemaHolder = new SchemaHolderImpl(ctx); + schemaHolder = new SchemaHolderImpl(ctx, frameworkCfg); qryPlanCache = new QueryPlanCacheImpl(ctx); parserMetrics = new QueryParserMetricsHolder(ctx.metric()); mailboxRegistry = new MailboxRegistryImpl(ctx); @@ -277,9 +280,6 @@ public CalciteQueryProcessor(GridKernalContext ctx) { qryReg = new QueryRegistryImpl(ctx); injectSvc = new InjectResourcesService(ctx); - FrameworkConfig customFrameworkCfg = ctx.plugins().createComponent(FrameworkConfig.class); - frameworkCfg = customFrameworkCfg != null ? customFrameworkCfg : FRAMEWORK_CONFIG; - QueryEngineConfiguration[] qryEnginesCfg = ctx.config().getSqlConfiguration().getQueryEnginesConfiguration(); if (F.isEmpty(qryEnginesCfg)) diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteSchema.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteSchema.java index ef81dc008fd72..2e032f66067ff 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteSchema.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteSchema.java @@ -27,6 +27,7 @@ import org.apache.calcite.schema.SchemaPlus; import org.apache.calcite.schema.Table; import org.apache.calcite.schema.impl.AbstractSchema; +import org.apache.calcite.tools.FrameworkConfig; /** * Ignite schema. @@ -111,12 +112,13 @@ public void removeView(String name) { * Registers current {@code IgniteSchema} in parent {@code SchemaPlus}. * * @param parent Parent schema. + * @param frameworkCfg Framework config. * @return Registered schema. */ - public SchemaPlus register(SchemaPlus parent) { + public SchemaPlus register(SchemaPlus parent, FrameworkConfig frameworkCfg) { SchemaPlus newSchema = parent.add(schemaName, this); - viewMap.forEach((name, sql) -> newSchema.add(name, new ViewTableMacroImpl(sql, newSchema))); + viewMap.forEach((name, sql) -> newSchema.add(name, new ViewTableMacroImpl(sql, newSchema, frameworkCfg))); return newSchema; } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/SchemaHolderImpl.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/SchemaHolderImpl.java index a3d78d68fd04e..48a69cfe22036 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/SchemaHolderImpl.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/SchemaHolderImpl.java @@ -27,6 +27,7 @@ import org.apache.calcite.rel.RelCollations; import org.apache.calcite.rel.RelFieldCollation; import org.apache.calcite.schema.SchemaPlus; +import org.apache.calcite.tools.FrameworkConfig; import org.apache.calcite.tools.Frameworks; import org.apache.calcite.util.ImmutableBitSet; import org.apache.calcite.util.mapping.Mappings; @@ -65,6 +66,9 @@ public class SchemaHolderImpl extends AbstractService implements SchemaHolder, S /** */ private final GridKernalContext ctx; + /** */ + private final FrameworkConfig frameworkCfg; + /** */ private GridInternalSubscriptionProcessor subscriptionProcessor; @@ -136,10 +140,11 @@ public AffinityIdentity(AffinityFunction aff, int backups, IgnitePredicate schemas) { SchemaPlus dfltSchema = null; for (IgniteSchema igniteSchema : schemas) { - SchemaPlus schema = igniteSchema.register(rootSchema); + SchemaPlus schema = igniteSchema.register(rootSchema, null); if (dfltSchema == null || DEFAULT_SCHEMA.equals(schema.getName())) dfltSchema = schema;