This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang 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 66851223694 Refactor NewRuleDefinitionBackendHandler (#29784)
66851223694 is described below

commit 66851223694a7451de8d8d215ffc34e1ea35d8f2
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jan 20 13:10:56 2024 +0800

    Refactor NewRuleDefinitionBackendHandler (#29784)
    
    * Refactor NewRuleDefinitionBackendHandler
    
    * Refactor NewRuleDefinitionBackendHandler
    
    * Refactor RDLBackendHandler
    
    * Refactor RDLBackendHandler
    
    * Refactor RDLBackendHandler
    
    * Refactor RDLBackendHandler
    
    * Refactor RDLBackendHandler
---
 .../handler/distsql/rdl/RDLBackendHandler.java     | 15 ++-------
 .../rdl/rule/NewRuleDefinitionBackendHandler.java  | 39 +++++++++-------------
 .../rdl/rule/RuleDefinitionBackendHandler.java     |  5 ++-
 .../unit/AlterStorageUnitBackendHandler.java       | 23 +++++++------
 .../unit/RegisterStorageUnitBackendHandler.java    | 34 +++++++++----------
 .../unit/StorageUnitDefinitionBackendHandler.java  |  3 +-
 .../unit/UnregisterStorageUnitBackendHandler.java  | 21 ++++++------
 .../rdl/rule/RuleDefinitionBackendHandlerTest.java |  1 -
 .../unit/AlterStorageUnitBackendHandlerTest.java   | 11 +++---
 .../RegisterStorageUnitBackendHandlerTest.java     | 11 +++---
 .../UnregisterStorageUnitBackendHandlerTest.java   | 18 ++++++----
 11 files changed, 85 insertions(+), 96 deletions(-)

diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandler.java
index 12e3b8dd7ae..8eb0c775ddf 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandler.java
@@ -20,9 +20,7 @@ package 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.distsql.statement.rdl.RDLStatement;
-import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
-import 
org.apache.shardingsphere.infra.exception.dialect.exception.syntax.database.NoDatabaseSelectedException;
-import 
org.apache.shardingsphere.infra.exception.dialect.exception.syntax.database.UnknownDatabaseException;
+import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.DistSQLBackendHandler;
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
@@ -46,15 +44,8 @@ public abstract class RDLBackendHandler<T extends 
RDLStatement> implements DistS
     
     @Override
     public final ResponseHeader execute() throws SQLException {
-        String databaseName = DatabaseNameUtils.getDatabaseName(sqlStatement, 
connectionSession);
-        checkDatabaseName(databaseName);
-        return execute(databaseName, sqlStatement);
+        return 
execute(ProxyContext.getInstance().getDatabase(DatabaseNameUtils.getDatabaseName(sqlStatement,
 connectionSession)), sqlStatement);
     }
     
-    protected abstract ResponseHeader execute(String databaseName, T 
sqlStatement);
-    
-    private void checkDatabaseName(final String databaseName) {
-        ShardingSpherePreconditions.checkNotNull(databaseName, 
NoDatabaseSelectedException::new);
-        
ShardingSpherePreconditions.checkState(ProxyContext.getInstance().databaseExists(databaseName),
 () -> new UnknownDatabaseException(databaseName));
-    }
+    protected abstract ResponseHeader execute(ShardingSphereDatabase database, 
T sqlStatement);
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/NewRuleDefinitionBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/NewRuleDefinitionBackendHandler.java
index 01e0cc4b727..c601fd7b9d4 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/NewRuleDefinitionBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/NewRuleDefinitionBackendHandler.java
@@ -67,10 +67,10 @@ public final class NewRuleDefinitionBackendHandler<T 
extends RuleDefinitionState
     
     @SuppressWarnings("rawtypes")
     @Override
-    protected ResponseHeader execute(final String databaseName, final T 
sqlStatement) {
+    protected ResponseHeader execute(final ShardingSphereDatabase database, 
final T sqlStatement) {
         Optional<DatabaseRuleRDLExecutor> executor = 
TypedSPILoader.findService(DatabaseRuleRDLExecutor.class, 
sqlStatement.getClass());
         if (executor.isPresent()) {
-            execute(databaseName, sqlStatement, executor.get());
+            execute(database, sqlStatement, executor.get());
             return new UpdateResponseHeader(sqlStatement);
         }
         String modeType = 
ProxyContext.getInstance().getContextManager().getInstanceContext().getModeConfiguration().getType();
@@ -78,9 +78,8 @@ public final class NewRuleDefinitionBackendHandler<T extends 
RuleDefinitionState
     }
     
     @SuppressWarnings({"rawtypes", "unchecked"})
-    private void execute(final String databaseName, final T sqlStatement, 
final DatabaseRuleRDLExecutor executor) {
+    private void execute(final ShardingSphereDatabase database, final T 
sqlStatement, final DatabaseRuleRDLExecutor executor) {
         Class<? extends RuleConfiguration> ruleConfigClass = 
executor.getRuleConfigurationClass();
-        ShardingSphereDatabase database = 
ProxyContext.getInstance().getDatabase(databaseName);
         RuleConfiguration currentRuleConfig = 
findCurrentRuleConfiguration(database, ruleConfigClass).orElse(null);
         executor.checkSQLStatement(database, sqlStatement, currentRuleConfig);
         if (getRefreshStatus(sqlStatement, currentRuleConfig, executor)) {
@@ -90,12 +89,12 @@ public final class NewRuleDefinitionBackendHandler<T 
extends RuleDefinitionState
     }
     
     private Optional<RuleConfiguration> findCurrentRuleConfiguration(final 
ShardingSphereDatabase database, final Class<? extends RuleConfiguration> 
ruleConfigClass) {
-        for (RuleConfiguration each : 
database.getRuleMetaData().getConfigurations()) {
-            if (ruleConfigClass.isAssignableFrom(each.getClass())) {
-                return Optional.of(each);
-            }
-        }
-        return Optional.empty();
+        return 
database.getRuleMetaData().getConfigurations().stream().filter(each -> 
ruleConfigClass.isAssignableFrom(each.getClass())).findFirst();
+    }
+    
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    private boolean getRefreshStatus(final SQLStatement sqlStatement, final 
RuleConfiguration currentRuleConfig, final DatabaseRuleRDLExecutor<?, ?> 
executor) {
+        return !(executor instanceof DatabaseRuleRDLDropExecutor) || 
((DatabaseRuleRDLDropExecutor) executor).hasAnyOneToBeDropped(sqlStatement, 
currentRuleConfig);
     }
     
     @SuppressWarnings("rawtypes")
@@ -141,15 +140,6 @@ public final class NewRuleDefinitionBackendHandler<T 
extends RuleDefinitionState
         return 
ProxyContext.getInstance().getContextManager().getInstanceContext().getModeContextManager().alterRuleConfiguration(database.getName(),
 toBeAlteredRuleConfig);
     }
     
-    @SuppressWarnings({"unchecked", "rawtypes"})
-    private RuleConfiguration decorateRuleConfiguration(final 
ShardingSphereDatabase database, final RuleConfiguration ruleConfig) {
-        Optional<RuleConfigurationDecorator> decorator = 
TypedSPILoader.findService(RuleConfigurationDecorator.class, 
ruleConfig.getClass());
-        return decorator.map(optional -> optional.decorate(database.getName(),
-                
database.getResourceMetaData().getStorageUnits().entrySet().stream()
-                        .collect(Collectors.toMap(Entry::getKey, entry -> 
entry.getValue().getDataSource(), (oldValue, currentValue) -> oldValue, 
LinkedHashMap::new)),
-                database.getRuleMetaData().getRules(), 
ruleConfig)).orElse(ruleConfig);
-    }
-    
     @SuppressWarnings({"rawtypes", "unchecked"})
     private Collection<MetaDataVersion> processDrop(final 
ShardingSphereDatabase database,
                                                     final T sqlStatement, 
final DatabaseRuleRDLDropExecutor executor, final RuleConfiguration 
currentRuleConfig) {
@@ -171,12 +161,15 @@ public final class NewRuleDefinitionBackendHandler<T 
extends RuleDefinitionState
             // TODO refactor to new metadata refresh way
         }
         modeContextManager.removeRuleConfigurationItem(database.getName(), 
toBeDroppedRuleConfig);
-        final RuleConfiguration toBeAlteredRuleConfig = 
executor.buildToBeAlteredRuleConfiguration(currentRuleConfig, sqlStatement);
+        RuleConfiguration toBeAlteredRuleConfig = 
executor.buildToBeAlteredRuleConfiguration(currentRuleConfig, sqlStatement);
         return modeContextManager.alterRuleConfiguration(database.getName(), 
toBeAlteredRuleConfig);
     }
     
-    @SuppressWarnings({"rawtypes", "unchecked"})
-    private boolean getRefreshStatus(final SQLStatement sqlStatement, final 
RuleConfiguration currentRuleConfig, final DatabaseRuleRDLExecutor<?, ?> 
executor) {
-        return !(executor instanceof DatabaseRuleRDLDropExecutor) || 
((DatabaseRuleRDLDropExecutor) executor).hasAnyOneToBeDropped(sqlStatement, 
currentRuleConfig);
+    @SuppressWarnings("unchecked")
+    private RuleConfiguration decorateRuleConfiguration(final 
ShardingSphereDatabase database, final RuleConfiguration ruleConfig) {
+        return TypedSPILoader.findService(RuleConfigurationDecorator.class, 
ruleConfig.getClass()).map(optional -> optional.decorate(database.getName(),
+                
database.getResourceMetaData().getStorageUnits().entrySet().stream()
+                        .collect(Collectors.toMap(Entry::getKey, entry -> 
entry.getValue().getDataSource(), (oldValue, currentValue) -> oldValue, 
LinkedHashMap::new)),
+                database.getRuleMetaData().getRules(), 
ruleConfig)).orElse(ruleConfig);
     }
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
index c70e0c5f8bd..929cba8cdb0 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
@@ -57,15 +57,14 @@ public final class RuleDefinitionBackendHandler<T extends 
RuleDefinitionStatemen
     
     @SuppressWarnings({"rawtypes", "unchecked"})
     @Override
-    protected ResponseHeader execute(final String databaseName, final T 
sqlStatement) {
+    protected ResponseHeader execute(final ShardingSphereDatabase database, 
final T sqlStatement) {
         DatabaseRuleRDLExecutor executor = 
TypedSPILoader.getService(DatabaseRuleRDLExecutor.class, 
sqlStatement.getClass());
-        ShardingSphereDatabase database = 
ProxyContext.getInstance().getDatabase(databaseName);
         Class<? extends RuleConfiguration> ruleConfigClass = 
executor.getRuleConfigurationClass();
         RuleConfiguration currentRuleConfig = 
findCurrentRuleConfiguration(database, ruleConfigClass).orElse(null);
         executor.checkSQLStatement(database, sqlStatement, currentRuleConfig);
         if (getRefreshStatus(sqlStatement, currentRuleConfig, executor)) {
             
ProxyContext.getInstance().getContextManager().getInstanceContext().getModeContextManager()
-                    .alterRuleConfiguration(databaseName, 
processSQLStatement(database, sqlStatement, executor, currentRuleConfig));
+                    .alterRuleConfiguration(database.getName(), 
processSQLStatement(database, sqlStatement, executor, currentRuleConfig));
         }
         return new UpdateResponseHeader(sqlStatement);
     }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandler.java
index 565b81743cc..dcee8765946 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandler.java
@@ -34,6 +34,7 @@ import 
org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import 
org.apache.shardingsphere.infra.exception.core.external.ShardingSphereExternalException;
+import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
@@ -65,12 +66,12 @@ public final class AlterStorageUnitBackendHandler extends 
StorageUnitDefinitionB
     }
     
     @Override
-    public ResponseHeader execute(final String databaseName, final 
AlterStorageUnitStatement sqlStatement) {
-        checkSQLStatement(databaseName, sqlStatement);
+    public ResponseHeader execute(final ShardingSphereDatabase database, final 
AlterStorageUnitStatement sqlStatement) {
+        checkSQLStatement(database, sqlStatement);
         Map<String, DataSourcePoolProperties> propsMap = 
DataSourceSegmentsConverter.convert(databaseType, 
sqlStatement.getStorageUnits());
         validateHandler.validate(propsMap);
         try {
-            
ProxyContext.getInstance().getContextManager().getInstanceContext().getModeContextManager().alterStorageUnits(databaseName,
 propsMap);
+            
ProxyContext.getInstance().getContextManager().getInstanceContext().getModeContextManager().alterStorageUnits(database.getName(),
 propsMap);
         } catch (final SQLException | ShardingSphereExternalException ex) {
             log.error("Alter storage unit failed", ex);
             throw new 
InvalidStorageUnitsException(Collections.singleton(ex.getMessage()));
@@ -79,11 +80,11 @@ public final class AlterStorageUnitBackendHandler extends 
StorageUnitDefinitionB
     }
     
     @Override
-    public void checkSQLStatement(final String databaseName, final 
AlterStorageUnitStatement sqlStatement) {
+    public void checkSQLStatement(final ShardingSphereDatabase database, final 
AlterStorageUnitStatement sqlStatement) {
         Collection<String> toBeAlteredStorageUnitNames = 
getToBeAlteredStorageUnitNames(sqlStatement);
         checkDuplicatedStorageUnitNames(toBeAlteredStorageUnitNames);
-        checkStorageUnitNameExisted(databaseName, toBeAlteredStorageUnitNames);
-        checkDatabase(databaseName, sqlStatement);
+        checkStorageUnitNameExisted(database, toBeAlteredStorageUnitNames);
+        checkDatabase(database, sqlStatement);
     }
     
     private Collection<String> getToBeAlteredStorageUnitNames(final 
AlterStorageUnitStatement sqlStatement) {
@@ -99,14 +100,14 @@ public final class AlterStorageUnitBackendHandler extends 
StorageUnitDefinitionB
         return storageUnitNames.stream().filter(each -> 
storageUnitNames.stream().filter(each::equals).count() > 
1).collect(Collectors.toList());
     }
     
-    private void checkStorageUnitNameExisted(final String databaseName, final 
Collection<String> storageUnitNames) {
-        Map<String, StorageUnit> storageUnits = 
ProxyContext.getInstance().getDatabase(databaseName).getResourceMetaData().getStorageUnits();
+    private void checkStorageUnitNameExisted(final ShardingSphereDatabase 
database, final Collection<String> storageUnitNames) {
+        Map<String, StorageUnit> storageUnits = 
database.getResourceMetaData().getStorageUnits();
         Collection<String> notExistedStorageUnitNames = 
storageUnitNames.stream().filter(each -> 
!storageUnits.containsKey(each)).collect(Collectors.toList());
-        
ShardingSpherePreconditions.checkState(notExistedStorageUnitNames.isEmpty(), () 
-> new MissingRequiredStorageUnitsException(databaseName, 
notExistedStorageUnitNames));
+        
ShardingSpherePreconditions.checkState(notExistedStorageUnitNames.isEmpty(), () 
-> new MissingRequiredStorageUnitsException(database.getName(), 
notExistedStorageUnitNames));
     }
     
-    private void checkDatabase(final String databaseName, final 
AlterStorageUnitStatement sqlStatement) {
-        Map<String, StorageUnit> storageUnits = 
ProxyContext.getInstance().getDatabase(databaseName).getResourceMetaData().getStorageUnits();
+    private void checkDatabase(final ShardingSphereDatabase database, final 
AlterStorageUnitStatement sqlStatement) {
+        Map<String, StorageUnit> storageUnits = 
database.getResourceMetaData().getStorageUnits();
         Collection<String> invalidStorageUnitNames = 
sqlStatement.getStorageUnits().stream().collect(Collectors.toMap(DataSourceSegment::getName,
 each -> each)).entrySet().stream()
                 .filter(each -> !isIdenticalDatabase(each.getValue(), 
storageUnits.get(each.getKey()))).map(Entry::getKey).collect(Collectors.toSet());
         
ShardingSpherePreconditions.checkState(invalidStorageUnitNames.isEmpty(),
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandler.java
index 3e15a31b3ce..c3ec984d505 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandler.java
@@ -26,6 +26,7 @@ import 
org.apache.shardingsphere.distsql.segment.converter.DataSourceSegmentsCon
 import 
org.apache.shardingsphere.distsql.statement.rdl.create.RegisterStorageUnitStatement;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
+import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.rule.identifier.type.DataSourceContainedRule;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import 
org.apache.shardingsphere.infra.exception.core.external.ShardingSphereExternalException;
@@ -59,12 +60,12 @@ public final class RegisterStorageUnitBackendHandler 
extends StorageUnitDefiniti
     }
     
     @Override
-    public ResponseHeader execute(final String databaseName, final 
RegisterStorageUnitStatement sqlStatement) {
-        checkSQLStatement(databaseName, sqlStatement);
+    public ResponseHeader execute(final ShardingSphereDatabase database, final 
RegisterStorageUnitStatement sqlStatement) {
+        checkSQLStatement(database, sqlStatement);
         Map<String, DataSourcePoolProperties> propsMap = 
DataSourceSegmentsConverter.convert(databaseType, 
sqlStatement.getStorageUnits());
         if (sqlStatement.isIfNotExists()) {
-            Collection<String> currentStorageUnits = 
getCurrentStorageUnitNames(databaseName);
-            Collection<String> logicalDataSourceNames = 
getLogicalDataSourceNames(databaseName);
+            Collection<String> currentStorageUnits = 
getCurrentStorageUnitNames(database);
+            Collection<String> logicalDataSourceNames = 
getLogicalDataSourceNames(database);
             propsMap.keySet().removeIf(currentStorageUnits::contains);
             propsMap.keySet().removeIf(logicalDataSourceNames::contains);
         }
@@ -73,7 +74,7 @@ public final class RegisterStorageUnitBackendHandler extends 
StorageUnitDefiniti
         }
         validateHandler.validate(propsMap);
         try {
-            
ProxyContext.getInstance().getContextManager().getInstanceContext().getModeContextManager().registerStorageUnits(databaseName,
 propsMap);
+            
ProxyContext.getInstance().getContextManager().getInstanceContext().getModeContextManager().registerStorageUnits(database.getName(),
 propsMap);
         } catch (final SQLException | ShardingSphereExternalException ex) {
             log.error("Register storage unit failed", ex);
             throw new 
InvalidStorageUnitsException(Collections.singleton(ex.getMessage()));
@@ -82,18 +83,18 @@ public final class RegisterStorageUnitBackendHandler 
extends StorageUnitDefiniti
     }
     
     @Override
-    public void checkSQLStatement(final String databaseName, final 
RegisterStorageUnitStatement sqlStatement) {
+    public void checkSQLStatement(final ShardingSphereDatabase database, final 
RegisterStorageUnitStatement sqlStatement) {
         Collection<String> dataSourceNames = new 
ArrayList<>(sqlStatement.getStorageUnits().size());
         if (!sqlStatement.isIfNotExists()) {
-            checkDuplicatedDataSourceNames(databaseName, dataSourceNames, 
sqlStatement);
-            checkDuplicatedLogicalDataSourceNames(databaseName, 
dataSourceNames);
+            checkDuplicatedDataSourceNames(database, dataSourceNames, 
sqlStatement);
+            checkDuplicatedLogicalDataSourceNames(database, dataSourceNames);
         }
     }
     
-    private void checkDuplicatedDataSourceNames(final String databaseName, 
final Collection<String> dataSourceNames, final RegisterStorageUnitStatement 
sqlStatement) {
+    private void checkDuplicatedDataSourceNames(final ShardingSphereDatabase 
database, final Collection<String> dataSourceNames, final 
RegisterStorageUnitStatement sqlStatement) {
         Collection<String> duplicatedDataSourceNames = new 
HashSet<>(sqlStatement.getStorageUnits().size(), 1F);
         for (DataSourceSegment each : sqlStatement.getStorageUnits()) {
-            if (dataSourceNames.contains(each.getName()) || 
getCurrentStorageUnitNames(databaseName).contains(each.getName())) {
+            if (dataSourceNames.contains(each.getName()) || 
getCurrentStorageUnitNames(database).contains(each.getName())) {
                 duplicatedDataSourceNames.add(each.getName());
             }
             dataSourceNames.add(each.getName());
@@ -101,8 +102,8 @@ public final class RegisterStorageUnitBackendHandler 
extends StorageUnitDefiniti
         
ShardingSpherePreconditions.checkState(duplicatedDataSourceNames.isEmpty(), () 
-> new DuplicateStorageUnitException(duplicatedDataSourceNames));
     }
     
-    private void checkDuplicatedLogicalDataSourceNames(final String 
databaseName, final Collection<String> requiredDataSourceNames) {
-        Collection<String> logicalDataSourceNames = 
getLogicalDataSourceNames(databaseName);
+    private void checkDuplicatedLogicalDataSourceNames(final 
ShardingSphereDatabase database, final Collection<String> 
requiredDataSourceNames) {
+        Collection<String> logicalDataSourceNames = 
getLogicalDataSourceNames(database);
         if (logicalDataSourceNames.isEmpty()) {
             return;
         }
@@ -111,12 +112,11 @@ public final class RegisterStorageUnitBackendHandler 
extends StorageUnitDefiniti
                 () -> new 
InvalidStorageUnitsException(Collections.singleton(String.format("%s already 
existed in rule", duplicatedDataSourceNames))));
     }
     
-    private Collection<String> getCurrentStorageUnitNames(final String 
databaseName) {
-        return 
ProxyContext.getInstance().getContextManager().getStorageUnits(databaseName).keySet();
+    private Collection<String> getCurrentStorageUnitNames(final 
ShardingSphereDatabase database) {
+        return 
ProxyContext.getInstance().getContextManager().getStorageUnits(database.getName()).keySet();
     }
     
-    private Collection<String> getLogicalDataSourceNames(final String 
databaseName) {
-        return 
ProxyContext.getInstance().getDatabase(databaseName).getRuleMetaData().findRules(DataSourceContainedRule.class).stream()
-                .map(each -> 
each.getDataSourceMapper().keySet()).flatMap(Collection::stream).collect(Collectors.toList());
+    private Collection<String> getLogicalDataSourceNames(final 
ShardingSphereDatabase database) {
+        return 
database.getRuleMetaData().findRules(DataSourceContainedRule.class).stream().map(each
 -> 
each.getDataSourceMapper().keySet()).flatMap(Collection::stream).collect(Collectors.toList());
     }
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/StorageUnitDefinitionBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/StorageUnitDefinitionBackendHandler.java
index 9b4d3af9ebf..6dbf4ee8bbb 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/StorageUnitDefinitionBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/StorageUnitDefinitionBackendHandler.java
@@ -18,6 +18,7 @@
 package 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.storage.unit;
 
 import 
org.apache.shardingsphere.distsql.statement.rdl.StorageUnitDefinitionStatement;
+import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.RDLBackendHandler;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 
@@ -32,5 +33,5 @@ public abstract class StorageUnitDefinitionBackendHandler<T 
extends StorageUnitD
         super(sqlStatement, connectionSession);
     }
     
-    protected abstract void checkSQLStatement(String databaseName, T 
sqlStatement);
+    protected abstract void checkSQLStatement(ShardingSphereDatabase database, 
T sqlStatement);
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java
index 975b50abaa8..8b1b84dc72c 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java
@@ -53,10 +53,10 @@ public final class UnregisterStorageUnitBackendHandler 
extends StorageUnitDefini
     }
     
     @Override
-    public ResponseHeader execute(final String databaseName, final 
UnregisterStorageUnitStatement sqlStatement) {
-        checkSQLStatement(databaseName, sqlStatement);
+    public ResponseHeader execute(final ShardingSphereDatabase database, final 
UnregisterStorageUnitStatement sqlStatement) {
+        checkSQLStatement(database, sqlStatement);
         try {
-            
ProxyContext.getInstance().getContextManager().getInstanceContext().getModeContextManager().unregisterStorageUnits(databaseName,
 sqlStatement.getStorageUnitNames());
+            
ProxyContext.getInstance().getContextManager().getInstanceContext().getModeContextManager().unregisterStorageUnits(database.getName(),
 sqlStatement.getStorageUnitNames());
         } catch (final SQLException | ShardingSphereServerException ex) {
             log.error("Unregister storage unit failed", ex);
             throw new 
InvalidStorageUnitsException(Collections.singleton(ex.getMessage()));
@@ -65,21 +65,20 @@ public final class UnregisterStorageUnitBackendHandler 
extends StorageUnitDefini
     }
     
     @Override
-    public void checkSQLStatement(final String databaseName, final 
UnregisterStorageUnitStatement sqlStatement) {
+    public void checkSQLStatement(final ShardingSphereDatabase database, final 
UnregisterStorageUnitStatement sqlStatement) {
         if (!sqlStatement.isIfExists()) {
-            checkExisted(databaseName, sqlStatement.getStorageUnitNames());
+            checkExisted(database, sqlStatement.getStorageUnitNames());
         }
-        checkInUsed(databaseName, sqlStatement);
+        checkInUsed(database, sqlStatement);
     }
     
-    private void checkExisted(final String databaseName, final 
Collection<String> storageUnitNames) {
-        Map<String, StorageUnit> storageUnits = 
ProxyContext.getInstance().getDatabase(databaseName).getResourceMetaData().getStorageUnits();
+    private void checkExisted(final ShardingSphereDatabase database, final 
Collection<String> storageUnitNames) {
+        Map<String, StorageUnit> storageUnits = 
database.getResourceMetaData().getStorageUnits();
         Collection<String> notExistedStorageUnits = 
storageUnitNames.stream().filter(each -> 
!storageUnits.containsKey(each)).collect(Collectors.toList());
-        
ShardingSpherePreconditions.checkState(notExistedStorageUnits.isEmpty(), () -> 
new MissingRequiredStorageUnitsException(databaseName, notExistedStorageUnits));
+        
ShardingSpherePreconditions.checkState(notExistedStorageUnits.isEmpty(), () -> 
new MissingRequiredStorageUnitsException(database.getName(), 
notExistedStorageUnits));
     }
     
-    private void checkInUsed(final String databaseName, final 
UnregisterStorageUnitStatement sqlStatement) {
-        ShardingSphereDatabase database = 
ProxyContext.getInstance().getDatabase(databaseName);
+    private void checkInUsed(final ShardingSphereDatabase database, final 
UnregisterStorageUnitStatement sqlStatement) {
         Map<String, Collection<Class<? extends ShardingSphereRule>>> 
inUsedStorageUnits = 
database.getRuleMetaData().getInUsedStorageUnitNameAndRulesMap();
         Collection<String> inUsedStorageUnitNames = 
inUsedStorageUnits.keySet();
         inUsedStorageUnitNames.retainAll(sqlStatement.getStorageUnitNames());
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandlerTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandlerTest.java
index 2be5eb71c78..d197eb9d642 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandlerTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandlerTest.java
@@ -54,7 +54,6 @@ class RuleDefinitionBackendHandlerTest {
         ShardingSphereDatabase database = mockDatabase();
         ContextManager contextManager = mockContextManager(database);
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        
when(ProxyContext.getInstance().databaseExists("foo_db")).thenReturn(true);
         
when(ProxyContext.getInstance().getDatabase("foo_db")).thenReturn(database);
         ResponseHeader response = new RuleDefinitionBackendHandler<>(new 
CreateFixtureRuleStatement(), connectionSession).execute();
         assertThat(response, instanceOf(UpdateResponseHeader.class));
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandlerTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandlerTest.java
index ed9b7bd4504..d619aa2d5f2 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandlerTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandlerTest.java
@@ -41,6 +41,7 @@ import org.apache.shardingsphere.test.mock.StaticMockSettings;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.internal.configuration.plugins.Plugins;
 
@@ -60,7 +61,7 @@ import static org.mockito.Mockito.when;
 @StaticMockSettings(ProxyContext.class)
 class AlterStorageUnitBackendHandlerTest {
     
-    @Mock
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private ShardingSphereDatabase database;
     
     private AlterStorageUnitBackendHandler handler;
@@ -85,12 +86,12 @@ class AlterStorageUnitBackendHandlerTest {
         
when(storageUnit.getConnectionProperties()).thenReturn(connectionProperties);
         
when(resourceMetaData.getStorageUnits()).thenReturn(Collections.singletonMap("ds_0",
 storageUnit));
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
-        assertThat(handler.execute("foo_db", 
createAlterStorageUnitStatement("ds_0")), 
instanceOf(UpdateResponseHeader.class));
+        assertThat(handler.execute(database, 
createAlterStorageUnitStatement("ds_0")), 
instanceOf(UpdateResponseHeader.class));
     }
     
     @Test
     void assertExecuteWithDuplicateStorageUnitNames() {
-        assertThrows(DuplicateStorageUnitException.class, () -> 
handler.execute("foo_db", 
createAlterStorageUnitStatementWithDuplicateStorageUnitNames()));
+        assertThrows(DuplicateStorageUnitException.class, () -> 
handler.execute(database, 
createAlterStorageUnitStatementWithDuplicateStorageUnitNames()));
     }
     
     @Test
@@ -99,7 +100,7 @@ class AlterStorageUnitBackendHandlerTest {
         
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("foo_db",
 database));
         ContextManager contextManager = mockContextManager(metaDataContexts);
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        assertThrows(MissingRequiredStorageUnitsException.class, () -> 
handler.execute("foo_db", createAlterStorageUnitStatement("not_existed")));
+        assertThrows(MissingRequiredStorageUnitsException.class, () -> 
handler.execute(database, createAlterStorageUnitStatement("not_existed")));
     }
     
     @Test
@@ -113,7 +114,7 @@ class AlterStorageUnitBackendHandlerTest {
         
when(storageUnit.getConnectionProperties()).thenReturn(connectionProperties);
         
when(resourceMetaData.getStorageUnits()).thenReturn(Collections.singletonMap("ds_0",
 storageUnit));
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
-        assertThrows(InvalidStorageUnitsException.class, () -> 
handler.execute("foo_db", createAlterStorageUnitStatement("ds_0")));
+        assertThrows(InvalidStorageUnitsException.class, () -> 
handler.execute(database, createAlterStorageUnitStatement("ds_0")));
     }
     
     private ContextManager mockContextManager(final MetaDataContexts 
metaDataContexts) {
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandlerTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandlerTest.java
index 4af2f7b6624..411f3877114 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandlerTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandlerTest.java
@@ -71,6 +71,7 @@ class RegisterStorageUnitBackendHandlerTest {
     void setUp() throws ReflectiveOperationException {
         ConnectionSession connectionSession = mock(ConnectionSession.class);
         
when(connectionSession.getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
 "FIXTURE"));
+        when(database.getName()).thenReturn("foo_db");
         when(database.getRuleMetaData()).thenReturn(mock(RuleMetaData.class));
         handler = new 
RegisterStorageUnitBackendHandler(mock(RegisterStorageUnitStatement.class), 
connectionSession);
         
Plugins.getMemberAccessor().set(handler.getClass().getDeclaredField("validateHandler"),
 handler, mock(DataSourcePoolPropertiesValidateHandler.class));
@@ -82,7 +83,7 @@ class RegisterStorageUnitBackendHandlerTest {
         
when(contextManager.getMetaDataContexts()).thenReturn(mock(MetaDataContexts.class,
 RETURNS_DEEP_STUBS));
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
         
when(ProxyContext.getInstance().getDatabase("foo_db")).thenReturn(database);
-        ResponseHeader responseHeader = handler.execute("foo_db", 
createRegisterStorageUnitStatement());
+        ResponseHeader responseHeader = handler.execute(database, 
createRegisterStorageUnitStatement());
         assertThat(responseHeader, instanceOf(UpdateResponseHeader.class));
     }
     
@@ -91,7 +92,7 @@ class RegisterStorageUnitBackendHandlerTest {
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts()).thenReturn(mock(MetaDataContexts.class,
 RETURNS_DEEP_STUBS));
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        assertThrows(DuplicateStorageUnitException.class, () -> 
handler.execute("foo_db", 
createRegisterStorageUnitStatementWithDuplicateStorageUnitNames()));
+        assertThrows(DuplicateStorageUnitException.class, () -> 
handler.execute(database, 
createRegisterStorageUnitStatementWithDuplicateStorageUnitNames()));
     }
     
     @Test
@@ -99,7 +100,7 @@ class RegisterStorageUnitBackendHandlerTest {
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getStorageUnits("foo_db").keySet()).thenReturn(Collections.singleton("ds_0"));
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        assertThrows(DuplicateStorageUnitException.class, () -> 
handler.execute("foo_db", createRegisterStorageUnitStatement()));
+        assertThrows(DuplicateStorageUnitException.class, () -> 
handler.execute(database, createRegisterStorageUnitStatement()));
     }
     
     @Test
@@ -111,14 +112,14 @@ class RegisterStorageUnitBackendHandlerTest {
         
when(database.getRuleMetaData().findRules(DataSourceContainedRule.class)).thenReturn(Collections.singleton(rule));
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
         
when(ProxyContext.getInstance().getDatabase("foo_db")).thenReturn(database);
-        assertThrows(InvalidStorageUnitsException.class, () -> 
handler.execute("foo_db", createRegisterStorageUnitStatement()));
+        assertThrows(InvalidStorageUnitsException.class, () -> 
handler.execute(database, createRegisterStorageUnitStatement()));
     }
     
     @Test
     void assertCheckStatementWithIfNotExists() {
         RegisterStorageUnitStatement 
registerStorageUnitStatementWithIfNotExists = new 
RegisterStorageUnitStatement(true, Collections.singleton(
                 new HostnameAndPortBasedDataSourceSegment("ds_0", "127.0.0.1", 
"3306", "db_1", "root", "", new Properties())));
-        handler.checkSQLStatement("foo_db", 
registerStorageUnitStatementWithIfNotExists);
+        handler.checkSQLStatement(database, 
registerStorageUnitStatementWithIfNotExists);
     }
     
     private RegisterStorageUnitStatement createRegisterStorageUnitStatement() {
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
index 15c93a1c0fd..78fcbdde0f4 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
@@ -44,6 +44,8 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Answers;
 import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
 
 import java.sql.SQLException;
 import java.util.Collections;
@@ -58,6 +60,7 @@ import static org.mockito.Mockito.when;
 
 @ExtendWith(AutoMockExtension.class)
 @StaticMockSettings(ProxyContext.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
 class UnregisterStorageUnitBackendHandlerTest {
     
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
@@ -87,6 +90,7 @@ class UnregisterStorageUnitBackendHandlerTest {
         
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.singletonMap("url",
 "jdbc:mock://127.0.0.1/foo_db"));
         StorageUnit storageUnit = new StorageUnit(mock(StorageNode.class), 
dataSourcePoolProps, new MockedDataSource());
         
when(resourceMetaData.getStorageUnits()).thenReturn(Collections.singletonMap("foo_ds",
 storageUnit));
+        when(database.getName()).thenReturn("foo_db");
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         contextManager = mockContextManager();
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
@@ -112,14 +116,14 @@ class UnregisterStorageUnitBackendHandlerTest {
         
when(database.getRuleMetaData().getInUsedStorageUnitNameAndRulesMap()).thenReturn(Collections.emptyMap());
         
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db")).thenReturn(database);
         UnregisterStorageUnitStatement unregisterStorageUnitStatement = new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false, false);
-        assertThat(handler.execute("foo_db", unregisterStorageUnitStatement), 
instanceOf(UpdateResponseHeader.class));
+        assertThat(handler.execute(database, unregisterStorageUnitStatement), 
instanceOf(UpdateResponseHeader.class));
         verify(modeContextManager).unregisterStorageUnits("foo_db", 
unregisterStorageUnitStatement.getStorageUnitNames());
     }
     
     @Test
     void assertStorageUnitNameNotExistedExecute() {
         
when(ProxyContext.getInstance().getDatabase("foo_db").getResourceMetaData().getStorageUnits()).thenReturn(Collections.emptyMap());
-        assertThrows(MissingRequiredStorageUnitsException.class, () -> 
handler.execute("foo_db", new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false, false)));
+        assertThrows(MissingRequiredStorageUnitsException.class, () -> 
handler.execute(database, new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false, false)));
     }
     
     @Test
@@ -132,7 +136,7 @@ class UnregisterStorageUnitBackendHandlerTest {
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db")).thenReturn(database);
         assertThrows(StorageUnitInUsedException.class,
-                () -> handler.execute("foo_db", new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false, false)));
+                () -> handler.execute(database, new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false, false)));
     }
     
     @Test
@@ -146,7 +150,7 @@ class UnregisterStorageUnitBackendHandlerTest {
         
when(resourceMetaData.getStorageUnits()).thenReturn(Collections.singletonMap("foo_ds",
 storageUnit));
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db")).thenReturn(database);
-        assertThrows(StorageUnitInUsedException.class, () -> 
handler.execute("foo_db", new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false, false)));
+        assertThrows(StorageUnitInUsedException.class, () -> 
handler.execute(database, new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false, false)));
     }
     
     @Test
@@ -161,14 +165,14 @@ class UnregisterStorageUnitBackendHandlerTest {
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db")).thenReturn(database);
         UnregisterStorageUnitStatement unregisterStorageUnitStatement = new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), true, false);
-        assertThat(handler.execute("foo_db", unregisterStorageUnitStatement), 
instanceOf(UpdateResponseHeader.class));
+        assertThat(handler.execute(database, unregisterStorageUnitStatement), 
instanceOf(UpdateResponseHeader.class));
         verify(modeContextManager).unregisterStorageUnits("foo_db", 
unregisterStorageUnitStatement.getStorageUnitNames());
     }
     
     @Test
     void assertExecuteWithIfExists() throws SQLException {
         UnregisterStorageUnitStatement unregisterStorageUnitStatement = new 
UnregisterStorageUnitStatement(true, Collections.singleton("foo_ds"), true, 
false);
-        assertThat(handler.execute("foo_db", unregisterStorageUnitStatement), 
instanceOf(UpdateResponseHeader.class));
+        assertThat(handler.execute(database, unregisterStorageUnitStatement), 
instanceOf(UpdateResponseHeader.class));
         verify(modeContextManager).unregisterStorageUnits("foo_db", 
unregisterStorageUnitStatement.getStorageUnitNames());
     }
     
@@ -178,6 +182,6 @@ class UnregisterStorageUnitBackendHandlerTest {
         
when(shadowRule.getDataSourceMapper()).thenReturn(Collections.singletonMap("", 
Collections.singleton("foo_ds")));
         
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db")).thenReturn(database);
         UnregisterStorageUnitStatement unregisterStorageUnitStatement = new 
UnregisterStorageUnitStatement(true, Collections.singleton("foo_ds"), true, 
false);
-        assertThrows(DistSQLException.class, () -> handler.execute("foo_db", 
unregisterStorageUnitStatement));
+        assertThrows(DistSQLException.class, () -> handler.execute(database, 
unregisterStorageUnitStatement));
     }
 }


Reply via email to