You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by me...@apache.org on 2022/05/26 14:38:31 UTC
[shardingsphere] branch master updated: Remove MetaDataContexts.getDatabase() (#17983)
This is an automated email from the ASF dual-hosted git repository.
menghaoran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 645f9a6c59b Remove MetaDataContexts.getDatabase() (#17983)
645f9a6c59b is described below
commit 645f9a6c59bb982cb0cca7f6708e4954adc3dbd3
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Thu May 26 22:38:24 2022 +0800
Remove MetaDataContexts.getDatabase() (#17983)
---
...hardingRuleAlteredJobConfigurationPreparer.java | 2 +-
.../driver/executor/DriverExecutor.java | 2 +-
.../driver/executor/DriverJDBCExecutor.java | 4 +-
.../batch/BatchPreparedStatementExecutor.java | 4 +-
.../jdbc/adapter/AbstractResultSetAdapter.java | 2 +-
.../jdbc/adapter/AbstractStatementAdapter.java | 2 +-
.../metadata/ShardingSphereDatabaseMetaData.java | 8 ++--
.../statement/ShardingSpherePreparedStatement.java | 34 +++++++-------
.../core/statement/ShardingSphereStatement.java | 35 +++++++-------
.../driver/executor/AbstractBaseExecutorTest.java | 4 +-
.../jdbc/adapter/PreparedStatementAdapterTest.java | 2 +-
.../driver/jdbc/adapter/StatementAdapterTest.java | 3 +-
.../ShardingSphereDatabaseMetaDataTest.java | 4 +-
.../UnsupportedOperationPreparedStatementTest.java | 2 +-
.../spring/boot/SpringBootStarterTest.java | 4 +-
.../boot/jndi/SpringBootJNDIDataSourceTest.java | 2 +-
.../namespace/AbstractSpringNamespaceTest.java | 4 +-
.../check/consistency/DataConsistencyChecker.java | 4 +-
.../metadata/generator/PipelineDDLGenerator.java | 2 +-
.../job/environment/ScalingEnvironmentManager.java | 2 +-
.../mode/manager/ContextManager.java | 54 +++++++++++-----------
.../mode/metadata/MetaDataContexts.java | 11 -----
.../mode/manager/ContextManagerTest.java | 27 +++++------
.../mode/metadata/MetaDataContextsBuilderTest.java | 4 +-
.../mode/metadata/MetaDataContextsTest.java | 2 +-
.../cluster/ClusterContextManagerBuilder.java | 2 +-
.../ClusterContextManagerCoordinatorTest.java | 16 +++----
.../backend/communication/ProxySQLExecutor.java | 2 +-
.../communication/ReactiveProxySQLExecutor.java | 2 +-
.../jdbc/JDBCDatabaseCommunicationEngine.java | 8 ++--
.../jdbc/datasource/JDBCBackendDataSource.java | 2 +-
.../jdbc/executor/ProxyJDBCExecutor.java | 2 +-
.../callback/ProxyJDBCExecutorCallback.java | 2 +-
.../jdbc/statement/JDBCBackendStatement.java | 2 +-
.../vertx/VertxBackendDataSource.java | 2 +-
.../proxy/backend/context/ProxyContext.java | 4 +-
.../text/TextProtocolBackendHandlerFactory.java | 4 +-
.../executor/AbstractDatabaseMetadataExecutor.java | 4 +-
.../mysql/executor/ShowDatabasesExecutor.java | 2 +-
.../admin/mysql/executor/UseDatabaseExecutor.java | 4 +-
.../SelectInformationSchemataExecutor.java | 2 +-
.../executor/SelectDatabaseExecutor.java | 2 +-
.../text/database/DropDatabaseBackendHandler.java | 4 +-
.../ral/advanced/ParseDistSQLBackendHandler.java | 2 +-
.../ral/advanced/PreviewDistSQLBackendHandler.java | 6 +--
...ShowReadwriteSplittingReadResourcesHandler.java | 2 +-
.../ImportDatabaseConfigurationHandler.java | 2 +-
.../SetReadwriteSplittingStatusHandler.java | 6 +--
.../DatabaseOperateBackendHandlerFactoryTest.java | 8 ++--
.../mysql/executor/UseDatabaseExecutorTest.java | 11 ++---
.../database/DropDatabaseBackendHandlerTest.java | 2 -
.../distsql/DistSQLBackendHandlerFactoryTest.java | 15 +++---
.../common/queryable/CountInstanceRulesTest.java | 2 -
.../ExportDatabaseConfigurationHandlerTest.java | 1 -
.../queryable/ShowTableMetadataHandlerTest.java | 1 -
.../ImportDatabaseConfigurationHandlerTest.java | 7 ++-
.../resource/AddResourceBackendHandlerTest.java | 2 -
.../resource/AlterResourceBackendHandlerTest.java | 3 --
.../resource/DropResourceBackendHandlerTest.java | 1 -
.../text/distsql/rql/RQLBackendHandlerTest.java | 1 -
.../rql/RuleDefinitionBackendHandlerTest.java | 4 +-
.../FrontDatabaseProtocolTypeFactoryTest.java | 2 +-
.../admin/initdb/MySQLComInitDbExecutor.java | 2 +-
.../execute/MySQLComStmtExecuteExecutor.java | 4 +-
.../prepare/MySQLComStmtPrepareExecutor.java | 2 +-
.../fieldlist/MySQLComFieldListPacketExecutor.java | 2 +-
.../text/query/MySQLMultiStatementsHandler.java | 11 +++--
.../query/MySQLComQueryPacketExecutorTest.java | 6 +--
.../query/MySQLMultiStatementsHandlerTest.java | 6 +--
.../OpenGaussAuthenticationHandler.java | 2 +-
.../bind/OpenGaussComBatchBindExecutorTest.java | 2 +-
.../PostgreSQLAuthenticationHandler.java | 2 +-
.../PostgreSQLBatchedStatementsExecutor.java | 8 ++--
.../extended/parse/PostgreSQLComParseExecutor.java | 2 +-
...egatedBatchedStatementsCommandExecutorTest.java | 2 +-
.../PostgreSQLBatchedStatementsExecutorTest.java | 2 +-
.../PostgreSQLComDescribeExecutorTest.java | 11 ++---
.../parse/PostgreSQLComParseExecutorTest.java | 4 +-
.../ReactiveMySQLComStmtExecuteExecutor.java | 4 +-
.../ReactiveMySQLComFieldListPacketExecutor.java | 2 +-
80 files changed, 211 insertions(+), 231 deletions(-)
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/data/pipeline/ShardingRuleAlteredJobConfigurationPreparer.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/data/pipeline/ShardingRuleAlteredJobConfigurationPreparer.java
index c4d04a0fd24..9e04b2dac31 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/data/pipeline/ShardingRuleAlteredJobConfigurationPreparer.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/data/pipeline/ShardingRuleAlteredJobConfigurationPreparer.java
@@ -147,7 +147,7 @@ public final class ShardingRuleAlteredJobConfigurationPreparer implements RuleAl
tableNameMap.put(new ActualTableName(dataNode.getTableName()), new LogicTableName(each.getLogicTableName()));
}
}
- ShardingSphereDatabase database = PipelineContext.getContextManager().getMetaDataContexts().getDatabase(jobConfig.getDatabaseName());
+ ShardingSphereDatabase database = PipelineContext.getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(jobConfig.getDatabaseName());
DumperConfiguration dumperConfig = createDumperConfiguration(jobConfig.getDatabaseName(), dataSourceName,
dataSourcePropsMap.get(dataSourceName).getAllLocalProperties(), tableNameMap, database);
Optional<ShardingRuleConfiguration> targetRuleConfig = getTargetRuleConfiguration(jobConfig);
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
index 06676b9182d..f77df1a50b6 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
@@ -51,7 +51,7 @@ public final class DriverExecutor implements AutoCloseable {
JDBCExecutor jdbcExecutor = new JDBCExecutor(executorEngine, connection.isHoldTransaction());
regularExecutor = new DriverJDBCExecutor(connection.getDatabaseName(), metaDataContexts, jdbcExecutor);
rawExecutor = new RawExecutor(executorEngine, connection.isHoldTransaction(), metaDataContexts.getMetaData().getProps());
- DatabaseType databaseType = metaDataContexts.getDatabase(connection.getDatabaseName()).getResource().getDatabaseType();
+ DatabaseType databaseType = metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDatabaseType();
String schemaName = DatabaseTypeEngine.getDefaultSchemaName(databaseType, connection.getDatabaseName());
federationExecutor = FederationExecutorFactory.newInstance(
connection.getDatabaseName(), schemaName, metaDataContexts.getOptimizerContext(), metaDataContexts.getMetaData().getProps(), jdbcExecutor);
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/DriverJDBCExecutor.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/DriverJDBCExecutor.java
index f537b658c4a..3fceb1a719b 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/DriverJDBCExecutor.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/DriverJDBCExecutor.java
@@ -57,7 +57,7 @@ public final class DriverJDBCExecutor {
this.databaseName = databaseName;
this.metaDataContexts = metaDataContexts;
this.jdbcExecutor = jdbcExecutor;
- metadataRefreshEngine = new MetaDataRefreshEngine(metaDataContexts.getDatabase(databaseName),
+ metadataRefreshEngine = new MetaDataRefreshEngine(metaDataContexts.getMetaData().getDatabases().get(databaseName),
metaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases().get(databaseName),
metaDataContexts.getOptimizerContext().getPlannerContexts(), metaDataContexts.getMetaData().getProps());
}
@@ -99,7 +99,7 @@ public final class DriverJDBCExecutor {
ExecuteProcessEngine.initialize(logicSQL, executionGroupContext, metaDataContexts.getMetaData().getProps());
SQLStatementContext<?> sqlStatementContext = logicSQL.getSqlStatementContext();
List<Integer> results = doExecute(executionGroupContext, sqlStatementContext, routeUnits, callback);
- int result = isNeedAccumulate(metaDataContexts.getDatabase(databaseName).getRuleMetaData().getRules(), sqlStatementContext) ? accumulate(results) : results.get(0);
+ int result = isNeedAccumulate(metaDataContexts.getMetaData().getDatabases().get(databaseName).getRuleMetaData().getRules(), sqlStatementContext) ? accumulate(results) : results.get(0);
ExecuteProcessEngine.finish(executionGroupContext.getExecutionID());
return result;
} finally {
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutor.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutor.java
index 3c9e34f30ee..5831c8a8830 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutor.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutor.java
@@ -134,7 +134,7 @@ public final class BatchPreparedStatementExecutor {
public int[] executeBatch(final SQLStatementContext<?> sqlStatementContext) throws SQLException {
boolean isExceptionThrown = SQLExecutorExceptionHandler.isExceptionThrown();
JDBCExecutorCallback<int[]> callback = new JDBCExecutorCallback<int[]>(
- metaDataContexts.getDatabase(databaseName).getResource().getDatabaseType(), sqlStatementContext.getSqlStatement(), isExceptionThrown) {
+ metaDataContexts.getMetaData().getDatabases().get(databaseName).getResource().getDatabaseType(), sqlStatementContext.getSqlStatement(), isExceptionThrown) {
@Override
protected int[] executeSQL(final String sql, final Statement statement, final ConnectionMode connectionMode) throws SQLException {
@@ -155,7 +155,7 @@ public final class BatchPreparedStatementExecutor {
}
private boolean isNeedAccumulate(final SQLStatementContext<?> sqlStatementContext) {
- for (ShardingSphereRule each : metaDataContexts.getDatabase(databaseName).getRuleMetaData().getRules()) {
+ for (ShardingSphereRule each : metaDataContexts.getMetaData().getDatabases().get(databaseName).getRuleMetaData().getRules()) {
if (each instanceof DataNodeContainedRule && ((DataNodeContainedRule) each).isNeedAccumulate(sqlStatementContext.getTablesContext().getTableNames())) {
return true;
}
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractResultSetAdapter.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractResultSetAdapter.java
index 50a2d64d734..2a5f22575b8 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractResultSetAdapter.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractResultSetAdapter.java
@@ -69,7 +69,7 @@ public abstract class AbstractResultSetAdapter extends AbstractUnsupportedOperat
ShardingSphereConnection connection = statement instanceof ShardingSpherePreparedStatement
? ((ShardingSpherePreparedStatement) statement).getConnection()
: ((ShardingSphereStatement) statement).getConnection();
- return connection.getContextManager().getMetaDataContexts().getDatabase(connection.getDatabaseName());
+ return connection.getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(connection.getDatabaseName());
}
@Override
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractStatementAdapter.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractStatementAdapter.java
index 1e3e2556e74..f5942a5a66d 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractStatementAdapter.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractStatementAdapter.java
@@ -195,7 +195,7 @@ public abstract class AbstractStatementAdapter extends AbstractUnsupportedOperat
protected final void handleExceptionInTransaction(final ShardingSphereConnection connection, final MetaDataContexts metaDataContexts) {
if (connection.getConnectionManager().getConnectionTransaction().isInTransaction()) {
- DatabaseType databaseType = metaDataContexts.getDatabase(connection.getDatabaseName()).getResource().getDatabaseType();
+ DatabaseType databaseType = metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDatabaseType();
if (databaseType instanceof PostgreSQLDatabaseType || databaseType instanceof OpenGaussDatabaseType) {
connection.getConnectionManager().getConnectionTransaction().setRollbackOnly(true);
}
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaData.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaData.java
index 5774647d168..bc52d00c7e8 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaData.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaData.java
@@ -51,7 +51,7 @@ public final class ShardingSphereDatabaseMetaData extends AdaptedDatabaseMetaDat
public ShardingSphereDatabaseMetaData(final ShardingSphereConnection connection) {
super(connection.getJdbcContext().getCachedDatabaseMetaData());
this.connection = connection;
- rules = connection.getContextManager().getMetaDataContexts().getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules();
+ rules = connection.getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules();
}
@Override
@@ -226,12 +226,14 @@ public final class ShardingSphereDatabaseMetaData extends AdaptedDatabaseMetaDat
}
private String getActualCatalog(final String catalog) {
- DataSourceMetaData metaData = connection.getContextManager().getMetaDataContexts().getDatabase(connection.getDatabaseName()).getResource().getDataSourceMetaData(getDataSourceName());
+ DataSourceMetaData metaData = connection.getContextManager()
+ .getMetaDataContexts().getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDataSourceMetaData(getDataSourceName());
return null != catalog && catalog.contains(DefaultDatabase.LOGIC_NAME) ? metaData.getCatalog() : catalog;
}
private String getActualSchema(final String schema) {
- DataSourceMetaData metaData = connection.getContextManager().getMetaDataContexts().getDatabase(connection.getDatabaseName()).getResource().getDataSourceMetaData(getDataSourceName());
+ DataSourceMetaData metaData = connection.getContextManager()
+ .getMetaDataContexts().getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDataSourceMetaData(getDataSourceName());
return null != schema && schema.contains(DefaultDatabase.LOGIC_NAME) ? metaData.getSchema() : schema;
}
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
index 51f9dfa1b40..a23074762c0 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
@@ -175,7 +175,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
Optional<SQLParserRule> sqlParserRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class);
Preconditions.checkState(sqlParserRule.isPresent());
ShardingSphereSQLParserEngine sqlParserEngine = sqlParserRule.get().getSQLParserEngine(
- DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getDatabase(connection.getDatabaseName()).getResource().getDatabaseType()));
+ DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDatabaseType()));
sqlStatement = sqlParserEngine.parse(sql, true);
sqlStatementContext = SQLStatementContextFactory.newInstance(metaDataContexts.getMetaData().getDatabases(), sqlStatement, connection.getDatabaseName());
parameterMetaData = new ShardingSphereParameterMetaData(sqlStatement);
@@ -184,7 +184,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
JDBCExecutor jdbcExecutor = new JDBCExecutor(connection.getContextManager().getExecutorEngine(), connection.isHoldTransaction());
batchPreparedStatementExecutor = new BatchPreparedStatementExecutor(metaDataContexts, jdbcExecutor, connection.getDatabaseName());
kernelProcessor = new KernelProcessor();
- statementsCacheable = isStatementsCacheable(metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getConfigurations());
+ statementsCacheable = isStatementsCacheable(metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getConfigurations());
trafficRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().findSingleRule(TrafficRule.class).orElse(null);
statementManager = new StatementManager();
}
@@ -275,13 +275,13 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = createExecutionGroupContext();
cacheStatements(executionGroupContext.getInputGroups());
return executor.getRegularExecutor().executeQuery(executionGroupContext, executionContext.getLogicSQL(),
- new PreparedStatementExecuteQueryCallback(metaDataContexts.getDatabase(connection.getDatabaseName()).getResource().getDatabaseType(), sqlStatement,
- SQLExecutorExceptionHandler.isExceptionThrown()));
+ new PreparedStatementExecuteQueryCallback(metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDatabaseType(),
+ sqlStatement, SQLExecutorExceptionHandler.isExceptionThrown()));
}
private ResultSet executeFederationQuery(final LogicSQL logicSQL) throws SQLException {
- PreparedStatementExecuteQueryCallback callback = new PreparedStatementExecuteQueryCallback(metaDataContexts.getDatabase(connection.getDatabaseName()).getResource().getDatabaseType(),
- sqlStatement, SQLExecutorExceptionHandler.isExceptionThrown());
+ PreparedStatementExecuteQueryCallback callback = new PreparedStatementExecuteQueryCallback(
+ metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDatabaseType(), sqlStatement, SQLExecutorExceptionHandler.isExceptionThrown());
FederationContext context = new FederationContext(false, logicSQL, metaDataContexts.getMetaData().getDatabases());
return executor.getFederationExecutor().executeQuery(createDriverExecutionPrepareEngine(), callback, context);
}
@@ -289,7 +289,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
private DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> createDriverExecutionPrepareEngine() {
int maxConnectionsSizePerQuery = metaDataContexts.getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY);
return new DriverExecutionPrepareEngine<>(JDBCDriverType.PREPARED_STATEMENT, maxConnectionsSizePerQuery, connection.getConnectionManager(), statementManager,
- statementOption, metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules());
+ statementOption, metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules());
}
@Override
@@ -333,7 +333,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
private JDBCExecutorCallback<Integer> createExecuteUpdateCallback() {
boolean isExceptionThrown = SQLExecutorExceptionHandler.isExceptionThrown();
- return new JDBCExecutorCallback<Integer>(metaDataContexts.getDatabase(connection.getDatabaseName()).getResource().getDatabaseType(), sqlStatement, isExceptionThrown) {
+ return new JDBCExecutorCallback<Integer>(metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDatabaseType(), sqlStatement, isExceptionThrown) {
@Override
protected Integer executeSQL(final String sql, final Statement statement, final ConnectionMode connectionMode) throws SQLException {
@@ -384,7 +384,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
}
private boolean hasRawExecutionRule() {
- for (ShardingSphereRule each : metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules()) {
+ for (ShardingSphereRule each : metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules()) {
if (each instanceof RawExecutionRule) {
return true;
}
@@ -394,7 +394,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
private ExecutionGroupContext<RawSQLExecutionUnit> createRawExecutionGroupContext() throws SQLException {
int maxConnectionsSizePerQuery = metaDataContexts.getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY);
- return new RawExecutionPrepareEngine(maxConnectionsSizePerQuery, metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules())
+ return new RawExecutionPrepareEngine(maxConnectionsSizePerQuery, metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules())
.prepare(executionContext.getRouteContext(), executionContext.getExecutionUnits());
}
@@ -405,7 +405,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
private JDBCExecutorCallback<Boolean> createExecuteCallback() {
boolean isExceptionThrown = SQLExecutorExceptionHandler.isExceptionThrown();
- return new JDBCExecutorCallback<Boolean>(metaDataContexts.getDatabase(connection.getDatabaseName()).getResource().getDatabaseType(), sqlStatement, isExceptionThrown) {
+ return new JDBCExecutorCallback<Boolean>(metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDatabaseType(), sqlStatement, isExceptionThrown) {
@Override
protected Boolean executeSQL(final String sql, final Statement statement, final ConnectionMode connectionMode) throws SQLException {
@@ -466,8 +466,10 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
private ExecutionContext createExecutionContext(final LogicSQL logicSQL) {
SQLCheckEngine.check(logicSQL.getSqlStatementContext().getSqlStatement(), logicSQL.getParameters(),
- metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules(), connection.getDatabaseName(), metaDataContexts.getMetaData().getDatabases(), null);
- ExecutionContext result = kernelProcessor.generateExecutionContext(logicSQL, metaDataContexts.getDatabase(connection.getDatabaseName()), metaDataContexts.getMetaData().getProps());
+ metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules(),
+ connection.getDatabaseName(), metaDataContexts.getMetaData().getDatabases(), null);
+ ExecutionContext result = kernelProcessor.generateExecutionContext(
+ logicSQL, metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()), metaDataContexts.getMetaData().getProps());
findGeneratedKey(result).ifPresent(generatedKey -> generatedValues.addAll(generatedKey.getGeneratedValues()));
return result;
}
@@ -481,7 +483,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
}
private MergedResult mergeQuery(final List<QueryResult> queryResults) throws SQLException {
- MergeEngine mergeEngine = new MergeEngine(metaDataContexts.getDatabase(connection.getDatabaseName()), metaDataContexts.getMetaData().getProps());
+ MergeEngine mergeEngine = new MergeEngine(metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()), metaDataContexts.getMetaData().getProps());
return mergeEngine.merge(queryResults, executionContext.getSqlStatementContext());
}
@@ -566,7 +568,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
private void initBatchPreparedStatementExecutor() throws SQLException {
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine = new DriverExecutionPrepareEngine<>(
JDBCDriverType.PREPARED_STATEMENT, metaDataContexts.getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY),
- connection.getConnectionManager(), statementManager, statementOption, metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules());
+ connection.getConnectionManager(), statementManager, statementOption, metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules());
List<ExecutionUnit> executionUnits = new ArrayList<>(batchPreparedStatementExecutor.getBatchExecutionUnits().size());
for (BatchExecutionUnit each : batchPreparedStatementExecutor.getBatchExecutionUnits()) {
ExecutionUnit executionUnit = each.getExecutionUnit();
@@ -612,7 +614,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
@Override
public boolean isAccumulate() {
- return metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules().stream()
+ return metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules().stream()
.anyMatch(each -> each instanceof DataNodeContainedRule && ((DataNodeContainedRule) each)
.isNeedAccumulate(executionContext.getSqlStatementContext().getTablesContext().getTableNames()));
}
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
index 9c7b3413087..89e1420ecb8 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
@@ -191,19 +191,19 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
}
private List<QueryResult> executeQuery0() throws SQLException {
- if (metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
+ if (metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
return executor.getRawExecutor().execute(createRawExecutionContext(), executionContext.getLogicSQL(),
new RawSQLExecutorCallback()).stream().map(each -> (QueryResult) each).collect(Collectors.toList());
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = createExecutionContext();
cacheStatements(executionGroupContext.getInputGroups());
- StatementExecuteQueryCallback callback = new StatementExecuteQueryCallback(metaDataContexts.getDatabase(connection.getDatabaseName()).getResource().getDatabaseType(),
+ StatementExecuteQueryCallback callback = new StatementExecuteQueryCallback(metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDatabaseType(),
executionContext.getSqlStatementContext().getSqlStatement(), SQLExecutorExceptionHandler.isExceptionThrown());
return executor.getRegularExecutor().executeQuery(executionGroupContext, executionContext.getLogicSQL(), callback);
}
private ResultSet executeFederationQuery(final LogicSQL logicSQL) throws SQLException {
- StatementExecuteQueryCallback callback = new StatementExecuteQueryCallback(metaDataContexts.getDatabase(connection.getDatabaseName()).getResource().getDatabaseType(),
+ StatementExecuteQueryCallback callback = new StatementExecuteQueryCallback(metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDatabaseType(),
executionContext.getSqlStatementContext().getSqlStatement(), SQLExecutorExceptionHandler.isExceptionThrown());
FederationContext context = new FederationContext(false, logicSQL, metaDataContexts.getMetaData().getDatabases());
return executor.getFederationExecutor().executeQuery(createDriverExecutionPrepareEngine(), callback, context);
@@ -212,7 +212,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
private DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> createDriverExecutionPrepareEngine() {
int maxConnectionsSizePerQuery = metaDataContexts.getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY);
return new DriverExecutionPrepareEngine<>(JDBCDriverType.STATEMENT, maxConnectionsSizePerQuery, connection.getConnectionManager(), statementManager,
- statementOption, metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules());
+ statementOption, metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules());
}
@Override
@@ -225,7 +225,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
return executor.getTrafficExecutor().execute(executionUnit, Statement::executeUpdate);
}
executionContext = createExecutionContext(logicSQL);
- if (metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
+ if (metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
return accumulate(executor.getRawExecutor().execute(createRawExecutionContext(), executionContext.getLogicSQL(), new RawSQLExecutorCallback()));
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = createExecutionContext();
@@ -253,7 +253,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
return executor.getTrafficExecutor().execute(executionUnit, (statement, actualSQL) -> statement.executeUpdate(actualSQL, autoGeneratedKeys));
}
executionContext = createExecutionContext(logicSQL);
- if (metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
+ if (metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
return accumulate(executor.getRawExecutor().execute(createRawExecutionContext(), executionContext.getLogicSQL(), new RawSQLExecutorCallback()));
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = createExecutionContext();
@@ -279,7 +279,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
return executor.getTrafficExecutor().execute(executionUnit, (statement, actualSQL) -> statement.executeUpdate(actualSQL, columnIndexes));
}
executionContext = createExecutionContext(logicSQL);
- if (metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
+ if (metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
return accumulate(executor.getRawExecutor().execute(createRawExecutionContext(), executionContext.getLogicSQL(), new RawSQLExecutorCallback()));
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroups = createExecutionContext();
@@ -305,7 +305,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
return executor.getTrafficExecutor().execute(executionUnit, (statement, actualSQL) -> statement.executeUpdate(actualSQL, columnNames));
}
executionContext = createExecutionContext(logicSQL);
- if (metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
+ if (metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
return accumulate(executor.getRawExecutor().execute(createRawExecutionContext(), executionContext.getLogicSQL(), new RawSQLExecutorCallback()));
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = createExecutionContext();
@@ -324,7 +324,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
final SQLStatementContext<?> sqlStatementContext, final Collection<RouteUnit> routeUnits) throws SQLException {
boolean isExceptionThrown = SQLExecutorExceptionHandler.isExceptionThrown();
JDBCExecutorCallback<Integer> callback = new JDBCExecutorCallback<Integer>(
- metaDataContexts.getDatabase(connection.getDatabaseName()).getResource().getDatabaseType(), sqlStatementContext.getSqlStatement(), isExceptionThrown) {
+ metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDatabaseType(), sqlStatementContext.getSqlStatement(), isExceptionThrown) {
@Override
protected Integer executeSQL(final String sql, final Statement statement, final ConnectionMode connectionMode) throws SQLException {
@@ -396,7 +396,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
final SQLStatement sqlStatement, final Collection<RouteUnit> routeUnits) throws SQLException {
boolean isExceptionThrown = SQLExecutorExceptionHandler.isExceptionThrown();
JDBCExecutorCallback<Boolean> jdbcExecutorCallback = new JDBCExecutorCallback<Boolean>(
- metaDataContexts.getDatabase(connection.getDatabaseName()).getResource().getDatabaseType(), sqlStatement, isExceptionThrown) {
+ metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDatabaseType(), sqlStatement, isExceptionThrown) {
@Override
protected Boolean executeSQL(final String sql, final Statement statement, final ConnectionMode connectionMode) throws SQLException {
@@ -420,7 +420,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
return executor.getTrafficExecutor().execute(executionUnit, (statement, actualSQL) -> callback.execute(actualSQL, statement));
}
executionContext = createExecutionContext(logicSQL);
- if (metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
+ if (metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
// TODO process getStatement
Collection<ExecuteResult> results = executor.getRawExecutor().execute(createRawExecutionContext(), executionContext.getLogicSQL(), new RawSQLExecutorCallback());
return results.iterator().next() instanceof QueryResult;
@@ -455,7 +455,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
private LogicSQL createLogicSQL(final String sql) {
SQLParserRule sqlParserRule = findSQLParserRule();
SQLStatement sqlStatement = sqlParserRule.getSQLParserEngine(
- DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getDatabase(connection.getDatabaseName()).getResource().getDatabaseType())).parse(sql, false);
+ DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDatabaseType())).parse(sql, false);
SQLStatementContext<?> sqlStatementContext = SQLStatementContextFactory.newInstance(metaDataContexts.getMetaData().getDatabases(), sqlStatement, connection.getDatabaseName());
return new LogicSQL(sqlStatementContext, sql, Collections.emptyList());
}
@@ -469,8 +469,9 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
private ExecutionContext createExecutionContext(final LogicSQL logicSQL) throws SQLException {
clearStatements();
SQLCheckEngine.check(logicSQL.getSqlStatementContext().getSqlStatement(), logicSQL.getParameters(),
- metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules(), connection.getDatabaseName(), metaDataContexts.getMetaData().getDatabases(), null);
- return kernelProcessor.generateExecutionContext(logicSQL, metaDataContexts.getDatabase(connection.getDatabaseName()), metaDataContexts.getMetaData().getProps());
+ metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules(),
+ connection.getDatabaseName(), metaDataContexts.getMetaData().getDatabases(), null);
+ return kernelProcessor.generateExecutionContext(logicSQL, metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()), metaDataContexts.getMetaData().getProps());
}
private ExecutionGroupContext<JDBCExecutionUnit> createExecutionContext() throws SQLException {
@@ -480,7 +481,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
private ExecutionGroupContext<RawSQLExecutionUnit> createRawExecutionContext() throws SQLException {
int maxConnectionsSizePerQuery = metaDataContexts.getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY);
- return new RawExecutionPrepareEngine(maxConnectionsSizePerQuery, metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules())
+ return new RawExecutionPrepareEngine(maxConnectionsSizePerQuery, metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules())
.prepare(executionContext.getRouteContext(), executionContext.getExecutionUnits());
}
@@ -543,7 +544,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
}
private MergedResult mergeQuery(final List<QueryResult> queryResults) throws SQLException {
- MergeEngine mergeEngine = new MergeEngine(metaDataContexts.getDatabase(connection.getDatabaseName()), metaDataContexts.getMetaData().getProps());
+ MergeEngine mergeEngine = new MergeEngine(metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()), metaDataContexts.getMetaData().getProps());
return mergeEngine.merge(queryResults, executionContext.getSqlStatementContext());
}
@@ -566,7 +567,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
@Override
public boolean isAccumulate() {
- return metaDataContexts.getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules().stream()
+ return metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules().stream()
.anyMatch(each -> each instanceof DataNodeContainedRule && ((DataNodeContainedRule) each)
.isNeedAccumulate(executionContext.getSqlStatementContext().getTablesContext().getTableNames()));
}
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/executor/AbstractBaseExecutorTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/executor/AbstractBaseExecutorTest.java
index 9aeaffedd2d..d64896d23b2 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/executor/AbstractBaseExecutorTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/executor/AbstractBaseExecutorTest.java
@@ -87,9 +87,9 @@ public abstract class AbstractBaseExecutorTest {
private MetaDataContexts mockMetaDataContexts() {
MetaDataContexts result = mock(MetaDataContexts.class, RETURNS_DEEP_STUBS);
- when(result.getDatabase(DefaultDatabase.LOGIC_NAME).getResource().getDatabaseType()).thenReturn(DatabaseTypeFactory.getInstance("H2"));
+ when(result.getMetaData().getDatabases().get(DefaultDatabase.LOGIC_NAME).getResource().getDatabaseType()).thenReturn(DatabaseTypeFactory.getInstance("H2"));
ShardingRule shardingRule = mockShardingRule();
- when(result.getDatabase(DefaultDatabase.LOGIC_NAME).getRuleMetaData().getRules()).thenReturn(Collections.singletonList(shardingRule));
+ when(result.getMetaData().getDatabases().get(DefaultDatabase.LOGIC_NAME).getRuleMetaData().getRules()).thenReturn(Collections.singletonList(shardingRule));
return result;
}
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/PreparedStatementAdapterTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/PreparedStatementAdapterTest.java
index a6383924170..084028f7947 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/PreparedStatementAdapterTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/PreparedStatementAdapterTest.java
@@ -64,7 +64,7 @@ public final class PreparedStatementAdapterTest {
public void setUp() throws SQLException {
ShardingSphereConnection connection = mock(ShardingSphereConnection.class, RETURNS_DEEP_STUBS);
when(connection.getDatabaseName()).thenReturn(DefaultDatabase.LOGIC_NAME);
- when(connection.getContextManager().getMetaDataContexts().getDatabase(connection.getDatabaseName()).getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
+ when(connection.getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
when(connection.getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class)).thenReturn(Optional.of(sqlParserRule));
when(connection.getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(TrafficRule.class)).thenReturn(Optional.of(trafficRule));
shardingSpherePreparedStatement = new ShardingSpherePreparedStatement(connection, "SELECT 1");
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/StatementAdapterTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/StatementAdapterTest.java
index 34f153df378..3871abe9c5a 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/StatementAdapterTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/StatementAdapterTest.java
@@ -234,7 +234,8 @@ public final class StatementAdapterTest {
ShardingSphereConnection connection = mock(ShardingSphereConnection.class, RETURNS_DEEP_STUBS);
DataNodeContainedRule rule = mock(DataNodeContainedRule.class);
when(rule.isNeedAccumulate(any())).thenReturn(true);
- when(connection.getContextManager().getMetaDataContexts().getDatabase(DefaultDatabase.LOGIC_NAME).getRuleMetaData().getRules()).thenReturn(Collections.singletonList(rule));
+ when(connection.getContextManager()
+ .getMetaDataContexts().getMetaData().getDatabases().get(DefaultDatabase.LOGIC_NAME).getRuleMetaData().getRules()).thenReturn(Collections.singletonList(rule));
TrafficRule trafficRule = new TrafficRule(new DefaultTrafficRuleConfigurationBuilder().build());
when(connection.getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(TrafficRule.class)).thenReturn(Optional.of(trafficRule));
ShardingSphereStatement result = new ShardingSphereStatement(connection);
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaDataTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaDataTest.java
index a895a4cfc1e..fcefd48f806 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaDataTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaDataTest.java
@@ -74,7 +74,7 @@ public final class ShardingSphereDatabaseMetaDataTest {
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private ShardingSphereConnection shardingSphereConnection;
- @Mock
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private MetaDataContexts metaDataContexts;
private final Map<String, DataSource> dataSourceMap = new HashMap<>();
@@ -93,7 +93,7 @@ public final class ShardingSphereDatabaseMetaDataTest {
when(shardingSphereConnection.getContextManager().getDataSourceMap(DefaultDatabase.LOGIC_NAME)).thenReturn(dataSourceMap);
when(shardingSphereConnection.getDatabaseName()).thenReturn(DefaultDatabase.LOGIC_NAME);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(metaDataContexts.getDatabase(shardingSphereConnection.getDatabaseName())).thenReturn(database);
+ when(metaDataContexts.getMetaData().getDatabases().get(shardingSphereConnection.getDatabaseName())).thenReturn(database);
CachedDatabaseMetaData cachedDatabaseMetaData = new CachedDatabaseMetaData(databaseMetaData);
when(shardingSphereConnection.getJdbcContext().getCachedDatabaseMetaData()).thenReturn(cachedDatabaseMetaData);
ShardingRule shardingRule = mockShardingRule();
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationPreparedStatementTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationPreparedStatementTest.java
index c2f51d1e6fb..299aea4640b 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationPreparedStatementTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationPreparedStatementTest.java
@@ -50,7 +50,7 @@ public final class UnsupportedOperationPreparedStatementTest {
public void setUp() throws SQLException {
ShardingSphereConnection connection = mock(ShardingSphereConnection.class, RETURNS_DEEP_STUBS);
when(connection.getDatabaseName()).thenReturn(DefaultDatabase.LOGIC_NAME);
- when(connection.getContextManager().getMetaDataContexts().getDatabase(connection.getDatabaseName()).getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
+ when(connection.getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(connection.getDatabaseName()).getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
when(connection.getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class)).thenReturn(Optional.of(sqlParserRule));
when(connection.getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(TrafficRule.class)).thenReturn(Optional.of(trafficRule));
shardingSpherePreparedStatement = new ShardingSpherePreparedStatement(connection, "SELECT 1");
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/SpringBootStarterTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/SpringBootStarterTest.java
index 87a783a4709..d0121b5f956 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/SpringBootStarterTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/SpringBootStarterTest.java
@@ -73,7 +73,7 @@ public class SpringBootStarterTest {
@Test
public void assertDataSources() {
- Map<String, DataSource> dataSources = getContextManager(dataSource).getMetaDataContexts().getDatabase("foo_db").getResource().getDataSources();
+ Map<String, DataSource> dataSources = getContextManager(dataSource).getMetaDataContexts().getMetaData().getDatabases().get("foo_db").getResource().getDataSources();
assertThat(dataSources.size(), is(2));
assertTrue(dataSources.containsKey("ds0"));
assertTrue(dataSources.containsKey("ds1"));
@@ -81,7 +81,7 @@ public class SpringBootStarterTest {
@Test
public void assertRules() {
- Collection<ShardingSphereRule> rules = getContextManager(dataSource).getMetaDataContexts().getDatabase("foo_db").getRuleMetaData().getRules();
+ Collection<ShardingSphereRule> rules = getContextManager(dataSource).getMetaDataContexts().getMetaData().getDatabases().get("foo_db").getRuleMetaData().getRules();
assertThat(rules.size(), is(5));
for (ShardingSphereRule each : rules) {
if (each instanceof ShardingRule) {
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/jndi/SpringBootJNDIDataSourceTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/jndi/SpringBootJNDIDataSourceTest.java
index ca166430b8e..663d0822118 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/jndi/SpringBootJNDIDataSourceTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/jndi/SpringBootJNDIDataSourceTest.java
@@ -58,7 +58,7 @@ public class SpringBootJNDIDataSourceTest {
@Test
public void assertDataSources() {
- Map<String, DataSource> dataSources = getContextManager(dataSource).getMetaDataContexts().getDatabase("foo_db").getResource().getDataSources();
+ Map<String, DataSource> dataSources = getContextManager(dataSource).getMetaDataContexts().getMetaData().getDatabases().get("foo_db").getResource().getDataSources();
assertThat(dataSources.size(), is(2));
assertTrue(dataSources.containsKey("ds0"));
assertTrue(dataSources.containsKey("ds1"));
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/AbstractSpringNamespaceTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/AbstractSpringNamespaceTest.java
index 06c195c67f2..39671f4fd64 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/AbstractSpringNamespaceTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/AbstractSpringNamespaceTest.java
@@ -52,8 +52,8 @@ public abstract class AbstractSpringNamespaceTest extends AbstractJUnit4SpringCo
@Test
public void assertShardingSphereDataSource() {
- assertDataSources(getContextManager(dataSource).getMetaDataContexts().getDatabase(DefaultDatabase.LOGIC_NAME).getResource().getDataSources());
- assertSchemaRules(getContextManager(dataSource).getMetaDataContexts().getDatabase(DefaultDatabase.LOGIC_NAME).getRuleMetaData().getRules());
+ assertDataSources(getContextManager(dataSource).getMetaDataContexts().getMetaData().getDatabases().get(DefaultDatabase.LOGIC_NAME).getResource().getDataSources());
+ assertSchemaRules(getContextManager(dataSource).getMetaDataContexts().getMetaData().getDatabases().get(DefaultDatabase.LOGIC_NAME).getRuleMetaData().getRules());
assertGlobalRules(getContextManager(dataSource).getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules());
}
diff --git a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyChecker.java b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyChecker.java
index 9872024a4e4..7cfdc7dae00 100644
--- a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyChecker.java
+++ b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyChecker.java
@@ -79,7 +79,7 @@ public final class DataConsistencyChecker {
public DataConsistencyChecker(final RuleAlteredJobConfiguration jobConfig) {
this.jobConfig = jobConfig;
logicTableNames = jobConfig.splitLogicTableNames();
- ShardingSphereDatabase database = PipelineContext.getContextManager().getMetaDataContexts().getDatabase(jobConfig.getDatabaseName());
+ ShardingSphereDatabase database = PipelineContext.getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(jobConfig.getDatabaseName());
tableNameSchemaNameMapping = new TableNameSchemaNameMapping(TableNameSchemaNameMapping.convert(database.getSchemas()));
}
@@ -225,7 +225,7 @@ public final class DataConsistencyChecker {
private TableMetaData getTableMetaData(final String databaseName, final String logicTableName) {
ContextManager contextManager = PipelineContext.getContextManager();
Preconditions.checkNotNull(contextManager, "ContextManager null");
- ShardingSphereDatabase database = contextManager.getMetaDataContexts().getDatabase(databaseName);
+ ShardingSphereDatabase database = contextManager.getMetaDataContexts().getMetaData().getDatabases().get(databaseName);
if (null == database) {
throw new RuntimeException("Can not get meta data by database name " + databaseName);
}
diff --git a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
index 784602fa923..83a288d8e57 100644
--- a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
+++ b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
@@ -81,7 +81,7 @@ public final class PipelineDDLGenerator {
*/
@SneakyThrows
public String generateLogicDDLSQL(final DatabaseType databaseType, final String databaseName, final String schemaName, final String tableName) {
- ShardingSphereDatabase database = contextManager.getMetaDataContexts().getDatabase(databaseName);
+ ShardingSphereDatabase database = contextManager.getMetaDataContexts().getMetaData().getDatabases().get(databaseName);
log.info("generateLogicDDLSQL, databaseType={}, databaseName={}, schemaName={}, tableName={}, dataSourceNames={}",
databaseType.getType(), databaseName, schemaName, tableName, database.getResource().getDataSources().keySet());
String sql = generateActualDDLSQL(databaseType, schemaName, tableName, database);
diff --git a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/scaling/core/job/environment/ScalingEnvironmentManager.java b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/scaling/core/job/environment/ScalingEnvironmentManager.java
index 9b780e3ec7e..81db1ef4bca 100644
--- a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/scaling/core/job/environment/ScalingEnvironmentManager.java
+++ b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/scaling/core/job/environment/ScalingEnvironmentManager.java
@@ -52,7 +52,7 @@ public final class ScalingEnvironmentManager {
log.info("cleanupTargetTables, tables={}", tables);
PipelineDataSourceConfiguration target = jobConfig.getTarget();
PipelineSQLBuilder pipelineSQLBuilder = PipelineSQLBuilderFactory.getInstance(jobConfig.getTargetDatabaseType());
- ShardingSphereDatabase database = PipelineContext.getContextManager().getMetaDataContexts().getDatabase(jobConfig.getDatabaseName());
+ ShardingSphereDatabase database = PipelineContext.getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(jobConfig.getDatabaseName());
TableNameSchemaNameMapping tableNameSchemaNameMapping = new TableNameSchemaNameMapping(TableNameSchemaNameMapping.convert(database.getSchemas()));
try (
PipelineDataSourceWrapper dataSource = PipelineDataSourceFactory.newInstance(PipelineDataSourceConfigurationFactory.newInstance(target.getType(), target.getParameter()));
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index d03025b4b2d..e1441d15734 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -119,7 +119,7 @@ public final class ContextManager implements AutoCloseable {
* @return data source map
*/
public Map<String, DataSource> getDataSourceMap(final String databaseName) {
- return metaDataContexts.getDatabase(databaseName).getResource().getDataSources();
+ return metaDataContexts.getMetaData().getDatabases().get(databaseName).getResource().getDataSources();
}
/**
@@ -136,7 +136,7 @@ public final class ContextManager implements AutoCloseable {
FederationDatabaseMetaData federationDatabaseMetaData = newMetaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases().get(databaseName);
metaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases().put(databaseName, federationDatabaseMetaData);
metaDataContexts.getOptimizerContext().getPlannerContexts().put(databaseName, OptimizerPlannerContextFactory.create(federationDatabaseMetaData));
- metaDataContexts.getMetaData().getDatabases().put(databaseName, newMetaDataContexts.getDatabase(databaseName));
+ metaDataContexts.getMetaData().getDatabases().put(databaseName, newMetaDataContexts.getMetaData().getDatabases().get(databaseName));
persistMetaData(metaDataContexts);
renewAllTransactionContext();
}
@@ -155,7 +155,7 @@ public final class ContextManager implements AutoCloseable {
* @param schemaName schema name
*/
public void addSchema(final String databaseName, final String schemaName) {
- if (null != metaDataContexts.getDatabase(databaseName).getSchemas().get(schemaName)) {
+ if (null != metaDataContexts.getMetaData().getDatabases().get(databaseName).getSchemas().get(schemaName)) {
return;
}
FederationDatabaseMetaData federationDatabaseMetaData = metaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases().get(databaseName);
@@ -171,8 +171,8 @@ public final class ContextManager implements AutoCloseable {
* @param schemas schemas
*/
public void alterSchemas(final String databaseName, final Map<String, ShardingSphereSchema> schemas) {
- ShardingSphereDatabase alteredMetaData = new ShardingSphereDatabase(databaseName, metaDataContexts.getDatabase(databaseName).getProtocolType(),
- metaDataContexts.getDatabase(databaseName).getResource(), metaDataContexts.getDatabase(databaseName).getRuleMetaData(), schemas);
+ ShardingSphereDatabase alteredMetaData = new ShardingSphereDatabase(databaseName, metaDataContexts.getMetaData().getDatabases().get(databaseName).getProtocolType(),
+ metaDataContexts.getMetaData().getDatabases().get(databaseName).getResource(), metaDataContexts.getMetaData().getDatabases().get(databaseName).getRuleMetaData(), schemas);
Map<String, ShardingSphereDatabase> alteredDatabaseMap = new HashMap<>(metaDataContexts.getMetaData().getDatabases());
alteredDatabaseMap.put(databaseName, alteredMetaData);
FederationDatabaseMetaData alteredDatabaseMetaData = new FederationDatabaseMetaData(databaseName, schemas);
@@ -191,7 +191,7 @@ public final class ContextManager implements AutoCloseable {
* @param deletedTable deleted table
*/
public void alterSchema(final String databaseName, final String schemaName, final TableMetaData changedTableMetaData, final String deletedTable) {
- if (null != metaDataContexts.getDatabase(databaseName)) {
+ if (null != metaDataContexts.getMetaData().getDatabases().get(databaseName)) {
Optional.ofNullable(changedTableMetaData).ifPresent(optional -> alterTableSchema(databaseName, schemaName, optional));
Optional.ofNullable(deletedTable).ifPresent(optional -> deleteTable(databaseName, schemaName, optional));
}
@@ -203,7 +203,7 @@ public final class ContextManager implements AutoCloseable {
}
private void alterTableSchema(final String databaseName, final String schemaName, final TableMetaData changedTableMetaData) {
- ShardingSphereDatabase database = metaDataContexts.getDatabase(databaseName);
+ ShardingSphereDatabase database = metaDataContexts.getMetaData().getDatabases().get(databaseName);
alterSingleTableDataNodes(databaseName, database, changedTableMetaData);
FederationDatabaseMetaData federationDatabaseMetaData = metaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases().get(databaseName);
database.getSchemas().get(schemaName).put(changedTableMetaData.getName(), changedTableMetaData);
@@ -225,8 +225,8 @@ public final class ContextManager implements AutoCloseable {
}
private void deleteTable(final String databaseName, final String schemaName, final String deletedTable) {
- if (null != metaDataContexts.getDatabase(databaseName).getSchemas().get(schemaName)) {
- metaDataContexts.getDatabase(databaseName).getSchemas().get(schemaName).remove(deletedTable);
+ if (null != metaDataContexts.getMetaData().getDatabases().get(databaseName).getSchemas().get(schemaName)) {
+ metaDataContexts.getMetaData().getDatabases().get(databaseName).getSchemas().get(schemaName).remove(deletedTable);
FederationDatabaseMetaData databaseMetaData = metaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases().get(databaseName);
databaseMetaData.removeTableMetadata(schemaName, deletedTable);
metaDataContexts.getOptimizerContext().getPlannerContexts().put(databaseName, OptimizerPlannerContextFactory.create(databaseMetaData));
@@ -262,7 +262,7 @@ public final class ContextManager implements AutoCloseable {
* @param schemaName schema name
*/
public void dropSchema(final String databaseName, final String schemaName) {
- ShardingSphereDatabase database = metaDataContexts.getDatabase(databaseName);
+ ShardingSphereDatabase database = metaDataContexts.getMetaData().getDatabases().get(databaseName);
if (null == database || null == database.getSchemas().get(schemaName)) {
return;
}
@@ -302,7 +302,7 @@ public final class ContextManager implements AutoCloseable {
* @param toBeDroppedResourceNames to be dropped resource names
*/
public void dropResource(final String databaseName, final Collection<String> toBeDroppedResourceNames) {
- toBeDroppedResourceNames.forEach(metaDataContexts.getDatabase(databaseName).getResource().getDataSources()::remove);
+ toBeDroppedResourceNames.forEach(metaDataContexts.getMetaData().getDatabases().get(databaseName).getResource().getDataSources()::remove);
metaDataContexts.getPersistService().ifPresent(optional -> optional.getDataSourceService().drop(databaseName, toBeDroppedResourceNames));
}
@@ -411,9 +411,9 @@ public final class ContextManager implements AutoCloseable {
*/
public void reloadMetaData(final String databaseName, final String schemaName, final String tableName) {
try {
- GenericSchemaBuilderMaterials materials = new GenericSchemaBuilderMaterials(metaDataContexts.getDatabase(databaseName).getProtocolType(),
- metaDataContexts.getDatabase(databaseName).getResource().getDatabaseType(), metaDataContexts.getDatabase(databaseName).getResource().getDataSources(),
- metaDataContexts.getDatabase(databaseName).getRuleMetaData().getRules(), metaDataContexts.getMetaData().getProps(), schemaName);
+ ShardingSphereDatabase database = metaDataContexts.getMetaData().getDatabases().get(databaseName);
+ GenericSchemaBuilderMaterials materials = new GenericSchemaBuilderMaterials(database.getProtocolType(),
+ database.getResource().getDatabaseType(), database.getResource().getDataSources(), database.getRuleMetaData().getRules(), metaDataContexts.getMetaData().getProps(), schemaName);
loadTableMetaData(databaseName, schemaName, tableName, materials);
} catch (final SQLException ex) {
log.error("Reload table:{} meta data of database:{} schema:{} failed", tableName, databaseName, schemaName, ex);
@@ -430,10 +430,10 @@ public final class ContextManager implements AutoCloseable {
*/
public void reloadMetaData(final String databaseName, final String schemaName, final String tableName, final String dataSourceName) {
try {
- GenericSchemaBuilderMaterials materials = new GenericSchemaBuilderMaterials(metaDataContexts.getDatabase(databaseName).getProtocolType(),
- metaDataContexts.getDatabase(databaseName).getResource().getDatabaseType(), Collections.singletonMap(dataSourceName,
- metaDataContexts.getDatabase(databaseName).getResource().getDataSources().get(dataSourceName)),
- metaDataContexts.getDatabase(databaseName).getRuleMetaData().getRules(), metaDataContexts.getMetaData().getProps(), schemaName);
+ ShardingSphereDatabase database = metaDataContexts.getMetaData().getDatabases().get(databaseName);
+ GenericSchemaBuilderMaterials materials = new GenericSchemaBuilderMaterials(database.getProtocolType(), database.getResource().getDatabaseType(),
+ Collections.singletonMap(dataSourceName, database.getResource().getDataSources().get(dataSourceName)),
+ database.getRuleMetaData().getRules(), metaDataContexts.getMetaData().getProps(), schemaName);
loadTableMetaData(databaseName, schemaName, tableName, materials);
} catch (final SQLException ex) {
log.error("Reload table:{} meta data of database:{} schema:{} with data source:{} failed", tableName, databaseName, schemaName, dataSourceName, ex);
@@ -441,7 +441,7 @@ public final class ContextManager implements AutoCloseable {
}
private void deleteSchemas(final String databaseName, final Map<String, ShardingSphereSchema> actualSchemas) {
- Map<String, ShardingSphereSchema> originalSchemas = metaDataContexts.getDatabase(databaseName).getSchemas();
+ Map<String, ShardingSphereSchema> originalSchemas = metaDataContexts.getMetaData().getDatabases().get(databaseName).getSchemas();
if (originalSchemas.isEmpty()) {
return;
}
@@ -455,14 +455,14 @@ public final class ContextManager implements AutoCloseable {
private void loadTableMetaData(final String databaseName, final String schemaName, final String tableName, final GenericSchemaBuilderMaterials materials) throws SQLException {
ShardingSphereSchema schema = GenericSchemaBuilder.build(Collections.singletonList(tableName), materials).getOrDefault(schemaName, new ShardingSphereSchema());
if (schema.getTables().containsKey(tableName)) {
- metaDataContexts.getDatabase(databaseName).getSchemas().get(schemaName).put(tableName, schema.getTables().get(tableName));
+ metaDataContexts.getMetaData().getDatabases().get(databaseName).getSchemas().get(schemaName).put(tableName, schema.getTables().get(tableName));
metaDataContexts.getPersistService().ifPresent(optional -> optional.getSchemaMetaDataService()
- .persistMetaData(databaseName, schemaName, metaDataContexts.getDatabase(databaseName).getSchemas().get(schemaName)));
+ .persistMetaData(databaseName, schemaName, metaDataContexts.getMetaData().getDatabases().get(databaseName).getSchemas().get(schemaName)));
}
}
private Map<String, ShardingSphereSchema> loadActualSchema(final String databaseName) throws SQLException {
- ShardingSphereDatabase database = metaDataContexts.getDatabase(databaseName);
+ ShardingSphereDatabase database = metaDataContexts.getMetaData().getDatabases().get(databaseName);
Map<String, DataSource> dataSourceMap = database.getResource().getDataSources();
refreshRules(databaseName, database);
DatabaseType databaseType = DatabaseTypeEngine.getDatabaseType(dataSourceMap.values());
@@ -476,8 +476,8 @@ public final class ContextManager implements AutoCloseable {
private Collection<DataSource> getPendingClosedDataSources(final String databaseName, final Map<String, DataSourceProperties> dataSourcePropsMap) {
Collection<DataSource> result = new LinkedList<>();
- result.addAll(getDeletedDataSources(metaDataContexts.getDatabase(databaseName), dataSourcePropsMap).values());
- result.addAll(getChangedDataSources(metaDataContexts.getDatabase(databaseName), dataSourcePropsMap).values());
+ result.addAll(getDeletedDataSources(metaDataContexts.getMetaData().getDatabases().get(databaseName), dataSourcePropsMap).values());
+ result.addAll(getChangedDataSources(metaDataContexts.getMetaData().getDatabases().get(databaseName), dataSourcePropsMap).values());
return result;
}
@@ -523,7 +523,7 @@ public final class ContextManager implements AutoCloseable {
metaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases().putAll(changedMetaDataContext.getOptimizerContext().getFederationMetaData().getDatabases());
metaDataContexts.getOptimizerContext().getParserContexts().putAll(changedMetaDataContext.getOptimizerContext().getParserContexts());
metaDataContexts.getOptimizerContext().getPlannerContexts().putAll(changedMetaDataContext.getOptimizerContext().getPlannerContexts());
- renewTransactionContext(databaseName, metaDataContexts.getDatabase(databaseName).getResource());
+ renewTransactionContext(databaseName, metaDataContexts.getMetaData().getDatabases().get(databaseName).getResource());
}
private void refreshMetaDataContext(final String databaseName, final MetaDataContexts changedMetaDataContext, final Map<String, DataSourceProperties> dataSourcePropsMap) {
@@ -532,7 +532,7 @@ public final class ContextManager implements AutoCloseable {
databaseMap.putAll(changedMetaDataContext.getMetaData().getDatabases());
Collection<DataSource> pendingClosedDataSources = getPendingClosedDataSources(databaseName, dataSourcePropsMap);
renewMetaDataContexts(rebuildMetaDataContexts(new ShardingSphereMetaData(databaseMap, metaDataContexts.getMetaData().getGlobalRuleMetaData(), metaDataContexts.getMetaData().getProps())));
- renewTransactionContext(databaseName, metaDataContexts.getDatabase(databaseName).getResource());
+ renewTransactionContext(databaseName, metaDataContexts.getMetaData().getDatabases().get(databaseName).getResource());
closeDataSources(databaseName, pendingClosedDataSources);
}
@@ -647,7 +647,7 @@ public final class ContextManager implements AutoCloseable {
}
private void closeDataSources(final String databaseName, final Collection<DataSource> dataSources) {
- ShardingSphereResource resource = metaDataContexts.getDatabase(databaseName).getResource();
+ ShardingSphereResource resource = metaDataContexts.getMetaData().getDatabases().get(databaseName).getResource();
dataSources.forEach(resource::close);
}
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
index 5c301f47d94..fbedb01ce12 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
@@ -22,7 +22,6 @@ import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.federation.optimizer.context.OptimizerContext;
import org.apache.shardingsphere.infra.federation.optimizer.context.OptimizerContextFactory;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
-import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
@@ -56,16 +55,6 @@ public final class MetaDataContexts implements AutoCloseable {
return Optional.ofNullable(persistService);
}
- /**
- * Get database.
- *
- * @param databaseName database name
- * @return database
- */
- public ShardingSphereDatabase getDatabase(final String databaseName) {
- return metaData.getDatabases().get(databaseName);
- }
-
@Override
public void close() throws Exception {
if (null != persistService) {
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index 2a292e94149..1112952ea6f 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -79,10 +79,10 @@ public final class ContextManagerTest {
when(metaDataContexts.getMetaData().getGlobalRuleMetaData().getRules()).thenReturn(Collections.emptyList());
when(metaDataContexts.getMetaData().getGlobalRuleMetaData().findSingleRule(TransactionRule.class)).thenReturn(Optional.of(mock(TransactionRule.class)));
when(metaDataContexts.getMetaData().getProps()).thenReturn(new ConfigurationProperties(new Properties()));
- when(metaDataContexts.getDatabase("foo_db").getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
- when(metaDataContexts.getDatabase("foo_db").getProtocolType()).thenReturn(new MySQLDatabaseType());
- when(metaDataContexts.getDatabase("foo_db").getSchemas()).thenReturn(Collections.singletonMap("foo_db", new ShardingSphereSchema()));
- when(metaDataContexts.getDatabase("foo_db").getRuleMetaData()).thenReturn(new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.emptyList()));
+ when(metaDataContexts.getMetaData().getDatabases().get("foo_db").getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
+ when(metaDataContexts.getMetaData().getDatabases().get("foo_db").getProtocolType()).thenReturn(new MySQLDatabaseType());
+ when(metaDataContexts.getMetaData().getDatabases().get("foo_db").getSchemas()).thenReturn(Collections.singletonMap("foo_db", new ShardingSphereSchema()));
+ when(metaDataContexts.getMetaData().getDatabases().get("foo_db").getRuleMetaData()).thenReturn(new ShardingSphereRuleMetaData(Collections.emptyList(), Collections.emptyList()));
when(metaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases()).thenReturn(new LinkedHashMap<>());
contextManager = new ContextManager(metaDataContexts, mock(TransactionContexts.class), mock(InstanceContext.class));
}
@@ -90,8 +90,9 @@ public final class ContextManagerTest {
@Test
public void assertGetDataSourceMap() {
ShardingSphereResource resource = new ShardingSphereResource(Collections.singletonMap("foo_ds", new MockedDataSource()));
- when(metaDataContexts.getDatabase(DefaultDatabase.LOGIC_NAME)).thenReturn(
- new ShardingSphereDatabase("foo_db", mock(DatabaseType.class), resource, mock(ShardingSphereRuleMetaData.class), Collections.emptyMap()));
+ ShardingSphereDatabase database = new ShardingSphereDatabase(
+ DefaultDatabase.LOGIC_NAME, mock(DatabaseType.class), resource, mock(ShardingSphereRuleMetaData.class), Collections.emptyMap());
+ when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap(DefaultDatabase.LOGIC_NAME, database));
assertThat(contextManager.getDataSourceMap(DefaultDatabase.LOGIC_NAME).size(), is(1));
}
@@ -192,9 +193,9 @@ public final class ContextManagerTest {
@Test
public void assertDropResource() {
- when(metaDataContexts.getDatabase("foo_db").getResource().getDataSources()).thenReturn(new HashMap<>(Collections.singletonMap("foo_ds", new MockedDataSource())));
+ when(metaDataContexts.getMetaData().getDatabases().get("foo_db").getResource().getDataSources()).thenReturn(new HashMap<>(Collections.singletonMap("foo_ds", new MockedDataSource())));
contextManager.dropResource("foo_db", Collections.singleton("foo_ds"));
- assertTrue(contextManager.getMetaDataContexts().getDatabase("foo_db").getResource().getDataSources().isEmpty());
+ assertTrue(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("foo_db").getResource().getDataSources().isEmpty());
}
@Test
@@ -212,11 +213,11 @@ public final class ContextManagerTest {
public void assertAlterDataSourceConfiguration() {
ShardingSphereDatabase originalDatabaseMetaData = new ShardingSphereDatabase(
"foo_db", new MySQLDatabaseType(), createOriginalResource(), createOriginalRuleMetaData(), Collections.emptyMap());
- when(metaDataContexts.getDatabase("foo_db")).thenReturn(originalDatabaseMetaData);
+ when(metaDataContexts.getMetaData().getDatabases().get("foo_db")).thenReturn(originalDatabaseMetaData);
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("foo_db", originalDatabaseMetaData));
contextManager.alterDataSourceConfiguration("foo_db", Collections.singletonMap("foo_ds", new DataSourceProperties(MockedDataSource.class.getName(), createProperties("test", "test"))));
assertThat(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("foo_db").getResource().getDataSources().size(), is(1));
- assertAlteredDataSource((MockedDataSource) contextManager.getMetaDataContexts().getDatabase("foo_db").getResource().getDataSources().get("foo_ds"));
+ assertAlteredDataSource((MockedDataSource) contextManager.getMetaDataContexts().getMetaData().getDatabases().get("foo_db").getResource().getDataSources().get("foo_ds"));
}
private ShardingSphereResource createOriginalResource() {
@@ -251,7 +252,7 @@ public final class ContextManagerTest {
@Test
public void assertReloadMetaData() {
- when(metaDataContexts.getDatabase("foo_db").getResource().getDataSources()).thenReturn(Collections.singletonMap("foo_ds", new MockedDataSource()));
+ when(metaDataContexts.getMetaData().getDatabases().get("foo_db").getResource().getDataSources()).thenReturn(Collections.singletonMap("foo_ds", new MockedDataSource()));
SchemaMetaDataPersistService schemaMetaDataPersistService = mock(SchemaMetaDataPersistService.class, RETURNS_DEEP_STUBS);
MetaDataPersistService metaDataPersistService = mock(MetaDataPersistService.class);
when(metaDataPersistService.getSchemaMetaDataService()).thenReturn(schemaMetaDataPersistService);
@@ -259,8 +260,8 @@ public final class ContextManagerTest {
contextManager.reloadMetaData("foo_db");
verify(schemaMetaDataPersistService, times(1)).persistMetaData(eq("foo_db"), eq("foo_db"), any(ShardingSphereSchema.class));
contextManager.reloadMetaData("foo_db", "foo_schema", "foo_table");
- assertNotNull(contextManager.getMetaDataContexts().getDatabase("foo_db").getSchemas().get("foo_db"));
- assertTrue(contextManager.getMetaDataContexts().getDatabase("foo_db").getResource().getDataSources().containsKey("foo_ds"));
+ assertNotNull(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("foo_db").getSchemas().get("foo_db"));
+ assertTrue(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("foo_db").getResource().getDataSources().containsKey("foo_ds"));
}
private Map<String, Object> createProperties(final String username, final String password) {
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsBuilderTest.java b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsBuilderTest.java
index 34d9fdc34e7..c971f2b7c7e 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsBuilderTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsBuilderTest.java
@@ -59,13 +59,13 @@ public final class MetaDataContextsBuilderTest {
MetaDataContexts actual = new MetaDataContextsBuilder(
Collections.singletonMap("logic_db", databaseConfig), Collections.singleton(authorityRuleConfig), new ConfigurationProperties(props)).build(mock(MetaDataPersistService.class));
assertRules(actual);
- assertTrue(actual.getDatabase("logic_db").getResource().getDataSources().isEmpty());
+ assertTrue(actual.getMetaData().getDatabases().get("logic_db").getResource().getDataSources().isEmpty());
assertThat(actual.getMetaData().getProps().getProps().size(), is(1));
assertThat(actual.getMetaData().getProps().getValue(ConfigurationPropertyKey.KERNEL_EXECUTOR_SIZE), is(1));
}
private void assertRules(final MetaDataContexts actual) {
- Collection<ShardingSphereRule> rules = actual.getDatabase("logic_db").getRuleMetaData().getRules();
+ Collection<ShardingSphereRule> rules = actual.getMetaData().getDatabases().get("logic_db").getRuleMetaData().getRules();
assertThat(rules.size(), is(1));
assertThat(rules.iterator().next(), instanceOf(FixtureRule.class));
}
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java
index a45cb608971..939a3d23a1a 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java
@@ -47,6 +47,6 @@ public final class MetaDataContextsTest {
public void assertGetDefaultMetaData() {
ShardingSphereMetaData metaData = new ShardingSphereMetaData(
Collections.singletonMap(DefaultDatabase.LOGIC_NAME, database), mock(ShardingSphereRuleMetaData.class), new ConfigurationProperties(new Properties()));
- assertThat(new MetaDataContexts(mock(MetaDataPersistService.class), metaData, mock(OptimizerContext.class)).getDatabase(DefaultDatabase.LOGIC_NAME), is(database));
+ assertThat(new MetaDataContexts(mock(MetaDataPersistService.class), metaData, mock(OptimizerContext.class)).getMetaData().getDatabases().get(DefaultDatabase.LOGIC_NAME), is(database));
}
}
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
index 219c353ab25..781e80fab1a 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
@@ -105,7 +105,7 @@ public final class ClusterContextManagerBuilder implements ContextManagerBuilder
if (!databaseName.isPresent() || !fileGenerator.isPresent()) {
return transactionRule.isPresent() ? transactionRule.get().getProps() : new Properties();
}
- ShardingSphereDatabase database = metaDataContexts.getDatabase(databaseName.get());
+ ShardingSphereDatabase database = metaDataContexts.getMetaData().getDatabases().get(databaseName.get());
Properties result = fileGenerator.get().getTransactionProps(transactionRule.get().getProps(),
new DataSourceProvidedDatabaseConfiguration(database.getResource().getDataSources(), database.getRuleMetaData().getConfigurations()), getType());
Optional<TransactionRuleConfiguration> transactionRuleConfig = metaDataContexts.getMetaData().getGlobalRuleMetaData().findSingleRuleConfiguration(TransactionRuleConfiguration.class);
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
index da966e03c1a..461baf848a3 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
@@ -167,7 +167,7 @@ public final class ClusterContextManagerCoordinatorTest {
when(metaDataPersistService.getDataSourceService().load("db_add")).thenReturn(getDataSourcePropertiesMap());
when(metaDataPersistService.getDatabaseRulePersistService().load("db_add")).thenReturn(Collections.emptyList());
coordinator.renew(new DatabaseAddedEvent("db_add"));
- assertNotNull(contextManager.getMetaDataContexts().getDatabase("db_add").getResource().getDataSources());
+ assertNotNull(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("db_add").getResource().getDataSources());
}
private Map<String, DataSourceProperties> getDataSourcePropertiesMap() {
@@ -182,7 +182,7 @@ public final class ClusterContextManagerCoordinatorTest {
@Test
public void assertSchemaDelete() {
coordinator.renew(new DatabaseDeletedEvent("db"));
- assertNull(contextManager.getMetaDataContexts().getDatabase("db"));
+ assertNull(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("db"));
}
@Test
@@ -195,9 +195,9 @@ public final class ClusterContextManagerCoordinatorTest {
@Test
public void assertSchemaAdd() {
- when(contextManager.getMetaDataContexts().getDatabase("db").getSchemas().get("foo_schema")).thenReturn(null);
+ when(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("db").getSchemas().get("foo_schema")).thenReturn(null);
coordinator.renew(new SchemaAddedEvent("db", "foo_schema"));
- verify(contextManager.getMetaDataContexts().getDatabase("db").getSchemas()).put(argThat(argument -> argument.equals("foo_schema")), any(ShardingSphereSchema.class));
+ verify(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("db").getSchemas()).put(argThat(argument -> argument.equals("foo_schema")), any(ShardingSphereSchema.class));
}
@Test
@@ -206,15 +206,15 @@ public final class ClusterContextManagerCoordinatorTest {
SchemaChangedEvent event = new SchemaChangedEvent("db", "db", changedTableMetaData, null);
coordinator.renew(event);
assertTrue(contextManager.getMetaDataContexts().getMetaData().getDatabases().containsKey("db"));
- verify(contextManager.getMetaDataContexts().getDatabase("db").getSchemas().get("db")).put("t_order", event.getChangedTableMetaData());
+ verify(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("db").getSchemas().get("db")).put("t_order", event.getChangedTableMetaData());
}
@Test
public void assertRuleConfigurationsChanged() {
when(metaDataPersistService.getDatabaseVersionPersistService().isActiveVersion("db", "0")).thenReturn(true);
- assertThat(contextManager.getMetaDataContexts().getDatabase("db"), is(database));
+ assertThat(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("db"), is(database));
coordinator.renew(new RuleConfigurationsChangedEvent("db", "0", Collections.emptyList()));
- assertThat(contextManager.getMetaDataContexts().getDatabase("db"), not(database));
+ assertThat(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("db"), not(database));
}
@Test
@@ -231,7 +231,7 @@ public final class ClusterContextManagerCoordinatorTest {
public void assertDataSourceChanged() {
when(metaDataPersistService.getDatabaseVersionPersistService().isActiveVersion("db", "0")).thenReturn(true);
coordinator.renew(new DataSourceChangedEvent("db", "0", getChangedDataSourcePropertiesMap()));
- assertTrue(contextManager.getMetaDataContexts().getDatabase("db").getResource().getDataSources().containsKey("ds_2"));
+ assertTrue(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("db").getResource().getDataSources().containsKey("ds_2"));
}
private Map<String, DataSourceProperties> getChangedDataSourcePropertiesMap() {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutor.java
index 157e78d77bc..fceab45aea1 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutor.java
@@ -119,7 +119,7 @@ public final class ProxySQLExecutor {
*/
public List<ExecuteResult> execute(final ExecutionContext executionContext) throws SQLException {
String databaseName = backendConnection.getConnectionSession().getDatabaseName();
- Collection<ShardingSphereRule> rules = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseName).getRuleMetaData().getRules();
+ Collection<ShardingSphereRule> rules = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getRuleMetaData().getRules();
int maxConnectionsSizePerQuery = ProxyContext.getInstance()
.getContextManager().getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY);
boolean isReturnGeneratedKeys = executionContext.getSqlStatementContext().getSqlStatement() instanceof MySQLInsertStatement;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ReactiveProxySQLExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ReactiveProxySQLExecutor.java
index b4bcc6a05ff..0deb2a48b4a 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ReactiveProxySQLExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ReactiveProxySQLExecutor.java
@@ -97,7 +97,7 @@ public final class ReactiveProxySQLExecutor {
*/
public Future<List<ExecuteResult>> execute(final ExecutionContext executionContext) throws SQLException {
String databaseName = backendConnection.getConnectionSession().getDatabaseName();
- Collection<ShardingSphereRule> rules = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseName).getRuleMetaData().getRules();
+ Collection<ShardingSphereRule> rules = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getRuleMetaData().getRules();
int maxConnectionsSizePerQuery = ProxyContext.getInstance()
.getContextManager().getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY);
return useDriverToExecute(executionContext, rules, maxConnectionsSizePerQuery);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
index a1fc9d03e41..f557ca0408f 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
@@ -126,7 +126,7 @@ public final class JDBCDatabaseCommunicationEngine extends DatabaseCommunication
// TODO move federation route logic to binder
SQLStatementContext<?> sqlStatementContext = logicSQL.getSqlStatementContext();
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
- ShardingSphereDatabase databaseMetaData = metaDataContexts.getDatabase(backendConnection.getConnectionSession().getDatabaseName());
+ ShardingSphereDatabase databaseMetaData = metaDataContexts.getMetaData().getDatabases().get(backendConnection.getConnectionSession().getDatabaseName());
if (executionContext.getRouteContext().isFederated() || (sqlStatementContext instanceof SelectStatementContext
&& SystemSchemaUtil.containsSystemSchema(sqlStatementContext.getDatabaseType(), sqlStatementContext.getTablesContext().getSchemaNames(), databaseMetaData))) {
ResultSet resultSet = doExecuteFederation(logicSQL, metaDataContexts);
@@ -147,7 +147,7 @@ public final class JDBCDatabaseCommunicationEngine extends DatabaseCommunication
private ResultSet doExecuteFederation(final LogicSQL logicSQL, final MetaDataContexts metaDataContexts) throws SQLException {
boolean isReturnGeneratedKeys = logicSQL.getSqlStatementContext().getSqlStatement() instanceof MySQLInsertStatement;
- DatabaseType databaseType = metaDataContexts.getDatabase(backendConnection.getConnectionSession().getDatabaseName()).getResource().getDatabaseType();
+ DatabaseType databaseType = metaDataContexts.getMetaData().getDatabases().get(backendConnection.getConnectionSession().getDatabaseName()).getResource().getDatabaseType();
ProxyJDBCExecutorCallback callback = ProxyJDBCExecutorCallbackFactory.newInstance(getDriverType(), databaseType,
logicSQL.getSqlStatementContext().getSqlStatement(), this, isReturnGeneratedKeys, SQLExecutorExceptionHandler.isExceptionThrown(), true);
backendConnection.setFederationExecutor(federationExecutor);
@@ -160,13 +160,13 @@ public final class JDBCDatabaseCommunicationEngine extends DatabaseCommunication
int maxConnectionsSizePerQuery = metaData.getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY);
JDBCBackendStatement statementManager = (JDBCBackendStatement) backendConnection.getConnectionSession().getStatementManager();
return new DriverExecutionPrepareEngine<>(getDriverType(), maxConnectionsSizePerQuery, backendConnection, statementManager,
- new StatementOption(isReturnGeneratedKeys), metaData.getDatabase(backendConnection.getConnectionSession().getDatabaseName()).getRuleMetaData().getRules());
+ new StatementOption(isReturnGeneratedKeys), metaData.getMetaData().getDatabases().get(backendConnection.getConnectionSession().getDatabaseName()).getRuleMetaData().getRules());
}
private ResponseHeader processExecuteFederation(final ResultSet resultSet, final MetaDataContexts metaDataContexts) throws SQLException {
int columnCount = resultSet.getMetaData().getColumnCount();
setQueryHeaders(new ArrayList<>(columnCount));
- ShardingSphereDatabase database = metaDataContexts.getDatabase(backendConnection.getConnectionSession().getDatabaseName());
+ ShardingSphereDatabase database = metaDataContexts.getMetaData().getDatabases().get(backendConnection.getConnectionSession().getDatabaseName());
LazyInitializer<DataNodeContainedRule> dataNodeContainedRule = getDataNodeContainedRuleLazyInitializer(database);
QueryHeaderBuilderEngine queryHeaderBuilderEngine = new QueryHeaderBuilderEngine(null == database ? null : database.getProtocolType());
for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSource.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSource.java
index eb4b4c1fbf2..a8bb25a4423 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSource.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSource.java
@@ -68,7 +68,7 @@ public final class JDBCBackendDataSource implements BackendDataSource {
@SuppressWarnings("SynchronizationOnLocalVariableOrMethodParameter")
public List<Connection> getConnections(final String databaseName, final String dataSourceName,
final int connectionSize, final ConnectionMode connectionMode, final TransactionType transactionType) throws SQLException {
- DataSource dataSource = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseName).getResource().getDataSources().get(dataSourceName);
+ DataSource dataSource = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getResource().getDataSources().get(dataSourceName);
if (dataSourceName.contains(".")) {
String dataSourceStr = dataSourceName.split("\\.")[0];
if (GlobalDataSourceRegistry.getInstance().getCachedDataSourceDataSources().containsKey(dataSourceStr)) {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/executor/ProxyJDBCExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/executor/ProxyJDBCExecutor.java
index 302fa3ae0e6..8c626f19b31 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/executor/ProxyJDBCExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/executor/ProxyJDBCExecutor.java
@@ -65,7 +65,7 @@ public final class ProxyJDBCExecutor {
final boolean isReturnGeneratedKeys, final boolean isExceptionThrown) throws SQLException {
try {
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
- DatabaseType databaseType = metaDataContexts.getDatabase(connectionSession.getDatabaseName()).getResource().getDatabaseType();
+ DatabaseType databaseType = metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()).getResource().getDatabaseType();
ExecuteProcessEngine.initialize(logicSQL, executionGroupContext, metaDataContexts.getMetaData().getProps());
SQLStatementContext<?> context = logicSQL.getSqlStatementContext();
List<ExecuteResult> result = jdbcExecutor.execute(executionGroupContext,
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/executor/callback/ProxyJDBCExecutorCallback.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/executor/callback/ProxyJDBCExecutorCallback.java
index 8d0ed39dd99..01ff334a45c 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/executor/callback/ProxyJDBCExecutorCallback.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/executor/callback/ProxyJDBCExecutorCallback.java
@@ -114,7 +114,7 @@ public abstract class ProxyJDBCExecutorCallback extends JDBCExecutorCallback<Exe
return DatabaseTypeEngine.getTrunkDatabaseType("MySQL");
}
String databaseName = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().keySet().iterator().next();
- return ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseName).getResource().getDatabaseType();
+ return ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getResource().getDatabaseType();
}
private static Optional<DatabaseType> findConfiguredDatabaseType() {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/statement/JDBCBackendStatement.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/statement/JDBCBackendStatement.java
index 8757e6c8389..5b87d4bb3bb 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/statement/JDBCBackendStatement.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/statement/JDBCBackendStatement.java
@@ -77,7 +77,7 @@ public final class JDBCBackendStatement implements ExecutorJDBCStatementManager
private void setFetchSize(final Statement statement) throws SQLException {
DatabaseType databaseType = ProxyContext.getInstance().getContextManager().getMetaDataContexts()
- .getDatabase(null == databaseName ? SQLStatementDatabaseHolder.get() : databaseName).getResource().getDatabaseType();
+ .getMetaData().getDatabases().get(null == databaseName ? SQLStatementDatabaseHolder.get() : databaseName).getResource().getDatabaseType();
Optional<StatementMemoryStrictlyFetchSizeSetter> fetchSizeSetter = StatementMemoryStrictlyFetchSizeSetterFactory.findInstance(databaseType.getType());
if (fetchSizeSetter.isPresent()) {
fetchSizeSetter.get().setFetchSize(statement);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/vertx/VertxBackendDataSource.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/vertx/VertxBackendDataSource.java
index 99533205dd5..5f415d13027 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/vertx/VertxBackendDataSource.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/vertx/VertxBackendDataSource.java
@@ -127,7 +127,7 @@ public final class VertxBackendDataSource implements BackendDataSource {
}
private Pool createPoolFromSchemaDataSource(final String schemaName, final String dataSourceName) {
- DataSource dataSource = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(schemaName).getResource().getDataSources().get(dataSourceName);
+ DataSource dataSource = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(schemaName).getResource().getDataSources().get(dataSourceName);
Preconditions.checkNotNull(dataSource, "Can not get connection from datasource %s.", dataSourceName);
HikariDataSource value = (HikariDataSource) dataSource;
URI uri = URI.create(value.getJdbcUrl().replace("jdbc:", ""));
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
index a1d5180c3f6..178e8e5a50f 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
@@ -83,7 +83,7 @@ public final class ProxyContext {
if (Strings.isNullOrEmpty(name) || !contextManager.getMetaDataContexts().getMetaData().getDatabases().containsKey(name)) {
throw new NoDatabaseSelectedException();
}
- return contextManager.getMetaDataContexts().getDatabase(name);
+ return contextManager.getMetaDataContexts().getMetaData().getDatabases().get(name);
}
/**
@@ -114,7 +114,7 @@ public final class ProxyContext {
public Collection<ShardingSphereRule> getRules(final String databaseName) {
Collection<ShardingSphereRule> result = new LinkedList<>();
if (!Strings.isNullOrEmpty(databaseName) && databaseExists(databaseName)) {
- result.addAll(contextManager.getMetaDataContexts().getDatabase(databaseName).getRuleMetaData().getRules());
+ result.addAll(contextManager.getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getRuleMetaData().getRules());
}
result.addAll(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules());
return result;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactory.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactory.java
index 45169725a8b..6402742b23c 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactory.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactory.java
@@ -135,7 +135,7 @@ public final class TextProtocolBackendHandlerFactory {
String databaseName = connectionSession.getDatabaseName();
return Strings.isNullOrEmpty(databaseName) || !ProxyContext.getInstance().databaseExists(databaseName)
? defaultDatabaseType
- : ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseName).getProtocolType();
+ : ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getProtocolType();
}
private static void handleAutoCommit(final SQLStatement sqlStatement, final ConnectionSession connectionSession) throws SQLException {
@@ -166,7 +166,7 @@ public final class TextProtocolBackendHandlerFactory {
return contexts.getMetaData().getGlobalRuleMetaData().getRules();
}
Collection<ShardingSphereRule> result;
- result = new LinkedList<>(contexts.getDatabase(databaseName).getRuleMetaData().getRules());
+ result = new LinkedList<>(contexts.getMetaData().getDatabases().get(databaseName).getRuleMetaData().getRules());
result.addAll(contexts.getMetaData().getGlobalRuleMetaData().getRules());
return result;
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/executor/AbstractDatabaseMetadataExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/executor/AbstractDatabaseMetadataExecutor.java
index eca3d812cc0..47a8a89e1f2 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/executor/AbstractDatabaseMetadataExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/executor/AbstractDatabaseMetadataExecutor.java
@@ -168,7 +168,7 @@ public abstract class AbstractDatabaseMetadataExecutor implements DatabaseAdminQ
private static Collection<ShardingSphereRule> getRules(final String databaseName) {
Collection<ShardingSphereRule> result;
- result = new LinkedList<>(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseName).getRuleMetaData().getRules());
+ result = new LinkedList<>(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getRuleMetaData().getRules());
result.addAll(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules());
return result;
}
@@ -210,7 +210,7 @@ public abstract class AbstractDatabaseMetadataExecutor implements DatabaseAdminQ
*/
@Override
protected void getSourceData(final String databaseName, final FunctionWithException<ResultSet, SQLException> callback) throws SQLException {
- ShardingSphereResource resource = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseName).getResource();
+ ShardingSphereResource resource = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getResource();
Optional<Entry<String, DataSource>> dataSourceEntry = resource.getDataSources().entrySet().stream().findFirst();
log.info("Actual SQL: {} ::: {}", dataSourceEntry.orElseThrow(ResourceNotExistedException::new).getKey(), sql);
try (
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutor.java
index f1d82aba596..79e30460aef 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutor.java
@@ -74,7 +74,7 @@ public final class ShowDatabasesExecutor implements DatabaseAdminQueryExecutor {
private Collection<ShardingSphereRule> getRules(final String schemaName) {
Collection<ShardingSphereRule> result;
- result = new LinkedList<>(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(schemaName).getRuleMetaData().getRules());
+ result = new LinkedList<>(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(schemaName).getRuleMetaData().getRules());
result.addAll(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules());
return result;
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutor.java
index 2843c51700f..d6890762b0e 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutor.java
@@ -51,8 +51,8 @@ public final class UseDatabaseExecutor implements DatabaseAdminExecutor {
private Collection<ShardingSphereRule> getRules(final String schemaName) {
Collection<ShardingSphereRule> result = new LinkedList<>();
- Optional.ofNullable(
- ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(schemaName)).ifPresent(optional -> result.addAll(optional.getRuleMetaData().getRules()));
+ Optional.ofNullable(ProxyContext.getInstance()
+ .getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(schemaName)).ifPresent(optional -> result.addAll(optional.getRuleMetaData().getRules()));
result.addAll(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules());
return result;
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/information/SelectInformationSchemataExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/information/SelectInformationSchemataExecutor.java
index 2bdab290f8f..9f962fe832e 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/information/SelectInformationSchemataExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/information/SelectInformationSchemataExecutor.java
@@ -94,7 +94,7 @@ public final class SelectInformationSchemataExecutor extends DefaultDatabaseMeta
@Override
protected void rowPostProcessing(final String databaseName, final Map<String, Object> rowMap, final Map<String, String> aliasMap) {
- ShardingSphereResource resource = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseName).getResource();
+ ShardingSphereResource resource = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getResource();
Set<String> catalogs = resource.getDataSources().keySet().stream().map(each -> resource.getDataSourceMetaData(each).getCatalog()).collect(Collectors.toSet());
schemaNameAlias = aliasMap.getOrDefault(SCHEMA_NAME, "");
String rowValue = rowMap.getOrDefault(schemaNameAlias, "").toString();
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectDatabaseExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectDatabaseExecutor.java
index 68dd01e0c82..411ee10408b 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectDatabaseExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectDatabaseExecutor.java
@@ -87,7 +87,7 @@ public final class SelectDatabaseExecutor extends DefaultDatabaseMetadataExecuto
@Override
protected void rowPostProcessing(final String databaseName, final Map<String, Object> rowMap, final Map<String, String> aliasMap) {
buildColumnNames(aliasMap);
- ShardingSphereResource resource = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseName).getResource();
+ ShardingSphereResource resource = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getResource();
Set<String> catalogs = resource.getDataSources().keySet().stream().map(each -> resource.getDataSourceMetaData(each).getCatalog()).collect(Collectors.toSet());
databaseNameAlias = aliasMap.getOrDefault(DATABASE_NAME, aliasMap.getOrDefault(DATNAME, aliasMap.getOrDefault(NAME, "")));
String rowValue = rowMap.getOrDefault(databaseNameAlias, "").toString();
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/database/DropDatabaseBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/database/DropDatabaseBackendHandler.java
index 0e30c4f7440..fda2ea1b7aa 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/database/DropDatabaseBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/database/DropDatabaseBackendHandler.java
@@ -69,9 +69,9 @@ public final class DropDatabaseBackendHandler implements TextProtocolBackendHand
return !Strings.isNullOrEmpty(connectionSession.getDatabaseName()) && connectionSession.getDatabaseName().equals(databaseName);
}
- private static Collection<ShardingSphereRule> getRules(final String schemaName) {
+ private static Collection<ShardingSphereRule> getRules(final String databaseName) {
Collection<ShardingSphereRule> result = new LinkedList<>();
- ShardingSphereDatabase database = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(schemaName);
+ ShardingSphereDatabase database = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName);
if (null != database && null != database.getRuleMetaData()) {
result.addAll(database.getRuleMetaData().getRules());
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLBackendHandler.java
index d140d05c933..7d59c1ba161 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLBackendHandler.java
@@ -78,6 +78,6 @@ public final class ParseDistSQLBackendHandler extends QueryableRALBackendHandler
String databaseName = connectionSession.getDatabaseName();
return Strings.isNullOrEmpty(databaseName) || !ProxyContext.getInstance().databaseExists(databaseName)
? defaultDatabaseType
- : ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseName).getResource().getDatabaseType();
+ : ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getResource().getDatabaseType();
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewDistSQLBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewDistSQLBackendHandler.java
index 40f68a2e20f..10b2121f1d4 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewDistSQLBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewDistSQLBackendHandler.java
@@ -98,7 +98,7 @@ public final class PreviewDistSQLBackendHandler extends QueryableRALBackendHandl
protected Collection<List<Object>> getRows(final ContextManager contextManager) throws SQLException {
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
String databaseName = getDatabaseName();
- String databaseType = DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getDatabase(databaseName).getProtocolType());
+ String databaseType = DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getMetaData().getDatabases().get(databaseName).getProtocolType());
Optional<SQLParserRule> sqlParserRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class);
Preconditions.checkState(sqlParserRule.isPresent());
SQLStatement previewedStatement = sqlParserRule.get().getSQLParserEngine(databaseType).parse(sqlStatement.getSql(), false);
@@ -128,7 +128,7 @@ public final class PreviewDistSQLBackendHandler extends QueryableRALBackendHandl
boolean isReturnGeneratedKeys = sqlStatement instanceof MySQLInsertStatement;
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine = createDriverExecutionPrepareEngine(isReturnGeneratedKeys, metaDataContexts);
FederationContext context = new FederationContext(true, logicSQL, metaDataContexts.getMetaData().getDatabases());
- DatabaseType databaseType = metaDataContexts.getDatabase(getDatabaseName()).getResource().getDatabaseType();
+ DatabaseType databaseType = metaDataContexts.getMetaData().getDatabases().get(getDatabaseName()).getResource().getDatabaseType();
String schemaName = logicSQL.getSqlStatementContext().getTablesContext().getSchemaName().orElse(DatabaseTypeEngine.getDefaultSchemaName(databaseType, databaseName));
FederationExecutor executor = FederationExecutorFactory.newInstance(databaseName, schemaName, metaDataContexts.getOptimizerContext(),
metaDataContexts.getMetaData().getProps(), new JDBCExecutor(BackendExecutorContext.getInstance().getExecutorEngine(), false));
@@ -155,7 +155,7 @@ public final class PreviewDistSQLBackendHandler extends QueryableRALBackendHandl
int maxConnectionsSizePerQuery = metaDataContexts.getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY);
return new DriverExecutionPrepareEngine<>(JDBCDriverType.STATEMENT, maxConnectionsSizePerQuery, (JDBCBackendConnection) connectionSession.getBackendConnection(),
(JDBCBackendStatement) connectionSession.getStatementManager(), new StatementOption(isReturnGeneratedKeys),
- metaDataContexts.getDatabase(getDatabaseName()).getRuleMetaData().getRules());
+ metaDataContexts.getMetaData().getDatabases().get(getDatabaseName()).getRuleMetaData().getRules());
}
private String getDatabaseName() {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowReadwriteSplittingReadResourcesHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowReadwriteSplittingReadResourcesHandler.java
index b1bda4372c3..abf4c5d878e 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowReadwriteSplittingReadResourcesHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowReadwriteSplittingReadResourcesHandler.java
@@ -76,7 +76,7 @@ public final class ShowReadwriteSplittingReadResourcesHandler extends QueryableR
protected Collection<List<Object>> getRows(final ContextManager contextManager) {
String databaseName = getDatabaseName();
MetaDataContexts metaDataContexts = contextManager.getMetaDataContexts();
- ShardingSphereDatabase database = metaDataContexts.getDatabase(databaseName);
+ ShardingSphereDatabase database = metaDataContexts.getMetaData().getDatabases().get(databaseName);
Collection<String> allReadResources = getAllReadResources(database);
Map<String, StorageNodeDataSource> persistentReadResources = getPersistentReadResources(databaseName, metaDataContexts.getPersistService().orElse(null));
return buildRows(allReadResources, persistentReadResources);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
index 9dca8e81451..1d67e9b86e5 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
@@ -111,7 +111,7 @@ public final class ImportDatabaseConfigurationHandler extends UpdatableRALBacken
}
Collection<RuleConfiguration> toBeUpdatedRuleConfigs = new LinkedList<>();
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
- ShardingSphereDatabase database = metaDataContexts.getDatabase(databaseName);
+ ShardingSphereDatabase database = metaDataContexts.getMetaData().getDatabases().get(databaseName);
for (YamlRuleConfiguration each : yamlRuleConfigs) {
if (each instanceof YamlShardingRuleConfiguration) {
ShardingRuleConfiguration shardingRuleConfig = new ShardingRuleConfigurationYamlSwapper().swapToObject((YamlShardingRuleConfiguration) each);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java
index 5de72d0d3b1..bbd250312f7 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java
@@ -87,7 +87,7 @@ public final class SetReadwriteSplittingStatusHandler extends UpdatableRALBacken
}
private ReadwriteSplittingRuleConfiguration checkReadwriteSplittingRule(final ContextManager contextManager, final String databaseName) {
- Optional<ReadwriteSplittingRuleConfiguration> result = contextManager.getMetaDataContexts().getDatabase(databaseName)
+ Optional<ReadwriteSplittingRuleConfiguration> result = contextManager.getMetaDataContexts().getMetaData().getDatabases().get(databaseName)
.getRuleMetaData().findRuleConfigurations(ReadwriteSplittingRuleConfiguration.class).stream().findAny();
if (!result.isPresent()) {
throw new UnsupportedOperationException("The current schema has no read_write splitting rules");
@@ -138,7 +138,7 @@ public final class SetReadwriteSplittingStatusHandler extends UpdatableRALBacken
private void checkResourceExists(final ContextManager contextManager, final String databaseName, final String toBeDisabledResource) throws DistSQLException {
Collection<String> notExistedResources = contextManager
- .getMetaDataContexts().getDatabase(databaseName).getResource().getNotExistedResources(Collections.singleton(toBeDisabledResource));
+ .getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getResource().getNotExistedResources(Collections.singleton(toBeDisabledResource));
DistSQLException.predictionThrow(notExistedResources.isEmpty(), () -> new RequiredResourceMissedException(databaseName, Collections.singleton(toBeDisabledResource)));
}
@@ -199,7 +199,7 @@ public final class SetReadwriteSplittingStatusHandler extends UpdatableRALBacken
private Map<String, Map<String, String>> getExportedReadwriteSplittingRules(final ContextManager contextManager, final String databaseName) {
Map<String, Map<String, String>> result = new HashMap<>();
- contextManager.getMetaDataContexts().getDatabase(databaseName).getRuleMetaData().findRules(ReadwriteSplittingRule.class).stream().findAny()
+ contextManager.getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getRuleMetaData().findRules(ReadwriteSplittingRule.class).stream().findAny()
.filter(each -> each.containExportableKey(Arrays.asList(ExportableConstants.EXPORT_DYNAMIC_READWRITE_SPLITTING_RULE, ExportableConstants.EXPORT_STATIC_READWRITE_SPLITTING_RULE)))
.map(each -> each.export(Arrays.asList(ExportableConstants.EXPORT_DYNAMIC_READWRITE_SPLITTING_RULE, ExportableConstants.EXPORT_STATIC_READWRITE_SPLITTING_RULE)))
.ifPresent(optional -> {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
index b767f1f1315..f9f0945a874 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
@@ -147,10 +147,10 @@ public final class DatabaseOperateBackendHandlerFactoryTest extends ProxyContext
}
private MetaDataContexts mockMetaDataContexts() {
- MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
- when(metaDataContexts.getDatabase("db").getResource().getDataSources()).thenReturn(Collections.emptyMap());
- when(metaDataContexts.getDatabase("db").getResource().getNotExistedResources(any())).thenReturn(Collections.emptyList());
- return metaDataContexts;
+ MetaDataContexts result = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
+ when(result.getMetaData().getDatabases().get("db").getResource().getDataSources()).thenReturn(Collections.emptyMap());
+ when(result.getMetaData().getDatabases().get("db").getResource().getNotExistedResources(any())).thenReturn(Collections.emptyList());
+ return result;
}
@After
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutorTest.java
index 85177535d39..3e42fdcf4e3 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutorTest.java
@@ -43,7 +43,6 @@ import java.util.LinkedList;
import java.util.Map;
import java.util.Properties;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
@@ -62,16 +61,17 @@ public final class UseDatabaseExecutorTest extends ProxyContextRestorer {
public void setUp() {
ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
MetaDataContexts metaDataContexts = new MetaDataContexts(mock(MetaDataPersistService.class),
- new ShardingSphereMetaData(getDatabaseMap(), mock(ShardingSphereRuleMetaData.class), new ConfigurationProperties(new Properties())), mock(OptimizerContext.class));
+ new ShardingSphereMetaData(getDatabases(), mock(ShardingSphereRuleMetaData.class), new ConfigurationProperties(new Properties())), mock(OptimizerContext.class));
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
}
- private Map<String, ShardingSphereDatabase> getDatabaseMap() {
+ private Map<String, ShardingSphereDatabase> getDatabases() {
Map<String, ShardingSphereDatabase> result = new HashMap<>(10, 1);
for (int i = 0; i < 10; i++) {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getResource().getDatabaseType()).thenReturn(new H2DatabaseType());
+ when(database.getRuleMetaData().getRules()).thenReturn(new LinkedList<>());
result.put(String.format(DATABASE_PATTERN, i), database);
}
return result;
@@ -84,9 +84,8 @@ public final class UseDatabaseExecutorTest extends ProxyContextRestorer {
ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
when(contextManager.getMetaDataContexts().getMetaData().getDatabases().containsKey(anyString())).thenReturn(true);
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules()).thenReturn(Collections.emptyList());
- ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(database.getRuleMetaData().getRules()).thenReturn(new LinkedList<>());
- when(contextManager.getMetaDataContexts().getDatabase(any())).thenReturn(database);
+ Map<String, ShardingSphereDatabase> databases = getDatabases();
+ when(contextManager.getMetaDataContexts().getMetaData().getDatabases()).thenReturn(databases);
ProxyContext.init(contextManager);
UseDatabaseExecutor useSchemaBackendHandler = new UseDatabaseExecutor(useStatement);
useSchemaBackendHandler.execute(connectionSession);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/database/DropDatabaseBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/database/DropDatabaseBackendHandlerTest.java
index 9ded773dde8..e4a626f884b 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/database/DropDatabaseBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/database/DropDatabaseBackendHandlerTest.java
@@ -40,7 +40,6 @@ import java.util.Map;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.junit.Assert.assertThat;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
@@ -74,7 +73,6 @@ public final class DropDatabaseBackendHandlerTest extends ProxyContextRestorer {
databases.put("other_db", database);
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(databases);
when(metaDataContexts.getMetaData().getGlobalRuleMetaData().getRules()).thenReturn(Collections.emptyList());
- when(metaDataContexts.getDatabase(any()).getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
}
@Test(expected = DBDropNotExistsException.class)
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
index cb152a9fda0..6582cf31e5b 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
@@ -271,10 +271,11 @@ public final class DistSQLBackendHandlerFactoryTest extends ProxyContextRestorer
private MetaDataContexts mockMetaDataContexts() {
MetaDataContexts result = mock(MetaDataContexts.class, RETURNS_DEEP_STUBS);
- when(result.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("db", mock(ShardingSphereDatabase.class)));
- when(result.getDatabase("db").getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
- when(result.getDatabase("db").getResource().getDataSources()).thenReturn(Collections.emptyMap());
- when(result.getDatabase("db").getResource().getNotExistedResources(any())).thenReturn(Collections.emptyList());
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
+ when(database.getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
+ when(database.getResource().getDataSources()).thenReturn(Collections.emptyMap());
+ when(database.getResource().getNotExistedResources(any())).thenReturn(Collections.emptyList());
+ when(result.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("db", database));
return result;
}
@@ -282,11 +283,11 @@ public final class DistSQLBackendHandlerFactoryTest extends ProxyContextRestorer
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("db");
+ when(database.getResource()).thenReturn(mock(ShardingSphereResource.class));
ShardingSphereRuleMetaData ruleMetaData = mock(ShardingSphereRuleMetaData.class);
- when(metaDataContexts.getDatabase("db")).thenReturn(database);
+ when(ruleMetaData.getConfigurations()).thenReturn(Collections.singleton(mock(ShadowRuleConfiguration.class)));
when(database.getRuleMetaData()).thenReturn(ruleMetaData);
- when(database.getResource()).thenReturn(mock(ShardingSphereResource.class));
- when(ruleMetaData.getConfigurations()).thenReturn(Collections.singletonList(mock(ShadowRuleConfiguration.class)));
+ when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("db", database));
}
private void mockScalingContext() {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/CountInstanceRulesTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/CountInstanceRulesTest.java
index 537e14a9ca4..d4d1d6193b4 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/CountInstanceRulesTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/CountInstanceRulesTest.java
@@ -86,8 +86,6 @@ public final class CountInstanceRulesTest extends ProxyContextRestorer {
databases.put("db_1", database1);
databases.put("db_2", database2);
when(contextManager.getMetaDataContexts().getMetaData().getDatabases()).thenReturn(databases);
- when(contextManager.getMetaDataContexts().getDatabase("db_1")).thenReturn(database1);
- when(contextManager.getMetaDataContexts().getDatabase("db_2")).thenReturn(database2);
ProxyContext.init(contextManager);
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandlerTest.java
index 37c3698ed12..9ea702fe2a9 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandlerTest.java
@@ -66,7 +66,6 @@ public final class ExportDatabaseConfigurationHandlerTest extends ProxyContextRe
when(database.getResource().getDataSources()).thenReturn(createDataSourceMap());
when(database.getRuleMetaData().getConfigurations()).thenReturn(Collections.singletonList(createShardingRuleConfiguration()));
when(contextManager.getMetaDataContexts().getMetaData().getDatabases()).thenReturn(Collections.singletonMap("sharding_db", database));
- when(contextManager.getMetaDataContexts().getDatabase("sharding_db")).thenReturn(database);
ProxyContext.init(contextManager);
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandlerTest.java
index 0310ec2a811..fb9b071ed88 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandlerTest.java
@@ -54,7 +54,6 @@ public final class ShowTableMetadataHandlerTest extends ProxyContextRestorer {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getSchemas().get("db_name")).thenReturn(new ShardingSphereSchema(createTableMap()));
when(contextManager.getMetaDataContexts().getMetaData().getDatabases()).thenReturn(Collections.singletonMap("db_name", database));
- when(contextManager.getMetaDataContexts().getDatabase("db_name")).thenReturn(database);
ProxyContext.init(contextManager);
ConnectionSession connectionSession = mock(ConnectionSession.class, RETURNS_DEEP_STUBS);
when(connectionSession.getDatabaseName()).thenReturn("db_name");
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandlerTest.java
index 3e490315969..0cc726b44f1 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandlerTest.java
@@ -103,7 +103,7 @@ public final class ImportDatabaseConfigurationHandlerTest extends ProxyContextRe
shardingRuleConfigurationImportCheckerField.setAccessible(true);
shardingRuleConfigurationImportCheckerField.set(importDatabaseConfigurationHandler, shardingRuleConfigurationImportChecker);
assertNotNull(ProxyContext.getInstance().getContextManager().getDataSourceMap(sharding));
- assertNotNull(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(sharding).getRuleMetaData().getConfigurations());
+ assertNotNull(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(sharding).getRuleMetaData().getConfigurations());
assertThat(importDatabaseConfigurationHandler.execute(), instanceOf(UpdateResponseHeader.class));
}
@@ -114,7 +114,7 @@ public final class ImportDatabaseConfigurationHandlerTest extends ProxyContextRe
readwriteSplittingRuleConfigurationImportCheckerField.setAccessible(true);
readwriteSplittingRuleConfigurationImportCheckerField.set(importDatabaseConfigurationHandler, readwriteSplittingRuleConfigurationImportChecker);
assertNotNull(ProxyContext.getInstance().getContextManager().getDataSourceMap(readwriteSplitting));
- assertNotNull(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(readwriteSplitting).getRuleMetaData().getConfigurations());
+ assertNotNull(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(readwriteSplitting).getRuleMetaData().getConfigurations());
assertThat(importDatabaseConfigurationHandler.execute(), instanceOf(UpdateResponseHeader.class));
}
@@ -125,7 +125,7 @@ public final class ImportDatabaseConfigurationHandlerTest extends ProxyContextRe
databaseDiscoveryRuleConfigurationImportCheckerField.setAccessible(true);
databaseDiscoveryRuleConfigurationImportCheckerField.set(importDatabaseConfigurationHandler, databaseDiscoveryRuleConfigurationImportChecker);
assertNotNull(ProxyContext.getInstance().getContextManager().getDataSourceMap(databaseDiscovery));
- assertNotNull(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseDiscovery).getRuleMetaData().getConfigurations());
+ assertNotNull(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseDiscovery).getRuleMetaData().getConfigurations());
assertThat(importDatabaseConfigurationHandler.execute(), instanceOf(UpdateResponseHeader.class));
}
@@ -139,7 +139,6 @@ public final class ImportDatabaseConfigurationHandlerTest extends ProxyContextRe
when(database.getSchemas().get(DefaultDatabase.LOGIC_NAME)).thenReturn(new ShardingSphereSchema(createTableMap()));
when(database.getResource().getDataSources()).thenReturn(createDataSourceMap());
when(contextManager.getMetaDataContexts().getMetaData().getDatabases()).thenReturn(Collections.singletonMap(feature, database));
- when(contextManager.getMetaDataContexts().getDatabase(feature)).thenReturn(database);
ProxyContext.init(contextManager);
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandlerTest.java
index 74d07edcf6b..1ead6432393 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AddResourceBackendHandlerTest.java
@@ -89,7 +89,6 @@ public final class AddResourceBackendHandlerTest extends ProxyContextRestorer {
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("test_db", database));
- when(metaDataContexts.getDatabase("test_db")).thenReturn(database);
when(database.getResource()).thenReturn(resource);
when(resource.getDataSources()).thenReturn(Collections.emptyMap());
ResponseHeader responseHeader = addResourceBackendHandler.execute("test_db", createAddResourceStatement());
@@ -102,7 +101,6 @@ public final class AddResourceBackendHandlerTest extends ProxyContextRestorer {
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("test_db", database));
- when(metaDataContexts.getDatabase("test_db")).thenReturn(database);
when(database.getResource()).thenReturn(resource);
when(resource.getDataSources()).thenReturn(Collections.emptyMap());
addResourceBackendHandler.execute("test_db", createAlterResourceStatementWithDuplicateResourceNames());
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AlterResourceBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AlterResourceBackendHandlerTest.java
index 1227192b058..79051316838 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AlterResourceBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/AlterResourceBackendHandlerTest.java
@@ -96,7 +96,6 @@ public final class AlterResourceBackendHandlerTest extends ProxyContextRestorer
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("test_db", database));
- when(metaDataContexts.getDatabase("test_db")).thenReturn(database);
when(database.getResource()).thenReturn(resource);
when(resource.getDataSources()).thenReturn(Collections.singletonMap("ds_0", mockHikariDataSource("ds_0")));
assertThat(alterResourceBackendHandler.execute("test_db", createAlterResourceStatement("ds_0")), instanceOf(UpdateResponseHeader.class));
@@ -113,7 +112,6 @@ public final class AlterResourceBackendHandlerTest extends ProxyContextRestorer
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("test_db", database));
- when(metaDataContexts.getDatabase("test_db")).thenReturn(database);
when(database.getResource()).thenReturn(resource);
when(resource.getDataSources()).thenReturn(Collections.singletonMap("ds_0", dataSource));
alterResourceBackendHandler.execute("test_db", createAlterResourceStatement("not_existed"));
@@ -125,7 +123,6 @@ public final class AlterResourceBackendHandlerTest extends ProxyContextRestorer
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("test_db", database));
- when(metaDataContexts.getDatabase("test_db")).thenReturn(database);
when(database.getResource()).thenReturn(resource);
when(resource.getDataSources()).thenReturn(Collections.singletonMap("ds_0", mockHikariDataSource("ds_1")));
ResponseHeader responseHeader = alterResourceBackendHandler.execute("test_db", createAlterResourceStatement("ds_0"));
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/DropResourceBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/DropResourceBackendHandlerTest.java
index 1a810e57a66..c7099ad4d27 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/DropResourceBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/resource/DropResourceBackendHandlerTest.java
@@ -84,7 +84,6 @@ public final class DropResourceBackendHandlerTest extends ProxyContextRestorer {
public void setUp() throws Exception {
MetaDataContexts metaDataContexts = mock(MetaDataContexts.class, RETURNS_DEEP_STUBS);
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("test", database));
- when(metaDataContexts.getDatabase("test")).thenReturn(database);
when(database.getRuleMetaData()).thenReturn(ruleMetaData);
when(database.getResource()).thenReturn(resource);
contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/RQLBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/RQLBackendHandlerTest.java
index e3212a70296..59017116b31 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/RQLBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/RQLBackendHandlerTest.java
@@ -54,7 +54,6 @@ public final class RQLBackendHandlerTest extends ProxyContextRestorer {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class);
when(database.getRuleMetaData()).thenReturn(ruleMetaData);
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("test", database));
- when(metaDataContexts.getDatabase("test")).thenReturn(database);
ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/RuleDefinitionBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/RuleDefinitionBackendHandlerTest.java
index a8baceb750e..81b45797c7e 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/RuleDefinitionBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/RuleDefinitionBackendHandlerTest.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.proxy.backend.text.distsql.rql;
import io.netty.util.DefaultAttributeMap;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
@@ -52,8 +51,7 @@ public final class RuleDefinitionBackendHandlerTest extends ProxyContextRestorer
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
- when(result.getMetaDataContexts().getMetaData().getDatabases()).thenReturn(Collections.singletonMap("test", mock(ShardingSphereDatabase.class)));
- when(result.getMetaDataContexts().getDatabase("test").getRuleMetaData()).thenReturn(mock(ShardingSphereRuleMetaData.class));
+ when(result.getMetaDataContexts().getMetaData().getDatabases()).thenReturn(Collections.singletonMap("test", mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS)));
return result;
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
index c0b248fc746..1d686129498 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
@@ -85,7 +85,7 @@ public final class FrontDatabaseProtocolTypeFactoryTest extends ProxyContextRest
DatabaseType databaseType = FrontDatabaseProtocolTypeFactory.getDatabaseType();
assertThat(databaseType, instanceOf(DatabaseType.class));
assertThat(databaseType.getType(), is("PostgreSQL"));
- assertThat(metaDataContexts.getDatabase(DefaultDatabase.LOGIC_NAME).getResource().getDatabaseType(), instanceOf(MySQLDatabaseType.class));
+ assertThat(metaDataContexts.getMetaData().getDatabases().get(DefaultDatabase.LOGIC_NAME).getResource().getDatabaseType(), instanceOf(MySQLDatabaseType.class));
}
private Properties createProperties() {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/initdb/MySQLComInitDbExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/initdb/MySQLComInitDbExecutor.java
index 9a3f1436a54..0e15245d072 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/initdb/MySQLComInitDbExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/initdb/MySQLComInitDbExecutor.java
@@ -55,7 +55,7 @@ public final class MySQLComInitDbExecutor implements CommandExecutor {
private Collection<ShardingSphereRule> getRules(final String databaseName) {
Collection<ShardingSphereRule> result;
- result = new LinkedList<>(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseName).getRuleMetaData().getRules());
+ result = new LinkedList<>(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getRuleMetaData().getRules());
result.addAll(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules());
return result;
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java
index aa07c92811a..11ecd2bf612 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java
@@ -85,7 +85,7 @@ public final class MySQLComStmtExecuteExecutor implements QueryCommandExecutor {
Optional<SQLParserRule> sqlParserRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class);
Preconditions.checkState(sqlParserRule.isPresent());
SQLStatement sqlStatement = sqlParserRule.get().getSQLParserEngine(
- DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getDatabase(databaseName).getProtocolType())).parse(packet.getSql(), true);
+ DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getMetaData().getDatabases().get(databaseName).getProtocolType())).parse(packet.getSql(), true);
SQLStatementContext<?> sqlStatementContext = SQLStatementContextFactory.newInstance(metaDataContexts.getMetaData().getDatabases(), packet.getParameters(),
sqlStatement, connectionSession.getDefaultDatabaseName());
// TODO optimize SQLStatementDatabaseHolder
@@ -108,7 +108,7 @@ public final class MySQLComStmtExecuteExecutor implements QueryCommandExecutor {
private static Collection<ShardingSphereRule> getRules(final String databaseName) {
Collection<ShardingSphereRule> result;
- result = new LinkedList<>(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseName).getRuleMetaData().getRules());
+ result = new LinkedList<>(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getRuleMetaData().getRules());
result.addAll(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules());
return result;
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
index 94904cef0b8..f0ef1efb2fd 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
@@ -71,7 +71,7 @@ public final class MySQLComStmtPrepareExecutor implements CommandExecutor {
Optional<SQLParserRule> sqlParserRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class);
Preconditions.checkState(sqlParserRule.isPresent());
SQLStatement sqlStatement = sqlParserRule.get().getSQLParserEngine(
- DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getDatabase(connectionSession.getDatabaseName()).getProtocolType())).parse(packet.getSql(), true);
+ DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()).getProtocolType())).parse(packet.getSql(), true);
if (!MySQLComStmtPrepareChecker.isStatementAllowed(sqlStatement)) {
throw new UnsupportedPreparedStatementException();
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java
index 5fbe2c55362..562b2cbab6f 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java
@@ -67,7 +67,7 @@ public final class MySQLComFieldListPacketExecutor implements CommandExecutor {
Optional<SQLParserRule> sqlParserRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class);
Preconditions.checkState(sqlParserRule.isPresent());
SQLStatement sqlStatement = sqlParserRule.get().getSQLParserEngine(
- DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getDatabase(databaseName).getProtocolType())).parse(sql, false);
+ DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getMetaData().getDatabases().get(databaseName).getProtocolType())).parse(sql, false);
SQLStatementContext<?> sqlStatementContext = SQLStatementContextFactory.newInstance(metaDataContexts.getMetaData().getDatabases(), sqlStatement, databaseName);
JDBCBackendConnection backendConnection = (JDBCBackendConnection) connectionSession.getBackendConnection();
databaseCommunicationEngine = DatabaseCommunicationEngineFactory.getInstance().newTextProtocolInstance(sqlStatementContext, sql, backendConnection);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
index 1b81be79a88..044d633d224 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
@@ -111,7 +111,8 @@ public final class MySQLMultiStatementsHandler implements TextProtocolBackendHan
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
Optional<SQLParserRule> sqlParserRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class);
Preconditions.checkState(sqlParserRule.isPresent());
- return sqlParserRule.get().getSQLParserEngine(DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getDatabase(connectionSession.getDatabaseName()).getProtocolType()));
+ return sqlParserRule.get().getSQLParserEngine(
+ DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()).getProtocolType()));
}
private List<String> extractMultiStatements(final Pattern pattern, final String sql) {
@@ -127,14 +128,14 @@ public final class MySQLMultiStatementsHandler implements TextProtocolBackendHan
private ExecutionContext createExecutionContext(final LogicSQL logicSQL) {
SQLCheckEngine.check(logicSQL.getSqlStatementContext().getSqlStatement(), logicSQL.getParameters(),
- metaDataContexts.getDatabase(connectionSession.getDatabaseName()).getRuleMetaData().getRules(),
+ metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()).getRuleMetaData().getRules(),
connectionSession.getDatabaseName(), metaDataContexts.getMetaData().getDatabases(), null);
- return kernelProcessor.generateExecutionContext(logicSQL, metaDataContexts.getDatabase(connectionSession.getDatabaseName()), metaDataContexts.getMetaData().getProps());
+ return kernelProcessor.generateExecutionContext(logicSQL, metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()), metaDataContexts.getMetaData().getProps());
}
@Override
public ResponseHeader execute() throws SQLException {
- Collection<ShardingSphereRule> rules = metaDataContexts.getDatabase(connectionSession.getDatabaseName()).getRuleMetaData().getRules();
+ Collection<ShardingSphereRule> rules = metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()).getRuleMetaData().getRules();
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine = new DriverExecutionPrepareEngine<>(
JDBCDriverType.STATEMENT, metaDataContexts.getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY),
(JDBCBackendConnection) connectionSession.getBackendConnection(), (JDBCBackendStatement) connectionSession.getStatementManager(), new StatementOption(false), rules);
@@ -164,7 +165,7 @@ public final class MySQLMultiStatementsHandler implements TextProtocolBackendHan
private UpdateResponseHeader executeBatchedStatements(final ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext) throws SQLException {
boolean isExceptionThrown = SQLExecutorExceptionHandler.isExceptionThrown();
- DatabaseType databaseType = metaDataContexts.getDatabase(connectionSession.getDatabaseName()).getResource().getDatabaseType();
+ DatabaseType databaseType = metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()).getResource().getDatabaseType();
JDBCExecutorCallback<int[]> callback = new BatchedJDBCExecutorCallback(databaseType, sqlStatementSample, isExceptionThrown);
List<int[]> executeResults = jdbcExecutor.execute(executionGroupContext, callback);
int updated = 0;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
index 3c70b81019d..0ccbc85f373 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
@@ -111,13 +111,13 @@ public final class MySQLComQueryPacketExecutorTest {
try (MockedStatic<ProxyContext> mockedStatic = mockStatic(ProxyContext.class)) {
ProxyContext mockedProxyContext = mock(ProxyContext.class, RETURNS_DEEP_STUBS);
mockedStatic.when(ProxyContext::getInstance).thenReturn(mockedProxyContext);
- when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase("db_name").getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
- when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase("db_name").getProtocolType()).thenReturn(new MySQLDatabaseType());
+ when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get("db_name").getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
+ when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get("db_name").getProtocolType()).thenReturn(new MySQLDatabaseType());
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class))
.thenReturn(Optional.of(new SQLParserRule(new DefaultSQLParserRuleConfigurationBuilder().build())));
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.KERNEL_EXECUTOR_SIZE)).thenReturn(1);
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().<Boolean>getValue(ConfigurationPropertyKey.SQL_SHOW)).thenReturn(false);
- when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(any(String.class)).getRuleMetaData().findSingleRule(SQLTranslatorRule.class))
+ when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(any(String.class)).getRuleMetaData().findSingleRule(SQLTranslatorRule.class))
.thenReturn(Optional.of(new SQLTranslatorRule(new SQLTranslatorRuleConfiguration())));
MySQLComQueryPacketExecutor actual = new MySQLComQueryPacketExecutor(packet, connectionSession);
MemberAccessor accessor = Plugins.getMemberAccessor();
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandlerTest.java
index fc1676bfee4..99cba98f5ee 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandlerTest.java
@@ -88,15 +88,15 @@ public final class MySQLMultiStatementsHandlerTest {
MySQLUpdateStatement expectedStatement = mock(MySQLUpdateStatement.class);
try (MockedStatic<ProxyContext> mockedStatic = mockStatic(ProxyContext.class)) {
mockedStatic.when(ProxyContext::getInstance).thenReturn(proxyContext);
- when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase("").getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
- when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase("").getProtocolType()).thenReturn(new MySQLDatabaseType());
+ when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get("").getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
+ when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get("").getProtocolType()).thenReturn(new MySQLDatabaseType());
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class))
.thenReturn(Optional.of(new SQLParserRule(new DefaultSQLParserRuleConfigurationBuilder().build())));
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.KERNEL_EXECUTOR_SIZE)).thenReturn(1);
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().<Boolean>getValue(ConfigurationPropertyKey.SQL_SHOW)).thenReturn(false);
when(ProxyContext.getInstance()
.getContextManager().getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY)).thenReturn(1);
- when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(any(String.class)).getRuleMetaData().findSingleRule(SQLTranslatorRule.class))
+ when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(any(String.class)).getRuleMetaData().findSingleRule(SQLTranslatorRule.class))
.thenReturn(Optional.of(new SQLTranslatorRule(new SQLTranslatorRuleConfiguration())));
ResponseHeader actual = new MySQLMultiStatementsHandler(connectionSession, expectedStatement, sql).execute();
assertThat(actual, instanceOf(UpdateResponseHeader.class));
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/authentication/OpenGaussAuthenticationHandler.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/authentication/OpenGaussAuthenticationHandler.java
index e27b5afafdc..0944cbc088e 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/authentication/OpenGaussAuthenticationHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/main/java/org/apache/shardingsphere/proxy/frontend/opengauss/authentication/OpenGaussAuthenticationHandler.java
@@ -91,7 +91,7 @@ public final class OpenGaussAuthenticationHandler {
private static Collection<ShardingSphereRule> getRules(final String databaseName) {
Collection<ShardingSphereRule> result = new LinkedList<>();
if (!Strings.isNullOrEmpty(databaseName) && ProxyContext.getInstance().databaseExists(databaseName)) {
- result.addAll(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseName).getRuleMetaData().getRules());
+ result.addAll(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getRuleMetaData().getRules());
}
result.addAll(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules());
return result;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutorTest.java
index e511e23c820..b57569e8f5f 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/command/query/extended/bind/OpenGaussComBatchBindExecutorTest.java
@@ -73,7 +73,7 @@ public final class OpenGaussComBatchBindExecutorTest extends ProxyContextRestore
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.KERNEL_EXECUTOR_SIZE)).thenReturn(0);
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY)).thenReturn(1);
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().<Boolean>getValue(ConfigurationPropertyKey.SQL_SHOW)).thenReturn(false);
- when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(any(String.class)).getRuleMetaData().findSingleRule(SQLTranslatorRule.class))
+ when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(any(String.class)).getRuleMetaData().findSingleRule(SQLTranslatorRule.class))
.thenReturn(Optional.of(new SQLTranslatorRule(new SQLTranslatorRuleConfiguration())));
int connectionId = 1;
String statement = "S_1";
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandler.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandler.java
index d1261346d85..c83c43b6b15 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandler.java
@@ -66,7 +66,7 @@ public final class PostgreSQLAuthenticationHandler {
private Collection<ShardingSphereRule> getRules(final String databaseName) {
Collection<ShardingSphereRule> result = new LinkedList<>();
if (!Strings.isNullOrEmpty(databaseName) && ProxyContext.getInstance().databaseExists(databaseName)) {
- result.addAll(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(databaseName).getRuleMetaData().getRules());
+ result.addAll(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getRuleMetaData().getRules());
}
result.addAll(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules());
return result;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
index e00434cfdbe..8c13ca1d0b9 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
@@ -125,9 +125,9 @@ public final class PostgreSQLBatchedStatementsExecutor {
private ExecutionContext createExecutionContext(final LogicSQL logicSQL) {
SQLCheckEngine.check(logicSQL.getSqlStatementContext().getSqlStatement(), logicSQL.getParameters(),
- metaDataContexts.getDatabase(connectionSession.getDatabaseName()).getRuleMetaData().getRules(),
+ metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()).getRuleMetaData().getRules(),
connectionSession.getDatabaseName(), metaDataContexts.getMetaData().getDatabases(), null);
- return kernelProcessor.generateExecutionContext(logicSQL, metaDataContexts.getDatabase(connectionSession.getDatabaseName()), metaDataContexts.getMetaData().getProps());
+ return kernelProcessor.generateExecutionContext(logicSQL, metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()), metaDataContexts.getMetaData().getProps());
}
/**
@@ -142,7 +142,7 @@ public final class PostgreSQLBatchedStatementsExecutor {
}
private void addBatchedParametersToPreparedStatements() throws SQLException {
- Collection<ShardingSphereRule> rules = metaDataContexts.getDatabase(connectionSession.getDatabaseName()).getRuleMetaData().getRules();
+ Collection<ShardingSphereRule> rules = metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()).getRuleMetaData().getRules();
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine = new DriverExecutionPrepareEngine<>(
JDBCDriverType.PREPARED_STATEMENT, metaDataContexts.getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY),
(JDBCBackendConnection) connectionSession.getBackendConnection(), (JDBCBackendStatement) connectionSession.getStatementManager(), new StatementOption(false), rules);
@@ -172,7 +172,7 @@ public final class PostgreSQLBatchedStatementsExecutor {
private int executeBatchedPreparedStatements() throws SQLException {
boolean isExceptionThrown = SQLExecutorExceptionHandler.isExceptionThrown();
- DatabaseType databaseType = metaDataContexts.getDatabase(connectionSession.getDatabaseName()).getResource().getDatabaseType();
+ DatabaseType databaseType = metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()).getResource().getDatabaseType();
JDBCExecutorCallback<int[]> callback = new BatchedStatementsJDBCExecutorCallback(databaseType, preparedStatement.getSqlStatement(), isExceptionThrown);
List<int[]> executeResults = jdbcExecutor.execute(executionGroupContext, callback);
int result = 0;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutor.java
index de287975056..5e8ad59547c 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutor.java
@@ -73,7 +73,7 @@ public final class PostgreSQLComParseExecutor implements CommandExecutor {
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
Optional<SQLParserRule> sqlParserRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class);
Preconditions.checkState(sqlParserRule.isPresent());
- return sqlParserRule.get().getSQLParserEngine(DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getDatabase(schemaName).getProtocolType()));
+ return sqlParserRule.get().getSQLParserEngine(DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getMetaData().getDatabases().get(schemaName).getProtocolType()));
}
private String convertSQLToJDBCStyle(final SQLStatement sqlStatement, final String sql) {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedBatchedStatementsCommandExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedBatchedStatementsCommandExecutorTest.java
index 2033e26b07a..bacf5ade35c 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedBatchedStatementsCommandExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLAggregatedBatchedStatementsCommandExecutorTest.java
@@ -84,7 +84,7 @@ public final class PostgreSQLAggregatedBatchedStatementsCommandExecutorTest exte
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.KERNEL_EXECUTOR_SIZE)).thenReturn(0);
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY)).thenReturn(1);
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().<Boolean>getValue(ConfigurationPropertyKey.SQL_SHOW)).thenReturn(false);
- when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(any(String.class)).getRuleMetaData().findSingleRule(SQLTranslatorRule.class))
+ when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(any(String.class)).getRuleMetaData().findSingleRule(SQLTranslatorRule.class))
.thenReturn(Optional.of(new SQLTranslatorRule(new SQLTranslatorRuleConfiguration())));
PostgreSQLPreparedStatementRegistry.getInstance().register(CONNECTION_ID);
PostgreSQLPreparedStatementRegistry.getInstance().register(CONNECTION_ID, STATEMENT_ID, SQL, SQL_PARSER_ENGINE.parse(SQL, false),
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutorTest.java
index 90b94c983e6..a6ae7217166 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutorTest.java
@@ -86,7 +86,7 @@ public final class PostgreSQLBatchedStatementsExecutorTest extends ProxyContextR
when(contextManager.getMetaDataContexts().getMetaData().getProps().getValue(ConfigurationPropertyKey.KERNEL_EXECUTOR_SIZE)).thenReturn(1);
when(contextManager.getMetaDataContexts().getMetaData().getProps().getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY)).thenReturn(1);
when(contextManager.getMetaDataContexts().getMetaData().getProps().getValue(ConfigurationPropertyKey.SQL_SHOW)).thenReturn(false);
- when(contextManager.getMetaDataContexts().getDatabase(any(String.class)).getRuleMetaData().findSingleRule(SQLTranslatorRule.class))
+ when(contextManager.getMetaDataContexts().getMetaData().getDatabases().get(any(String.class)).getRuleMetaData().findSingleRule(SQLTranslatorRule.class))
.thenReturn(Optional.of(new SQLTranslatorRule(new SQLTranslatorRuleConfiguration())));
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java
index 179a44b7b26..83463f4a9ae 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java
@@ -109,10 +109,9 @@ public final class PostgreSQLComDescribeExecutorTest extends ProxyContextRestore
ProxyContext.init(contextManager);
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps().getValue(ConfigurationPropertyKey.SQL_SHOW)).thenReturn(false);
when(connectionSession.getDatabaseName()).thenReturn(DATABASE_NAME);
- when(contextManager.getMetaDataContexts().getMetaData().getDatabases().containsKey(DATABASE_NAME)).thenReturn(true);
- when(contextManager.getMetaDataContexts().getMetaData().getDatabases().get(DATABASE_NAME)).thenReturn(mock(ShardingSphereDatabase.class));
- when(contextManager.getMetaDataContexts().getDatabase(any(String.class)).getRuleMetaData().findSingleRule(SQLTranslatorRule.class))
- .thenReturn(Optional.of(new SQLTranslatorRule(new SQLTranslatorRuleConfiguration())));
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
+ when(database.getRuleMetaData().findSingleRule(SQLTranslatorRule.class)).thenReturn(Optional.of(new SQLTranslatorRule(new SQLTranslatorRuleConfiguration())));
+ when(contextManager.getMetaDataContexts().getMetaData().getDatabases()).thenReturn(Collections.singletonMap(DATABASE_NAME, database));
prepareTableMetaData();
}
@@ -123,8 +122,8 @@ public final class PostgreSQLComDescribeExecutorTest extends ProxyContextRestore
new ColumnMetaData("c", Types.CHAR, true, false, false),
new ColumnMetaData("pad", Types.CHAR, true, false, false));
TableMetaData tableMetaData = new TableMetaData(TABLE_NAME, columnMetaData, Collections.emptyList(), Collections.emptyList());
- when(contextManager.getMetaDataContexts().getDatabase(DATABASE_NAME).getSchemas().get("public").get(TABLE_NAME)).thenReturn(tableMetaData);
- when(contextManager.getMetaDataContexts().getDatabase(DATABASE_NAME).getResource().getDatabaseType()).thenReturn(new PostgreSQLDatabaseType());
+ when(contextManager.getMetaDataContexts().getMetaData().getDatabases().get(DATABASE_NAME).getSchemas().get("public").get(TABLE_NAME)).thenReturn(tableMetaData);
+ when(contextManager.getMetaDataContexts().getMetaData().getDatabases().get(DATABASE_NAME).getResource().getDatabaseType()).thenReturn(new PostgreSQLDatabaseType());
}
@Test
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
index aa257aed3ee..ef5842a52c2 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
@@ -100,8 +100,8 @@ public final class PostgreSQLComParseExecutorTest extends ProxyContextRestorer {
when(parsePacket.getStatementId()).thenReturn(statementId);
when(parsePacket.readParameterTypes()).thenReturn(Collections.singletonList(PostgreSQLColumnType.POSTGRESQL_TYPE_INT4));
when(connectionSession.getDatabaseName()).thenReturn("db");
- when(mockedContextManager.getMetaDataContexts().getDatabase("db").getResource().getDatabaseType()).thenReturn(new PostgreSQLDatabaseType());
- when(mockedContextManager.getMetaDataContexts().getDatabase("db").getProtocolType()).thenReturn(new PostgreSQLDatabaseType());
+ when(mockedContextManager.getMetaDataContexts().getMetaData().getDatabases().get("db").getResource().getDatabaseType()).thenReturn(new PostgreSQLDatabaseType());
+ when(mockedContextManager.getMetaDataContexts().getMetaData().getDatabases().get("db").getProtocolType()).thenReturn(new PostgreSQLDatabaseType());
when(mockedContextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class)).thenReturn(Optional.of(sqlParserRule));
Collection<DatabasePacket<?>> actualPackets = executor.execute();
assertThat(actualPackets.size(), is(1));
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/binary/execute/ReactiveMySQLComStmtExecuteExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/binary/execute/ReactiveMySQLComStmtExecuteExecutor.java
index 1dc040db0bb..326c449159d 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/binary/execute/ReactiveMySQLComStmtExecuteExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/binary/execute/ReactiveMySQLComStmtExecuteExecutor.java
@@ -86,7 +86,7 @@ public final class ReactiveMySQLComStmtExecuteExecutor implements ReactiveComman
Optional<SQLParserRule> sqlParserRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class);
Preconditions.checkState(sqlParserRule.isPresent());
SQLStatement sqlStatement = sqlParserRule.get().getSQLParserEngine(
- DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getDatabase(databaseName).getProtocolType())).parse(packet.getSql(), true);
+ DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getMetaData().getDatabases().get(databaseName).getProtocolType())).parse(packet.getSql(), true);
SQLStatementContext<?> sqlStatementContext = SQLStatementContextFactory.newInstance(metaDataContexts.getMetaData().getDatabases(), packet.getParameters(),
sqlStatement, connectionSession.getDefaultDatabaseName());
// TODO optimize SQLStatementDatabaseHolder
@@ -109,7 +109,7 @@ public final class ReactiveMySQLComStmtExecuteExecutor implements ReactiveComman
private static Collection<ShardingSphereRule> getRules(final String schemaName) {
Collection<ShardingSphereRule> result;
- result = new LinkedList<>(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getDatabase(schemaName).getRuleMetaData().getRules());
+ result = new LinkedList<>(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(schemaName).getRuleMetaData().getRules());
result.addAll(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules());
return result;
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/text/fieldlist/ReactiveMySQLComFieldListPacketExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/text/fieldlist/ReactiveMySQLComFieldListPacketExecutor.java
index a30259baa10..f4a8c15b641 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/text/fieldlist/ReactiveMySQLComFieldListPacketExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/text/fieldlist/ReactiveMySQLComFieldListPacketExecutor.java
@@ -67,7 +67,7 @@ public final class ReactiveMySQLComFieldListPacketExecutor implements ReactiveCo
Optional<SQLParserRule> sqlParserRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class);
Preconditions.checkState(sqlParserRule.isPresent());
SQLStatement sqlStatement = sqlParserRule.get().getSQLParserEngine(
- DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getDatabase(databaseName).getProtocolType())).parse(sql, false);
+ DatabaseTypeEngine.getTrunkDatabaseTypeName(metaDataContexts.getMetaData().getDatabases().get(databaseName).getProtocolType())).parse(sql, false);
SQLStatementContext<?> sqlStatementContext = SQLStatementContextFactory.newInstance(metaDataContexts.getMetaData().getDatabases(), sqlStatement, databaseName);
databaseCommunicationEngine = DatabaseCommunicationEngineFactory.getInstance().newTextProtocolInstance(sqlStatementContext, sql, connectionSession.getBackendConnection());
characterSet = connectionSession.getAttributeMap().attr(MySQLConstants.MYSQL_CHARACTER_SET_ATTRIBUTE_KEY).get().getId();