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()))));


Reply via email to