This is an automated email from the ASF dual-hosted git repository.
panjuan 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 638ba4bce02 Refactor usage of ResourceMetaData.getStorageTypes()
(#28184)
638ba4bce02 is described below
commit 638ba4bce0214146df9c35c196dc392dc0a0d7c4
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Aug 20 17:30:55 2023 +0800
Refactor usage of ResourceMetaData.getStorageTypes() (#28184)
---
.../engine/type/standard/assertion/ShardingRouteAssert.java | 2 +-
.../jdbc/core/statement/ShardingSpherePreparedStatement.java | 4 ++--
.../driver/jdbc/core/statement/ShardingSphereStatement.java | 2 +-
.../executor/batch/BatchPreparedStatementExecutorTest.java | 4 ----
.../driver/jdbc/adapter/PreparedStatementAdapterTest.java | 2 --
.../shardingsphere/transaction/rule/TransactionRuleTest.java | 10 ----------
.../org/apache/shardingsphere/mode/manager/ContextManager.java | 6 +++---
.../apache/shardingsphere/mode/manager/ContextManagerTest.java | 3 +--
.../process/subscriber/ProcessListChangedSubscriberTest.java | 1 -
.../proxy/backend/connector/DatabaseConnector.java | 2 +-
.../proxy/backend/connector/ProxySQLExecutor.java | 2 +-
.../proxy/backend/handler/distsql/rul/sql/PreviewExecutor.java | 2 +-
.../proxy/backend/connector/DatabaseConnectorTest.java | 1 -
.../connector/jdbc/datasource/JDBCBackendDataSourceTest.java | 5 -----
.../admin/OpenGaussSystemCatalogAdminQueryExecutor.java | 2 +-
.../admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java | 10 +++++-----
.../proxy/version/ShardingSphereProxyVersionTest.java | 1 -
.../command/query/text/query/MySQLMultiStatementsHandler.java | 2 +-
.../query/text/query/MySQLComQueryPacketExecutorTest.java | 1 -
.../query/extended/PostgreSQLBatchedStatementsExecutor.java | 2 +-
.../query/extended/parse/PostgreSQLComParseExecutorTest.java | 2 --
21 files changed, 19 insertions(+), 47 deletions(-)
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/assertion/ShardingRouteAssert.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/assertion/ShardingRouteAssert.java
index f9b760079c6..8e3d00180ae 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/assertion/ShardingRouteAssert.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/assertion/ShardingRouteAssert.java
@@ -79,7 +79,7 @@ public final class ShardingRouteAssert {
new CacheOption(2000, 65535L), new CacheOption(128, 1024L),
false);
RuleMetaData ruleMetaData = new
RuleMetaData(Arrays.asList(shardingRule, singleRule, timestampServiceRule));
ResourceMetaData resourceMetaData = mock(ResourceMetaData.class,
RETURNS_DEEP_STUBS);
-
when(resourceMetaData.getStorageTypes()).thenReturn(Collections.singletonMap("ds_0",
databaseType));
+
when(resourceMetaData.getStorageUnitMetaData().getStorageTypes()).thenReturn(Collections.singletonMap("ds_0",
databaseType));
ShardingSphereDatabase database = new ShardingSphereDatabase(
DefaultDatabase.LOGIC_NAME, databaseType, resourceMetaData,
ruleMetaData, schemas);
SQLStatementContext sqlStatementContext =
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
index edac8bc1021..ab50d97eeee 100644
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
+++
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
@@ -319,7 +319,7 @@ public final class ShardingSpherePreparedStatement extends
AbstractPreparedState
int maxConnectionsSizePerQuery =
metaDataContexts.getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY);
return new
DriverExecutionPrepareEngine<>(JDBCDriverType.PREPARED_STATEMENT,
maxConnectionsSizePerQuery, connection.getDatabaseConnectionManager(),
statementManager,
statementOption,
metaDataContexts.getMetaData().getDatabase(databaseName).getRuleMetaData().getRules(),
-
metaDataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageTypes());
+
metaDataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getStorageTypes());
}
@Override
@@ -660,7 +660,7 @@ public final class ShardingSpherePreparedStatement extends
AbstractPreparedState
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection>
prepareEngine = new
DriverExecutionPrepareEngine<>(JDBCDriverType.PREPARED_STATEMENT,
metaDataContexts.getMetaData().getProps()
.<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY),
connection.getDatabaseConnectionManager(), statementManager, statementOption,
metaDataContexts.getMetaData().getDatabase(databaseName).getRuleMetaData().getRules(),
-
metaDataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageTypes());
+
metaDataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getStorageTypes());
List<ExecutionUnit> executionUnits = new
ArrayList<>(batchPreparedStatementExecutor.getBatchExecutionUnits().size());
for (BatchExecutionUnit each :
batchPreparedStatementExecutor.getBatchExecutionUnits()) {
ExecutionUnit executionUnit = each.getExecutionUnit();
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
index a908328d1ab..5560eae29bf 100644
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
+++
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
@@ -240,7 +240,7 @@ public final class ShardingSphereStatement extends
AbstractStatementAdapter {
int maxConnectionsSizePerQuery =
metaDataContexts.getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY);
return new DriverExecutionPrepareEngine<>(JDBCDriverType.STATEMENT,
maxConnectionsSizePerQuery, connection.getDatabaseConnectionManager(),
statementManager, statementOption,
metaDataContexts.getMetaData().getDatabase(databaseName).getRuleMetaData().getRules(),
-
metaDataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageTypes());
+
metaDataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getStorageTypes());
}
@Override
diff --git
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutorTest.java
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutorTest.java
index 948b9f60f35..91d514857ae 100644
---
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutorTest.java
+++
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutorTest.java
@@ -21,7 +21,6 @@ import lombok.SneakyThrows;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
import
org.apache.shardingsphere.infra.binder.context.segment.table.TablesContext;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
import org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroup;
import
org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroupContext;
@@ -33,7 +32,6 @@ import
org.apache.shardingsphere.infra.executor.sql.execute.engine.SQLExecutorEx
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit;
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutor;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
-import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
@@ -107,8 +105,6 @@ class BatchPreparedStatementExecutorTest {
MetaDataContexts result = mock(MetaDataContexts.class,
RETURNS_DEEP_STUBS);
RuleMetaData globalRuleMetaData = new
RuleMetaData(Arrays.asList(mockTransactionRule(), new TrafficRule(new
DefaultTrafficRuleConfigurationBuilder().build())));
when(result.getMetaData().getGlobalRuleMetaData()).thenReturn(globalRuleMetaData);
-
when(result.getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageTypes())
- .thenReturn(Collections.singletonMap("ds_0",
TypedSPILoader.getService(DatabaseType.class, "H2")));
RuleMetaData databaseRuleMetaData = new
RuleMetaData(Collections.singleton(mockShardingRule()));
when(result.getMetaData().getDatabase("foo_db").getRuleMetaData()).thenReturn(databaseRuleMetaData);
return result;
diff --git
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/PreparedStatementAdapterTest.java
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/PreparedStatementAdapterTest.java
index e699ce0644e..d242a0d1a38 100644
---
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/PreparedStatementAdapterTest.java
+++
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/PreparedStatementAdapterTest.java
@@ -75,8 +75,6 @@ class PreparedStatementAdapterTest {
when(connection.getContextManager().getMetaDataContexts().getMetaData().getProps()).thenReturn(new
ConfigurationProperties(new Properties()));
when(connection.getContextManager().getMetaDataContexts().getMetaData().getDatabase(
connection.getDatabaseName()).getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"MySQL"));
-
when(connection.getContextManager().getMetaDataContexts().getMetaData().getDatabase(connection.getDatabaseName()).getResourceMetaData().getStorageTypes())
- .thenReturn(Collections.singletonMap("ds_0",
TypedSPILoader.getService(DatabaseType.class, "MySQL")));
shardingSpherePreparedStatement = new
ShardingSpherePreparedStatement(connection, "SELECT 1");
}
diff --git
a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
index 677258b7e23..3165f0a0a6b 100644
---
a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
+++
b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
@@ -17,10 +17,8 @@
package org.apache.shardingsphere.transaction.rule;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
-import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
import org.apache.shardingsphere.transaction.api.TransactionType;
import
org.apache.shardingsphere.transaction.config.TransactionRuleConfiguration;
@@ -103,10 +101,6 @@ class TransactionRuleTest {
dataSourceMap.put("ds_0", new MockedDataSource());
dataSourceMap.put("ds_1", new MockedDataSource());
when(result.getStorageUnitMetaData().getDataSources()).thenReturn(dataSourceMap);
- Map<String, DatabaseType> databaseTypes = new LinkedHashMap<>(2, 1F);
- databaseTypes.put("ds_0",
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL"));
- databaseTypes.put("ds_1",
TypedSPILoader.getService(DatabaseType.class, "openGauss"));
- when(result.getStorageTypes()).thenReturn(databaseTypes);
return result;
}
@@ -124,10 +118,6 @@ class TransactionRuleTest {
dataSourceMap.put("ds_0", new MockedDataSource());
dataSourceMap.put("ds_1", new MockedDataSource());
when(result.getStorageUnitMetaData().getDataSources()).thenReturn(dataSourceMap);
- Map<String, DatabaseType> databaseTypes = new LinkedHashMap<>(2, 1F);
- databaseTypes.put("ds_0",
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL"));
- databaseTypes.put("ds_1",
TypedSPILoader.getService(DatabaseType.class, "openGauss"));
- when(result.getStorageTypes()).thenReturn(databaseTypes);
return result;
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 9553a5c6674..63ee9562f8a 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -181,7 +181,7 @@ public final class ContextManager implements AutoCloseable {
private ShardingSphereSchema loadSchema(final String databaseName, final
String schemaName, final String dataSourceName) throws SQLException {
ShardingSphereDatabase database =
metaDataContexts.get().getMetaData().getDatabase(databaseName);
database.reloadRules(MutableDataNodeRule.class);
- GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
database.getResourceMetaData().getStorageTypes(),
+ GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
database.getResourceMetaData().getStorageUnitMetaData().getStorageTypes(),
Collections.singletonMap(dataSourceName,
database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().get(dataSourceName).getDataSource()),
database.getRuleMetaData().getRules(),
metaDataContexts.get().getMetaData().getProps(), schemaName);
ShardingSphereSchema result =
GenericSchemaBuilder.build(material).get(schemaName);
@@ -225,8 +225,8 @@ public final class ContextManager implements AutoCloseable {
private void reloadTable(final String databaseName, final String
schemaName, final String tableName, final Map<String, DataSource>
dataSourceMap) throws SQLException {
ShardingSphereDatabase database =
metaDataContexts.get().getMetaData().getDatabase(databaseName);
- GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
- database.getResourceMetaData().getStorageTypes(),
dataSourceMap, database.getRuleMetaData().getRules(),
metaDataContexts.get().getMetaData().getProps(), schemaName);
+ GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
database.getResourceMetaData().getStorageUnitMetaData().getStorageTypes(),
+ dataSourceMap, database.getRuleMetaData().getRules(),
metaDataContexts.get().getMetaData().getProps(), schemaName);
ShardingSphereSchema schema =
GenericSchemaBuilder.build(Collections.singletonList(tableName),
material).getOrDefault(schemaName, new ShardingSphereSchema());
metaDataContexts.get().getPersistService().getDatabaseMetaDataService().getTableMetaDataPersistService()
.persist(database.getName(), schemaName,
Collections.singletonMap(tableName, schema.getTable(tableName)));
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index 7c5ecec3fa0..b8e19d587bb 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -100,7 +100,6 @@ class ContextManagerTest {
private ShardingSphereDatabase mockDatabase() {
ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
when(result.getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"FIXTURE"));
-
when(result.getResourceMetaData().getStorageTypes()).thenReturn(Collections.singletonMap("ds_0",
TypedSPILoader.getService(DatabaseType.class, "FIXTURE")));
MutableDataNodeRule mutableDataNodeRule =
mock(MutableDataNodeRule.class, RETURNS_DEEP_STUBS);
when(mutableDataNodeRule.findTableDataNode("foo_schema",
"foo_tbl")).thenReturn(Optional.of(mock(DataNode.class)));
when(result.getRuleMetaData()).thenReturn(new
RuleMetaData(Collections.singleton(mutableDataNodeRule)));
@@ -298,7 +297,7 @@ class ContextManagerTest {
void assertReloadTable() {
when(metaDataContexts.getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageUnitMetaData().getDataSources())
.thenReturn(Collections.singletonMap("foo_ds", new
MockedDataSource()));
-
when(metaDataContexts.getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageTypes()).thenReturn(Collections.singletonMap("foo_ds",
+
when(metaDataContexts.getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageUnitMetaData().getStorageTypes()).thenReturn(Collections.singletonMap("foo_ds",
TypedSPILoader.getService(DatabaseType.class, "MySQL")));
DatabaseMetaDataPersistService databaseMetaDataPersistService =
mock(DatabaseMetaDataPersistService.class, RETURNS_DEEP_STUBS);
MetaDataPersistService persistService =
mock(MetaDataPersistService.class);
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
index 7dde3740a43..69cc6d4f503 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
@@ -97,7 +97,6 @@ class ProcessListChangedSubscriberTest {
}
private Map<String, ShardingSphereDatabase> createDatabases() {
-
when(database.getResourceMetaData().getStorageTypes()).thenReturn(Collections.singletonMap("ds_0",
TypedSPILoader.getService(DatabaseType.class, "MySQL")));
when(database.getSchemas()).thenReturn(Collections.singletonMap("foo_schema",
new ShardingSphereSchema()));
when(database.getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"MySQL"));
when(database.getSchema("foo_schema")).thenReturn(mock(ShardingSphereSchema.class));
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
index 422580ea9ef..6ed19a8b914 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
@@ -251,7 +251,7 @@ public final class DatabaseConnector implements
DatabaseBackendHandler {
JDBCBackendStatement statementManager = (JDBCBackendStatement)
databaseConnectionManager.getConnectionSession().getStatementManager();
return new DriverExecutionPrepareEngine<>(driverType,
maxConnectionsSizePerQuery, databaseConnectionManager, statementManager,
new StatementOption(isReturnGeneratedKeys),
metaData.getMetaData().getDatabase(databaseConnectionManager.getConnectionSession().getDatabaseName()).getRuleMetaData().getRules(),
-
metaData.getMetaData().getDatabase(databaseConnectionManager.getConnectionSession().getDatabaseName()).getResourceMetaData().getStorageTypes());
+
metaData.getMetaData().getDatabase(databaseConnectionManager.getConnectionSession().getDatabaseName()).getResourceMetaData().getStorageUnitMetaData().getStorageTypes());
}
private ResponseHeader processExecuteFederation(final ResultSet resultSet,
final MetaDataContexts metaDataContexts) throws SQLException {
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
index 5ff74fb7a02..9357d97cbba 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
@@ -204,7 +204,7 @@ public final class ProxySQLExecutor {
JDBCBackendStatement statementManager = (JDBCBackendStatement)
databaseConnectionManager.getConnectionSession().getStatementManager();
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection>
prepareEngine = new DriverExecutionPrepareEngine<>(
type, maxConnectionsSizePerQuery, databaseConnectionManager,
statementManager, new StatementOption(isReturnGeneratedKeys), rules,
-
ProxyContext.getInstance().getDatabase(databaseConnectionManager.getConnectionSession().getDatabaseName()).getResourceMetaData().getStorageTypes());
+
ProxyContext.getInstance().getDatabase(databaseConnectionManager.getConnectionSession().getDatabaseName()).getResourceMetaData().getStorageUnitMetaData().getStorageTypes());
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext;
try {
executionGroupContext =
prepareEngine.prepare(executionContext.getRouteContext(),
executionContext.getExecutionUnits(),
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewExecutor.java
index 77445b45630..130d9b44e22 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewExecutor.java
@@ -168,7 +168,7 @@ public final class PreviewExecutor implements
ConnectionSessionRequiredRULExecut
return new DriverExecutionPrepareEngine<>(JDBCDriverType.STATEMENT,
maxConnectionsSizePerQuery, connectionSession.getDatabaseConnectionManager(),
(JDBCBackendStatement)
connectionSession.getStatementManager(), new
StatementOption(isReturnGeneratedKeys),
metaDataContexts.getMetaData().getDatabase(getDatabaseName(connectionSession)).getRuleMetaData().getRules(),
-
metaDataContexts.getMetaData().getDatabase(getDatabaseName(connectionSession)).getResourceMetaData().getStorageTypes());
+
metaDataContexts.getMetaData().getDatabase(getDatabaseName(connectionSession)).getResourceMetaData().getStorageUnitMetaData().getStorageTypes());
}
private String getDatabaseName(final ConnectionSession connectionSession) {
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnectorTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnectorTest.java
index 4bdd8a69d7d..33c71fefda5 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnectorTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnectorTest.java
@@ -133,7 +133,6 @@ class DatabaseConnectorTest {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
when(database.containsDataSource()).thenReturn(true);
when(database.isComplete()).thenReturn(true);
-
when(database.getResourceMetaData().getStorageTypes()).thenReturn(Collections.singletonMap("ds_0",
TypedSPILoader.getService(DatabaseType.class, "H2")));
when(database.getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"H2"));
when(database.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
return Collections.singletonMap("foo_db", database);
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/datasource/JDBCBackendDataSourceTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/datasource/JDBCBackendDataSourceTest.java
index 0632e4d0a26..03ca65319fe 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/datasource/JDBCBackendDataSourceTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/datasource/JDBCBackendDataSourceTest.java
@@ -49,7 +49,6 @@ import java.sql.SQLException;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
-import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -96,10 +95,6 @@ class JDBCBackendDataSourceTest {
DatabaseType databaseType =
TypedSPILoader.getService(DatabaseType.class, "FIXTURE");
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
when(database.getProtocolType()).thenReturn(databaseType);
- Map<String, DatabaseType> storageTypes = new LinkedHashMap<>(2, 1F);
- storageTypes.put("ds_0", databaseType);
- storageTypes.put("ds_1", databaseType);
-
when(database.getResourceMetaData().getStorageTypes()).thenReturn(storageTypes);
for (Entry<String, DataSource> entry : mockDataSources(2).entrySet()) {
when(database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().get(entry.getKey()).getDataSource()).thenReturn(entry.getValue());
}
diff --git
a/proxy/backend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutor.java
b/proxy/backend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutor.java
index ed167da5203..d970a30712c 100644
---
a/proxy/backend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutor.java
+++
b/proxy/backend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutor.java
@@ -100,7 +100,7 @@ public final class OpenGaussSystemCatalogAdminQueryExecutor
implements DatabaseA
return new DriverExecutionPrepareEngine<>(JDBCDriverType.STATEMENT,
maxConnectionsSizePerQuery, connectionSession.getDatabaseConnectionManager(),
connectionSession.getStatementManager(), new
StatementOption(false),
metaDataContexts.getMetaData().getDatabase(databaseName).getRuleMetaData().getRules(),
-
metaDataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageTypes());
+
metaDataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getStorageTypes());
}
private JDBCExecutorCallback<ExecuteResult>
createOpenGaussSystemCatalogAdminQueryCallback(final DatabaseType protocolType,
final ResourceMetaData resourceMetaData,
diff --git
a/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java
b/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java
index d51f0183099..6f50069a04b 100644
---
a/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java
+++
b/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java
@@ -86,7 +86,7 @@ class OpenGaussSystemCatalogAdminQueryExecutorTest {
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(mock(RuleMetaData.class));
OpenGaussSelectStatement sqlStatement =
createSelectStatementForPgDatabase();
ShardingSphereMetaData metaData =
- new ShardingSphereMetaData(databases,
mock(ResourceMetaData.class), new
RuleMetaData(Collections.singletonList(sqlFederationRule)), properties);
+ new ShardingSphereMetaData(databases,
mock(ResourceMetaData.class, RETURNS_DEEP_STUBS), new
RuleMetaData(Collections.singletonList(sqlFederationRule)), properties);
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData()).thenReturn(metaData);
SelectStatementContext sqlStatementContext = new
SelectStatementContext(metaData, Collections.emptyList(), sqlStatement,
"sharding_db");
OpenGaussSystemCatalogAdminQueryExecutor executor = new
OpenGaussSystemCatalogAdminQueryExecutor(sqlStatementContext,
@@ -134,7 +134,7 @@ class OpenGaussSystemCatalogAdminQueryExecutorTest {
ShardingSphereSchema schema = new ShardingSphereSchema(
Collections.singletonMap("pg_database", new
ShardingSphereTable("pg_database", columns, Collections.emptyList(),
Collections.emptyList())), Collections.emptyMap());
result.put("sharding_db", new ShardingSphereDatabase("sharding_db",
TypedSPILoader.getService(DatabaseType.class, "openGauss"),
- mock(ResourceMetaData.class), mock(RuleMetaData.class),
Collections.singletonMap("pg_catalog", schema)));
+ mock(ResourceMetaData.class, RETURNS_DEEP_STUBS),
mock(RuleMetaData.class), Collections.singletonMap("pg_catalog", schema)));
return result;
}
@@ -149,7 +149,7 @@ class OpenGaussSystemCatalogAdminQueryExecutorTest {
SQLFederationRule sqlFederationRule = new SQLFederationRule(new
SQLFederationRuleConfiguration(false, new CacheOption(1, 1)), databases,
properties);
OpenGaussSelectStatement sqlStatement =
createSelectStatementForVersion();
ShardingSphereMetaData metaData =
- new ShardingSphereMetaData(databases,
mock(ResourceMetaData.class), new
RuleMetaData(Collections.singletonList(sqlFederationRule)), properties);
+ new ShardingSphereMetaData(databases,
mock(ResourceMetaData.class, RETURNS_DEEP_STUBS), new
RuleMetaData(Collections.singletonList(sqlFederationRule)), properties);
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData()).thenReturn(metaData);
SelectStatementContext sqlStatementContext = new
SelectStatementContext(metaData, Collections.emptyList(), sqlStatement,
"sharding_db");
OpenGaussSystemCatalogAdminQueryExecutor executor =
@@ -183,7 +183,7 @@ class OpenGaussSystemCatalogAdminQueryExecutorTest {
SQLFederationRule sqlFederationRule = new SQLFederationRule(new
SQLFederationRuleConfiguration(false, new CacheOption(1, 1)), databases,
properties);
OpenGaussSelectStatement sqlStatement =
createSelectStatementForGsPasswordDeadlineAndIntervalToNum();
ShardingSphereMetaData metaData =
- new ShardingSphereMetaData(databases,
mock(ResourceMetaData.class), new
RuleMetaData(Collections.singletonList(sqlFederationRule)), properties);
+ new ShardingSphereMetaData(databases,
mock(ResourceMetaData.class, RETURNS_DEEP_STUBS), new
RuleMetaData(Collections.singletonList(sqlFederationRule)), properties);
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData()).thenReturn(metaData);
SelectStatementContext sqlStatementContext = new
SelectStatementContext(metaData, Collections.emptyList(), sqlStatement,
"sharding_db");
OpenGaussSystemCatalogAdminQueryExecutor executor =
@@ -219,7 +219,7 @@ class OpenGaussSystemCatalogAdminQueryExecutorTest {
SQLFederationRule sqlFederationRule = new SQLFederationRule(new
SQLFederationRuleConfiguration(false, new CacheOption(1, 1)), databases,
properties);
OpenGaussSelectStatement sqlStatement =
createSelectStatementForGsPasswordNotifyTime();
ShardingSphereMetaData metaData =
- new ShardingSphereMetaData(databases,
mock(ResourceMetaData.class), new
RuleMetaData(Collections.singletonList(sqlFederationRule)), properties);
+ new ShardingSphereMetaData(databases,
mock(ResourceMetaData.class, RETURNS_DEEP_STUBS), new
RuleMetaData(Collections.singletonList(sqlFederationRule)), properties);
when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData()).thenReturn(metaData);
SelectStatementContext sqlStatementContext = new
SelectStatementContext(metaData, Collections.emptyList(), sqlStatement,
"sharding_db");
OpenGaussSystemCatalogAdminQueryExecutor executor =
diff --git
a/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersionTest.java
b/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersionTest.java
index c20b67edbc3..e368386eb41 100644
---
a/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersionTest.java
+++
b/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersionTest.java
@@ -78,7 +78,6 @@ class ShardingSphereProxyVersionTest {
private ResourceMetaData mockResourceMetaData(final String
databaseProductName, final String databaseProductVersion) throws SQLException {
ResourceMetaData result = mock(ResourceMetaData.class,
RETURNS_DEEP_STUBS);
-
when(result.getStorageTypes()).thenReturn(Collections.singletonMap("foo_ds",
TypedSPILoader.getService(DatabaseType.class, databaseProductName)));
DataSource dataSource = createDataSource(databaseProductName,
databaseProductVersion);
when(result.getStorageUnitMetaData().getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
dataSource));
return result;
diff --git
a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
index 2f7d3653911..b451a85d9da 100644
---
a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
+++
b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
@@ -140,7 +140,7 @@ public final class MySQLMultiStatementsHandler implements
ProxyBackendHandler {
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection>
prepareEngine = new DriverExecutionPrepareEngine<>(JDBCDriverType.STATEMENT,
metaDataContexts.getMetaData().getProps()
.<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY),
connectionSession.getDatabaseConnectionManager(),
(JDBCBackendStatement)
connectionSession.getStatementManager(), new StatementOption(false), rules,
-
metaDataContexts.getMetaData().getDatabase(connectionSession.getDatabaseName()).getResourceMetaData().getStorageTypes());
+
metaDataContexts.getMetaData().getDatabase(connectionSession.getDatabaseName()).getResourceMetaData().getStorageUnitMetaData().getStorageTypes());
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext =
prepareEngine.prepare(anyExecutionContext.getRouteContext(),
samplingExecutionUnit(),
new
ExecutionGroupReportContext(connectionSession.getProcessId(),
connectionSession.getDatabaseName(), connectionSession.getGrantee()));
for (ExecutionGroup<JDBCExecutionUnit> eachGroup :
executionGroupContext.getInputGroups()) {
diff --git
a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
index e85158d87ff..a1bab10c0bc 100644
---
a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
+++
b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutorTest.java
@@ -135,7 +135,6 @@ class MySQLComQueryPacketExecutorTest {
private MetaDataContexts mockMetaDataContexts() {
DatabaseType databaseType =
TypedSPILoader.getService(DatabaseType.class, "MySQL");
MetaDataContexts result = mock(MetaDataContexts.class,
RETURNS_DEEP_STUBS);
-
when(result.getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageTypes()).thenReturn(Collections.singletonMap("foo_ds",
databaseType));
when(result.getMetaData().getDatabase("foo_db").getProtocolType()).thenReturn(databaseType);
RuleMetaData globalRuleMetaData = new RuleMetaData(
Arrays.asList(new SQLParserRule(new
DefaultSQLParserRuleConfigurationBuilder().build()), new SQLTranslatorRule(new
DefaultSQLTranslatorRuleConfigurationBuilder().build()),
diff --git
a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
index 36f9c194cc0..8ee8cf0de6c 100644
---
a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
+++
b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
@@ -151,7 +151,7 @@ public final class PostgreSQLBatchedStatementsExecutor {
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection>
prepareEngine = new
DriverExecutionPrepareEngine<>(JDBCDriverType.PREPARED_STATEMENT,
metaDataContexts.getMetaData().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY),
connectionSession.getDatabaseConnectionManager(),
(JDBCBackendStatement) connectionSession.getStatementManager(),
- new StatementOption(false), rules,
metaDataContexts.getMetaData().getDatabase(connectionSession.getDatabaseName()).getResourceMetaData().getStorageTypes());
+ new StatementOption(false), rules,
metaDataContexts.getMetaData().getDatabase(connectionSession.getDatabaseName()).getResourceMetaData().getStorageUnitMetaData().getStorageTypes());
executionGroupContext =
prepareEngine.prepare(anyExecutionContext.getRouteContext(),
executionUnitParams.keySet(),
new
ExecutionGroupReportContext(connectionSession.getProcessId(),
connectionSession.getDatabaseName(), connectionSession.getGrantee()));
for (ExecutionGroup<JDBCExecutionUnit> eachGroup :
executionGroupContext.getInputGroups()) {
diff --git
a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
index 7cee7bde1fc..89d113b907f 100644
---
a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
+++
b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
@@ -169,8 +169,6 @@ class PostgreSQLComParseExecutorTest {
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
-
when(result.getMetaDataContexts().getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageTypes()).thenReturn(
- Collections.singletonMap("foo_ds",
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL")));
when(result.getMetaDataContexts().getMetaData().getDatabase("foo_db").getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"PostgreSQL"));
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData())
.thenReturn(new RuleMetaData(Collections.singleton(new
SQLParserRule(new DefaultSQLParserRuleConfigurationBuilder().build()))));