mirror of https://github.com/apache/druid.git
Add interface for external schema provider to Druid SQL (#12043)
* Add interfce for external schema provider to Druid SQL * Add annotations
This commit is contained in:
parent
1871a1ab18
commit
9b598407c1
|
@ -90,7 +90,8 @@ public class DruidSchemaInternRowSignatureBenchmark
|
||||||
joinableFactory,
|
joinableFactory,
|
||||||
config,
|
config,
|
||||||
escalator,
|
escalator,
|
||||||
brokerInternalQueryConfig
|
brokerInternalQueryConfig,
|
||||||
|
null
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -107,6 +107,7 @@ public class DruidSchema extends AbstractSchema
|
||||||
private final JoinableFactory joinableFactory;
|
private final JoinableFactory joinableFactory;
|
||||||
private final ExecutorService cacheExec;
|
private final ExecutorService cacheExec;
|
||||||
private final ExecutorService callbackExec;
|
private final ExecutorService callbackExec;
|
||||||
|
private final DruidSchemaManager druidSchemaManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Map of DataSource -> DruidTable.
|
* Map of DataSource -> DruidTable.
|
||||||
|
@ -212,7 +213,8 @@ public class DruidSchema extends AbstractSchema
|
||||||
final JoinableFactory joinableFactory,
|
final JoinableFactory joinableFactory,
|
||||||
final PlannerConfig config,
|
final PlannerConfig config,
|
||||||
final Escalator escalator,
|
final Escalator escalator,
|
||||||
final BrokerInternalQueryConfig brokerInternalQueryConfig
|
final BrokerInternalQueryConfig brokerInternalQueryConfig,
|
||||||
|
final DruidSchemaManager druidSchemaManager
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
this.queryLifecycleFactory = Preconditions.checkNotNull(queryLifecycleFactory, "queryLifecycleFactory");
|
this.queryLifecycleFactory = Preconditions.checkNotNull(queryLifecycleFactory, "queryLifecycleFactory");
|
||||||
|
@ -224,7 +226,15 @@ public class DruidSchema extends AbstractSchema
|
||||||
this.callbackExec = Execs.singleThreaded("DruidSchema-Callback-%d");
|
this.callbackExec = Execs.singleThreaded("DruidSchema-Callback-%d");
|
||||||
this.escalator = escalator;
|
this.escalator = escalator;
|
||||||
this.brokerInternalQueryConfig = brokerInternalQueryConfig;
|
this.brokerInternalQueryConfig = brokerInternalQueryConfig;
|
||||||
|
this.druidSchemaManager = druidSchemaManager;
|
||||||
|
|
||||||
|
if (druidSchemaManager == null || druidSchemaManager instanceof NoopDruidSchemaManager) {
|
||||||
|
initServerViewTimelineCallback(serverView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initServerViewTimelineCallback(final TimelineServerView serverView)
|
||||||
|
{
|
||||||
serverView.registerTimelineCallback(
|
serverView.registerTimelineCallback(
|
||||||
callbackExec,
|
callbackExec,
|
||||||
new TimelineServerView.TimelineCallback()
|
new TimelineServerView.TimelineCallback()
|
||||||
|
@ -267,8 +277,7 @@ public class DruidSchema extends AbstractSchema
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@LifecycleStart
|
private void startCacheExec()
|
||||||
public void start() throws InterruptedException
|
|
||||||
{
|
{
|
||||||
cacheExec.submit(
|
cacheExec.submit(
|
||||||
() -> {
|
() -> {
|
||||||
|
@ -361,6 +370,16 @@ public class DruidSchema extends AbstractSchema
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@LifecycleStart
|
||||||
|
public void start() throws InterruptedException
|
||||||
|
{
|
||||||
|
if (druidSchemaManager == null || druidSchemaManager instanceof NoopDruidSchemaManager) {
|
||||||
|
startCacheExec();
|
||||||
|
} else {
|
||||||
|
initialized.countDown();
|
||||||
|
}
|
||||||
|
|
||||||
if (config.isAwaitInitializationOnStart()) {
|
if (config.isAwaitInitializationOnStart()) {
|
||||||
final long startNanos = System.nanoTime();
|
final long startNanos = System.nanoTime();
|
||||||
|
@ -414,7 +433,11 @@ public class DruidSchema extends AbstractSchema
|
||||||
@Override
|
@Override
|
||||||
protected Map<String, Table> getTableMap()
|
protected Map<String, Table> getTableMap()
|
||||||
{
|
{
|
||||||
return ImmutableMap.copyOf(tables);
|
if (druidSchemaManager != null && !(druidSchemaManager instanceof NoopDruidSchemaManager)) {
|
||||||
|
return ImmutableMap.copyOf(druidSchemaManager.getTables());
|
||||||
|
} else {
|
||||||
|
return ImmutableMap.copyOf(tables);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
/*
|
||||||
|
* 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.druid.sql.calcite.schema;
|
||||||
|
|
||||||
|
import org.apache.druid.guice.annotations.ExtensionPoint;
|
||||||
|
import org.apache.druid.guice.annotations.UnstableApi;
|
||||||
|
import org.apache.druid.sql.calcite.table.DruidTable;
|
||||||
|
|
||||||
|
import java.util.concurrent.ConcurrentMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface provides a map of datasource names to {@link DruidTable} objects, used by the {@link DruidSchema}
|
||||||
|
* class as the SQL planner's view of Druid datasource schemas. If a non-default implementation is provided,
|
||||||
|
* the segment metadata polling-based view of the Druid tables will not be built in DruidSchema.
|
||||||
|
*/
|
||||||
|
@ExtensionPoint
|
||||||
|
@UnstableApi
|
||||||
|
public interface DruidSchemaManager
|
||||||
|
{
|
||||||
|
ConcurrentMap<String, DruidTable> getTables();
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
/*
|
||||||
|
* 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.druid.sql.calcite.schema;
|
||||||
|
|
||||||
|
import org.apache.druid.sql.calcite.table.DruidTable;
|
||||||
|
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
import java.util.concurrent.ConcurrentMap;
|
||||||
|
|
||||||
|
public class NoopDruidSchemaManager implements DruidSchemaManager
|
||||||
|
{
|
||||||
|
public static final String TYPE = "noop";
|
||||||
|
|
||||||
|
private static ConcurrentMap<String, DruidTable> MAP = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ConcurrentMap<String, DruidTable> getTables()
|
||||||
|
{
|
||||||
|
return MAP;
|
||||||
|
}
|
||||||
|
}
|
|
@ -33,6 +33,8 @@ import org.apache.druid.sql.calcite.expression.builtin.QueryLookupOperatorConver
|
||||||
import org.apache.druid.sql.calcite.planner.CalcitePlannerModule;
|
import org.apache.druid.sql.calcite.planner.CalcitePlannerModule;
|
||||||
import org.apache.druid.sql.calcite.planner.Calcites;
|
import org.apache.druid.sql.calcite.planner.Calcites;
|
||||||
import org.apache.druid.sql.calcite.schema.DruidCalciteSchemaModule;
|
import org.apache.druid.sql.calcite.schema.DruidCalciteSchemaModule;
|
||||||
|
import org.apache.druid.sql.calcite.schema.DruidSchemaManager;
|
||||||
|
import org.apache.druid.sql.calcite.schema.NoopDruidSchemaManager;
|
||||||
import org.apache.druid.sql.calcite.view.DruidViewModule;
|
import org.apache.druid.sql.calcite.view.DruidViewModule;
|
||||||
import org.apache.druid.sql.calcite.view.NoopViewManager;
|
import org.apache.druid.sql.calcite.view.NoopViewManager;
|
||||||
import org.apache.druid.sql.calcite.view.ViewManager;
|
import org.apache.druid.sql.calcite.view.ViewManager;
|
||||||
|
@ -46,6 +48,7 @@ public class SqlModule implements Module
|
||||||
public static final String PROPERTY_SQL_ENABLE_JSON_OVER_HTTP = "druid.sql.http.enable";
|
public static final String PROPERTY_SQL_ENABLE_JSON_OVER_HTTP = "druid.sql.http.enable";
|
||||||
public static final String PROPERTY_SQL_ENABLE_AVATICA = "druid.sql.avatica.enable";
|
public static final String PROPERTY_SQL_ENABLE_AVATICA = "druid.sql.avatica.enable";
|
||||||
public static final String PROPERTY_SQL_VIEW_MANAGER_TYPE = "druid.sql.viewmanager.type";
|
public static final String PROPERTY_SQL_VIEW_MANAGER_TYPE = "druid.sql.viewmanager.type";
|
||||||
|
public static final String PROPERTY_SQL_SCHEMA_MANAGER_TYPE = "druid.sql.schemamanager.type";
|
||||||
public static final String PROPERTY_SQL_APPROX_COUNT_DISTINCT_CHOICE = "druid.sql.approxCountDistinct.function";
|
public static final String PROPERTY_SQL_APPROX_COUNT_DISTINCT_CHOICE = "druid.sql.approxCountDistinct.function";
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
|
@ -82,6 +85,18 @@ public class SqlModule implements Module
|
||||||
NoopViewManager.TYPE
|
NoopViewManager.TYPE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
PolyBind.optionBinder(binder, Key.get(DruidSchemaManager.class))
|
||||||
|
.addBinding(NoopDruidSchemaManager.TYPE)
|
||||||
|
.to(NoopDruidSchemaManager.class)
|
||||||
|
.in(LazySingleton.class);
|
||||||
|
|
||||||
|
PolyBind.createChoiceWithDefault(
|
||||||
|
binder,
|
||||||
|
PROPERTY_SQL_SCHEMA_MANAGER_TYPE,
|
||||||
|
Key.get(DruidSchemaManager.class),
|
||||||
|
NoopDruidSchemaManager.TYPE
|
||||||
|
);
|
||||||
|
|
||||||
binder.install(new DruidCalciteSchemaModule());
|
binder.install(new DruidCalciteSchemaModule());
|
||||||
binder.install(new CalcitePlannerModule());
|
binder.install(new CalcitePlannerModule());
|
||||||
binder.install(new SqlAggregationModule());
|
binder.install(new SqlAggregationModule());
|
||||||
|
|
|
@ -88,6 +88,7 @@ import org.apache.druid.sql.calcite.planner.PlannerConfig;
|
||||||
import org.apache.druid.sql.calcite.planner.PlannerContext;
|
import org.apache.druid.sql.calcite.planner.PlannerContext;
|
||||||
import org.apache.druid.sql.calcite.planner.PlannerFactory;
|
import org.apache.druid.sql.calcite.planner.PlannerFactory;
|
||||||
import org.apache.druid.sql.calcite.schema.DruidSchemaCatalog;
|
import org.apache.druid.sql.calcite.schema.DruidSchemaCatalog;
|
||||||
|
import org.apache.druid.sql.calcite.schema.NoopDruidSchemaManager;
|
||||||
import org.apache.druid.sql.calcite.util.CalciteTestBase;
|
import org.apache.druid.sql.calcite.util.CalciteTestBase;
|
||||||
import org.apache.druid.sql.calcite.util.CalciteTests;
|
import org.apache.druid.sql.calcite.util.CalciteTests;
|
||||||
import org.apache.druid.sql.calcite.util.QueryLogHook;
|
import org.apache.druid.sql.calcite.util.QueryLogHook;
|
||||||
|
@ -995,6 +996,7 @@ public class BaseCalciteQueryTest extends CalciteTestBase
|
||||||
walker,
|
walker,
|
||||||
plannerConfig,
|
plannerConfig,
|
||||||
viewManager,
|
viewManager,
|
||||||
|
new NoopDruidSchemaManager(),
|
||||||
authorizerMapper
|
authorizerMapper
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -119,6 +119,7 @@ public class DruidCalciteSchemaModuleTest extends CalciteTestBase
|
||||||
.annotatedWith(IndexingService.class)
|
.annotatedWith(IndexingService.class)
|
||||||
.toInstance(overlordDruidLeaderClient);
|
.toInstance(overlordDruidLeaderClient);
|
||||||
binder.bind(DruidNodeDiscoveryProvider.class).toInstance(druidNodeDiscoveryProvider);
|
binder.bind(DruidNodeDiscoveryProvider.class).toInstance(druidNodeDiscoveryProvider);
|
||||||
|
binder.bind(DruidSchemaManager.class).toInstance(new NoopDruidSchemaManager());
|
||||||
binder.bind(ObjectMapper.class).annotatedWith(Json.class).toInstance(objectMapper);
|
binder.bind(ObjectMapper.class).annotatedWith(Json.class).toInstance(objectMapper);
|
||||||
binder.bindScope(LazySingleton.class, Scopes.SINGLETON);
|
binder.bindScope(LazySingleton.class, Scopes.SINGLETON);
|
||||||
binder.bind(LookupExtractorFactoryContainerProvider.class).toInstance(lookupReferencesManager);
|
binder.bind(LookupExtractorFactoryContainerProvider.class).toInstance(lookupReferencesManager);
|
||||||
|
|
|
@ -137,7 +137,8 @@ public class DruidSchemaConcurrencyTest extends DruidSchemaTestCommon
|
||||||
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -241,7 +242,8 @@ public class DruidSchemaConcurrencyTest extends DruidSchemaTestCommon
|
||||||
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -59,7 +59,8 @@ public class DruidSchemaNoDataInitTest extends CalciteTestBase
|
||||||
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
);
|
);
|
||||||
|
|
||||||
druidSchema.start();
|
druidSchema.start();
|
||||||
|
|
|
@ -181,7 +181,8 @@ public class DruidSchemaTest extends DruidSchemaTestCommon
|
||||||
),
|
),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -207,7 +208,8 @@ public class DruidSchemaTest extends DruidSchemaTestCommon
|
||||||
new MapJoinableFactory(ImmutableSet.of(globalTableJoinable), ImmutableMap.of(globalTableJoinable.getClass(), GlobalTableDataSource.class)),
|
new MapJoinableFactory(ImmutableSet.of(globalTableJoinable), ImmutableMap.of(globalTableJoinable.getClass(), GlobalTableDataSource.class)),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -485,7 +487,8 @@ public class DruidSchemaTest extends DruidSchemaTestCommon
|
||||||
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -527,7 +530,8 @@ public class DruidSchemaTest extends DruidSchemaTestCommon
|
||||||
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -573,7 +577,8 @@ public class DruidSchemaTest extends DruidSchemaTestCommon
|
||||||
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -616,7 +621,8 @@ public class DruidSchemaTest extends DruidSchemaTestCommon
|
||||||
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -656,7 +662,8 @@ public class DruidSchemaTest extends DruidSchemaTestCommon
|
||||||
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -713,7 +720,8 @@ public class DruidSchemaTest extends DruidSchemaTestCommon
|
||||||
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -773,7 +781,8 @@ public class DruidSchemaTest extends DruidSchemaTestCommon
|
||||||
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -807,7 +816,8 @@ public class DruidSchemaTest extends DruidSchemaTestCommon
|
||||||
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -854,7 +864,8 @@ public class DruidSchemaTest extends DruidSchemaTestCommon
|
||||||
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -1076,7 +1087,8 @@ public class DruidSchemaTest extends DruidSchemaTestCommon
|
||||||
),
|
),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
brokerInternalQueryConfig
|
brokerInternalQueryConfig,
|
||||||
|
null
|
||||||
);
|
);
|
||||||
|
|
||||||
EasyMock.expect(factoryMock.factorize()).andReturn(lifecycleMock).once();
|
EasyMock.expect(factoryMock.factorize()).andReturn(lifecycleMock).once();
|
||||||
|
|
|
@ -253,7 +253,8 @@ public class SystemSchemaTest extends CalciteTestBase
|
||||||
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
new MapJoinableFactory(ImmutableSet.of(), ImmutableMap.of()),
|
||||||
PLANNER_CONFIG_DEFAULT,
|
PLANNER_CONFIG_DEFAULT,
|
||||||
new NoopEscalator(),
|
new NoopEscalator(),
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
null
|
||||||
);
|
);
|
||||||
druidSchema.start();
|
druidSchema.start();
|
||||||
druidSchema.awaitInitialization();
|
druidSchema.awaitInitialization();
|
||||||
|
|
|
@ -123,6 +123,7 @@ import org.apache.druid.sql.calcite.run.NativeQueryMakerFactory;
|
||||||
import org.apache.druid.sql.calcite.run.QueryMakerFactory;
|
import org.apache.druid.sql.calcite.run.QueryMakerFactory;
|
||||||
import org.apache.druid.sql.calcite.schema.DruidSchema;
|
import org.apache.druid.sql.calcite.schema.DruidSchema;
|
||||||
import org.apache.druid.sql.calcite.schema.DruidSchemaCatalog;
|
import org.apache.druid.sql.calcite.schema.DruidSchemaCatalog;
|
||||||
|
import org.apache.druid.sql.calcite.schema.DruidSchemaManager;
|
||||||
import org.apache.druid.sql.calcite.schema.InformationSchema;
|
import org.apache.druid.sql.calcite.schema.InformationSchema;
|
||||||
import org.apache.druid.sql.calcite.schema.LookupSchema;
|
import org.apache.druid.sql.calcite.schema.LookupSchema;
|
||||||
import org.apache.druid.sql.calcite.schema.MetadataSegmentView;
|
import org.apache.druid.sql.calcite.schema.MetadataSegmentView;
|
||||||
|
@ -131,6 +132,7 @@ import org.apache.druid.sql.calcite.schema.NamedLookupSchema;
|
||||||
import org.apache.druid.sql.calcite.schema.NamedSchema;
|
import org.apache.druid.sql.calcite.schema.NamedSchema;
|
||||||
import org.apache.druid.sql.calcite.schema.NamedSystemSchema;
|
import org.apache.druid.sql.calcite.schema.NamedSystemSchema;
|
||||||
import org.apache.druid.sql.calcite.schema.NamedViewSchema;
|
import org.apache.druid.sql.calcite.schema.NamedViewSchema;
|
||||||
|
import org.apache.druid.sql.calcite.schema.NoopDruidSchemaManager;
|
||||||
import org.apache.druid.sql.calcite.schema.SystemSchema;
|
import org.apache.druid.sql.calcite.schema.SystemSchema;
|
||||||
import org.apache.druid.sql.calcite.schema.ViewSchema;
|
import org.apache.druid.sql.calcite.schema.ViewSchema;
|
||||||
import org.apache.druid.sql.calcite.view.DruidViewMacroFactory;
|
import org.apache.druid.sql.calcite.view.DruidViewMacroFactory;
|
||||||
|
@ -1164,7 +1166,7 @@ public class CalciteTests
|
||||||
final AuthorizerMapper authorizerMapper
|
final AuthorizerMapper authorizerMapper
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return createMockRootSchema(conglomerate, walker, plannerConfig, null, authorizerMapper);
|
return createMockRootSchema(conglomerate, walker, plannerConfig, null, new NoopDruidSchemaManager(), authorizerMapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DruidSchemaCatalog createMockRootSchema(
|
public static DruidSchemaCatalog createMockRootSchema(
|
||||||
|
@ -1172,10 +1174,11 @@ public class CalciteTests
|
||||||
final SpecificSegmentsQuerySegmentWalker walker,
|
final SpecificSegmentsQuerySegmentWalker walker,
|
||||||
final PlannerConfig plannerConfig,
|
final PlannerConfig plannerConfig,
|
||||||
@Nullable final ViewManager viewManager,
|
@Nullable final ViewManager viewManager,
|
||||||
|
final DruidSchemaManager druidSchemaManager,
|
||||||
final AuthorizerMapper authorizerMapper
|
final AuthorizerMapper authorizerMapper
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
DruidSchema druidSchema = createMockSchema(conglomerate, walker, plannerConfig);
|
DruidSchema druidSchema = createMockSchema(conglomerate, walker, plannerConfig, druidSchemaManager);
|
||||||
SystemSchema systemSchema =
|
SystemSchema systemSchema =
|
||||||
CalciteTests.createMockSystemSchema(druidSchema, walker, plannerConfig, authorizerMapper);
|
CalciteTests.createMockSystemSchema(druidSchema, walker, plannerConfig, authorizerMapper);
|
||||||
|
|
||||||
|
@ -1216,7 +1219,8 @@ public class CalciteTests
|
||||||
private static DruidSchema createMockSchema(
|
private static DruidSchema createMockSchema(
|
||||||
final QueryRunnerFactoryConglomerate conglomerate,
|
final QueryRunnerFactoryConglomerate conglomerate,
|
||||||
final SpecificSegmentsQuerySegmentWalker walker,
|
final SpecificSegmentsQuerySegmentWalker walker,
|
||||||
final PlannerConfig plannerConfig
|
final PlannerConfig plannerConfig,
|
||||||
|
final DruidSchemaManager druidSchemaManager
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
final DruidSchema schema = new DruidSchema(
|
final DruidSchema schema = new DruidSchema(
|
||||||
|
@ -1233,7 +1237,8 @@ public class CalciteTests
|
||||||
createDefaultJoinableFactory(),
|
createDefaultJoinableFactory(),
|
||||||
plannerConfig,
|
plannerConfig,
|
||||||
TEST_AUTHENTICATOR_ESCALATOR,
|
TEST_AUTHENTICATOR_ESCALATOR,
|
||||||
new BrokerInternalQueryConfig()
|
new BrokerInternalQueryConfig(),
|
||||||
|
druidSchemaManager
|
||||||
);
|
);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
Loading…
Reference in New Issue