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

jianglongtao 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 79aed431a64 Optimize distsql about storage unit (#21870)
79aed431a64 is described below

commit 79aed431a64c2cebd043668dc8139c1cdd6a7adb
Author: jiangML <[email protected]>
AuthorDate: Tue Nov 1 14:32:41 2022 +0800

    Optimize distsql about storage unit (#21870)
    
    * Rename storage unit related classes & optimize test
    
    * Update distsql tests on storage unit
    
    * update test case
    
    * Modify class description
    
    * Modify class description
---
 .../rql/show/ShowStorageUnitsStatement.java        |  11 +-
 .../rql/show/ShowUnusedResourcesStatement.java     |  39 -----
 .../resource/DuplicateResourceException.java       |   2 +-
 .../resource/InvalidResourcesException.java        |   2 +-
 .../MissingRequiredResourcesException.java         |   2 +-
 .../distsql/rdl/RDLBackendHandlerFactory.java      |  12 +-
 ...er.java => AlterStorageUnitBackendHandler.java} |   6 +-
 ...java => RegisterStorageUnitBackendHandler.java} |   6 +-
 ...va => UnregisterStorageUnitBackendHandler.java} |   6 +-
 ...sultSet.java => StorageUnitQueryResultSet.java} |  20 +--
 .../resource/UnusedDataSourceQueryResultSet.java   | 162 ---------------------
 ...dingsphere.infra.distsql.query.DistSQLResultSet |   3 +-
 .../distsql/DistSQLBackendHandlerFactoryTest.java  |   8 -
 .../distsql/rdl/RDLBackendHandlerFactoryTest.java  |  18 +--
 ...ava => AlterStorageUnitBackendHandlerTest.java} |  26 ++--
 ... => RegisterStorageUnitBackendHandlerTest.java} |  20 +--
 ...> UnregisterStorageUnitBackendHandlerTest.java} |  30 ++--
 .../distsql/rql/DataSourceQueryResultSetTest.java  |  85 -----------
 ...est.java => StorageUnitQueryResultSetTest.java} |  38 ++++-
 .../statement/available/FromDatabaseAvailable.java |   4 +-
 .../statement/distsql/rdl/RDLStatementAssert.java  |  18 +--
 ...t.java => AlterStorageUnitStatementAssert.java} |   8 +-
 ...ava => RegisterStorageUnitStatementAssert.java} |   8 +-
 ...a => UnregisterStorageUnitStatementAssert.java} |   8 +-
 .../jaxb/cases/domain/SQLParserTestCases.java      |  18 +--
 ...java => AlterStorageUnitStatementTestCase.java} |   4 +-
 ...a => RegisterStorageUnitStatementTestCase.java} |   4 +-
 ...=> UnregisterStorageUnitStatementTestCase.java} |   4 +-
 test/parser/src/main/resources/case/dal/alter.xml  |   4 +-
 test/parser/src/main/resources/case/rdl/alter.xml  |  36 ++---
 test/parser/src/main/resources/case/rdl/create.xml |  40 ++---
 test/parser/src/main/resources/case/rdl/drop.xml   |  12 +-
 .../src/main/resources/sql/supported/rdl/alter.xml |  18 +--
 .../main/resources/sql/supported/rdl/create.xml    |  20 +--
 .../src/main/resources/sql/supported/rdl/drop.xml  |   6 +-
 35 files changed, 226 insertions(+), 482 deletions(-)

diff --git 
a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowStorageUnitsStatement.java
 
b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowStorageUnitsStatement.java
index 132e7221c37..6dc6486812f 100644
--- 
a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowStorageUnitsStatement.java
+++ 
b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowStorageUnitsStatement.java
@@ -26,7 +26,7 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.statement.available.FromD
 import java.util.Optional;
 
 /**
- * Show resources statement.
+ * Show storage unit statement.
  */
 @Getter
 @RequiredArgsConstructor
@@ -40,4 +40,13 @@ public final class ShowStorageUnitsStatement extends 
RQLStatement implements Fro
     public Optional<DatabaseSegment> getDatabase() {
         return Optional.ofNullable(database);
     }
+    
+    /**
+     * get usage count.
+     * 
+     * @return usage count
+     */
+    public Optional<Integer> getUsageCount() {
+        return Optional.ofNullable(usageCount);
+    }
 }
diff --git 
a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowUnusedResourcesStatement.java
 
b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowUnusedResourcesStatement.java
deleted file mode 100644
index 1a87ed16115..00000000000
--- 
a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowUnusedResourcesStatement.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
-
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.rql.RQLStatement;
-import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
-import 
org.apache.shardingsphere.sql.parser.sql.common.statement.available.FromDatabaseAvailable;
-
-import java.util.Optional;
-
-/**
- * Show unused resources statement.
- */
-@RequiredArgsConstructor
-public final class ShowUnusedResourcesStatement extends RQLStatement 
implements FromDatabaseAvailable {
-    
-    private final DatabaseSegment database;
-    
-    @Override
-    public Optional<DatabaseSegment> getDatabase() {
-        return Optional.ofNullable(database);
-    }
-}
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/DuplicateResourceException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/DuplicateResourceException.java
index 6ef326e6563..b7cffb5e85b 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/DuplicateResourceException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/DuplicateResourceException.java
@@ -29,6 +29,6 @@ public final class DuplicateResourceException extends 
ResourceDefinitionViolatio
     private static final long serialVersionUID = 2103793827572264148L;
     
     public DuplicateResourceException(final Collection<String> resourceNames) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 4, "Duplicate resource 
names `%s`.", resourceNames);
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 4, "Duplicate storage unit 
names `%s`.", resourceNames);
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/InvalidResourcesException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/InvalidResourcesException.java
index 9d0f126d673..7d43961d17d 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/InvalidResourcesException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/InvalidResourcesException.java
@@ -29,6 +29,6 @@ public final class InvalidResourcesException extends 
ResourceDefinitionViolation
     private static final long serialVersionUID = 7029641448948791509L;
     
     public InvalidResourcesException(final Collection<String> errorMessages) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 0, "Can not process 
invalid resources, error message is: %s", errorMessages);
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 0, "Can not process 
invalid storage units, error message is: %s", errorMessages);
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/MissingRequiredResourcesException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/MissingRequiredResourcesException.java
index f3a75868936..fe6ded445cf 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/MissingRequiredResourcesException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/distsql/exception/resource/MissingRequiredResourcesException.java
@@ -29,6 +29,6 @@ public final class MissingRequiredResourcesException extends 
ResourceDefinitionV
     private static final long serialVersionUID = 1704331180489268L;
     
     public MissingRequiredResourcesException(final String databaseName, final 
Collection<String> resourceNames) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 1, "Resources `%s` do not 
exist in database `%s`.", resourceNames, databaseName);
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 1, "Storage units `%s` do 
not exist in database `%s`.", resourceNames, databaseName);
     }
 }
diff --git 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactory.java
 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactory.java
index 06413c31903..b8de8f2b29c 100644
--- 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactory.java
+++ 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactory.java
@@ -25,9 +25,9 @@ import 
org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorage
 import 
org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
 import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.AddResourceBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.AlterResourceBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.DropResourceBackendHandler;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.RegisterStorageUnitBackendHandler;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.AlterStorageUnitBackendHandler;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.UnregisterStorageUnitBackendHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule.RuleDefinitionBackendHandler;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 
@@ -46,13 +46,13 @@ public final class RDLBackendHandlerFactory {
      */
     public static ProxyBackendHandler newInstance(final RDLStatement 
sqlStatement, final ConnectionSession connectionSession) {
         if (sqlStatement instanceof RegisterStorageUnitStatement) {
-            return new 
AddResourceBackendHandler((RegisterStorageUnitStatement) sqlStatement, 
connectionSession);
+            return new 
RegisterStorageUnitBackendHandler((RegisterStorageUnitStatement) sqlStatement, 
connectionSession);
         }
         if (sqlStatement instanceof AlterStorageUnitStatement) {
-            return new AlterResourceBackendHandler((AlterStorageUnitStatement) 
sqlStatement, connectionSession);
+            return new 
AlterStorageUnitBackendHandler((AlterStorageUnitStatement) sqlStatement, 
connectionSession);
         }
         if (sqlStatement instanceof UnregisterStorageUnitStatement) {
-            return new 
DropResourceBackendHandler((UnregisterStorageUnitStatement) sqlStatement, 
connectionSession);
+            return new 
UnregisterStorageUnitBackendHandler((UnregisterStorageUnitStatement) 
sqlStatement, connectionSession);
         }
         return new RuleDefinitionBackendHandler<>((RuleDefinitionStatement) 
sqlStatement, connectionSession);
     }
diff --git 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterResourceBackendHandler.java
 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterStorageUnitBackendHandler.java
similarity index 96%
rename from 
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterResourceBackendHandler.java
rename to 
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterStorageUnitBackendHandler.java
index ccd0d02ff88..b6816e21759 100644
--- 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterResourceBackendHandler.java
+++ 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterStorageUnitBackendHandler.java
@@ -49,16 +49,16 @@ import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
 /**
- * Alter resource backend handler.
+ * Alter storage unit backend handler.
  */
 @Slf4j
-public final class AlterResourceBackendHandler extends 
DatabaseRequiredBackendHandler<AlterStorageUnitStatement> {
+public final class AlterStorageUnitBackendHandler extends 
DatabaseRequiredBackendHandler<AlterStorageUnitStatement> {
     
     private final DatabaseType databaseType;
     
     private final DataSourcePropertiesValidator validator;
     
-    public AlterResourceBackendHandler(final AlterStorageUnitStatement 
sqlStatement, final ConnectionSession connectionSession) {
+    public AlterStorageUnitBackendHandler(final AlterStorageUnitStatement 
sqlStatement, final ConnectionSession connectionSession) {
         super(sqlStatement, connectionSession);
         databaseType = connectionSession.getProtocolType();
         validator = new DataSourcePropertiesValidator();
diff --git 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AddResourceBackendHandler.java
 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/RegisterStorageUnitBackendHandler.java
similarity index 93%
rename from 
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AddResourceBackendHandler.java
rename to 
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/RegisterStorageUnitBackendHandler.java
index 44519281f9e..f2279b4dc3b 100644
--- 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AddResourceBackendHandler.java
+++ 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/RegisterStorageUnitBackendHandler.java
@@ -42,16 +42,16 @@ import java.util.HashSet;
 import java.util.Map;
 
 /**
- * Add resource backend handler.
+ * Register storage unit backend handler.
  */
 @Slf4j
-public final class AddResourceBackendHandler extends 
DatabaseRequiredBackendHandler<RegisterStorageUnitStatement> {
+public final class RegisterStorageUnitBackendHandler extends 
DatabaseRequiredBackendHandler<RegisterStorageUnitStatement> {
     
     private final DatabaseType databaseType;
     
     private final DataSourcePropertiesValidator validator;
     
-    public AddResourceBackendHandler(final RegisterStorageUnitStatement 
sqlStatement, final ConnectionSession connectionSession) {
+    public RegisterStorageUnitBackendHandler(final 
RegisterStorageUnitStatement sqlStatement, final ConnectionSession 
connectionSession) {
         super(sqlStatement, connectionSession);
         databaseType = connectionSession.getProtocolType();
         validator = new DataSourcePropertiesValidator();
diff --git 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/DropResourceBackendHandler.java
 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitBackendHandler.java
similarity index 95%
rename from 
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/DropResourceBackendHandler.java
rename to 
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitBackendHandler.java
index 5e40d077da0..7b6658b7a6d 100644
--- 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/DropResourceBackendHandler.java
+++ 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitBackendHandler.java
@@ -46,12 +46,12 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
- * Drop resource backend handler.
+ * Unregister storage unit backend handler.
  */
 @Slf4j
-public final class DropResourceBackendHandler extends 
DatabaseRequiredBackendHandler<UnregisterStorageUnitStatement> {
+public final class UnregisterStorageUnitBackendHandler extends 
DatabaseRequiredBackendHandler<UnregisterStorageUnitStatement> {
     
-    public DropResourceBackendHandler(final UnregisterStorageUnitStatement 
sqlStatement, final ConnectionSession connectionSession) {
+    public UnregisterStorageUnitBackendHandler(final 
UnregisterStorageUnitStatement sqlStatement, final ConnectionSession 
connectionSession) {
         super(sqlStatement, connectionSession);
     }
     
diff --git 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/DataSourceQueryResultSet.java
 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/StorageUnitQueryResultSet.java
similarity index 93%
rename from 
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/DataSourceQueryResultSet.java
rename to 
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/StorageUnitQueryResultSet.java
index f21847bddfb..2b63fe0bd42 100644
--- 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/DataSourceQueryResultSet.java
+++ 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/StorageUnitQueryResultSet.java
@@ -43,13 +43,14 @@ import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
- * Query result set for show data source.
+ * Query result set for show storage units.
  */
-public final class DataSourceQueryResultSet implements 
DatabaseDistSQLResultSet {
+public final class StorageUnitQueryResultSet implements 
DatabaseDistSQLResultSet {
     
     private static final String CONNECTION_TIMEOUT_MILLISECONDS = 
"connectionTimeoutMilliseconds";
     
@@ -73,18 +74,17 @@ public final class DataSourceQueryResultSet implements 
DatabaseDistSQLResultSet
     public void init(final ShardingSphereDatabase database, final SQLStatement 
sqlStatement) {
         resourceMetaData = database.getResourceMetaData();
         dataSourcePropsMap = new 
LinkedHashMap<>(database.getResourceMetaData().getDataSources().size(), 1);
-        Integer usageCount = ((ShowStorageUnitsStatement) 
sqlStatement).getUsageCount();
-        if (null == usageCount) {
-            for (Entry<String, DataSource> entry : 
database.getResourceMetaData().getDataSources().entrySet()) {
-                dataSourcePropsMap.put(entry.getKey(), 
DataSourcePropertiesCreator.create(entry.getValue()));
-            }
-        } else {
+        Optional<Integer> usageCountOptional = ((ShowStorageUnitsStatement) 
sqlStatement).getUsageCount();
+        if (usageCountOptional.isPresent()) {
             Multimap<String, String> inUsedMultiMap = 
getInUsedResources(database.getRuleMetaData());
             for (Entry<String, DataSource> entry : 
database.getResourceMetaData().getDataSources().entrySet()) {
                 Integer currentUsageCount = 
inUsedMultiMap.containsKey(entry.getKey()) ? 
inUsedMultiMap.get(entry.getKey()).size() : 0;
-                if (currentUsageCount != usageCount) {
-                    continue;
+                if (usageCountOptional.get().equals(currentUsageCount)) {
+                    dataSourcePropsMap.put(entry.getKey(), 
DataSourcePropertiesCreator.create(entry.getValue()));
                 }
+            }
+        } else {
+            for (Entry<String, DataSource> entry : 
database.getResourceMetaData().getDataSources().entrySet()) {
                 dataSourcePropsMap.put(entry.getKey(), 
DataSourcePropertiesCreator.create(entry.getValue()));
             }
         }
diff --git 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/UnusedDataSourceQueryResultSet.java
 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/UnusedDataSourceQueryResultSet.java
deleted file mode 100644
index f7077dfdc5a..00000000000
--- 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/UnusedDataSourceQueryResultSet.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rql.resource;
-
-import com.google.common.collect.LinkedListMultimap;
-import com.google.common.collect.Multimap;
-import com.google.gson.Gson;
-import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowUnusedResourcesStatement;
-import org.apache.shardingsphere.infra.database.metadata.DataSourceMetaData;
-import org.apache.shardingsphere.infra.datanode.DataNode;
-import org.apache.shardingsphere.infra.datasource.props.DataSourceProperties;
-import 
org.apache.shardingsphere.infra.datasource.props.DataSourcePropertiesCreator;
-import org.apache.shardingsphere.infra.distsql.query.DatabaseDistSQLResultSet;
-import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
-import 
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
-import 
org.apache.shardingsphere.infra.rule.identifier.type.DataNodeContainedRule;
-import 
org.apache.shardingsphere.infra.rule.identifier.type.DataSourceContainedRule;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
-
-import javax.sql.DataSource;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-/**
- * Query result set for show unused data source.
- */
-public final class UnusedDataSourceQueryResultSet implements 
DatabaseDistSQLResultSet {
-    
-    private static final String CONNECTION_TIMEOUT_MILLISECONDS = 
"connectionTimeoutMilliseconds";
-    
-    private static final String IDLE_TIMEOUT_MILLISECONDS = 
"idleTimeoutMilliseconds";
-    
-    private static final String MAX_LIFETIME_MILLISECONDS = 
"maxLifetimeMilliseconds";
-    
-    private static final String MAX_POOL_SIZE = "maxPoolSize";
-    
-    private static final String MIN_POOL_SIZE = "minPoolSize";
-    
-    private static final String READ_ONLY = "readOnly";
-    
-    private ShardingSphereResourceMetaData resourceMetaData;
-    
-    private Map<String, DataSourceProperties> dataSourcePropsMap;
-    
-    private Iterator<String> dataSourceNames;
-    
-    @Override
-    public void init(final ShardingSphereDatabase database, final SQLStatement 
sqlStatement) {
-        resourceMetaData = database.getResourceMetaData();
-        dataSourcePropsMap = new 
LinkedHashMap<>(database.getResourceMetaData().getDataSources().size(), 1);
-        Multimap<String, String> inUsedMultiMap = 
getInUsedResources(database.getRuleMetaData());
-        for (Entry<String, DataSource> entry : 
database.getResourceMetaData().getDataSources().entrySet()) {
-            if (inUsedMultiMap.containsKey(entry.getKey())) {
-                continue;
-            }
-            dataSourcePropsMap.put(entry.getKey(), 
DataSourcePropertiesCreator.create(entry.getValue()));
-        }
-        dataSourceNames = dataSourcePropsMap.keySet().iterator();
-    }
-    
-    private Multimap<String, String> getInUsedResources(final 
ShardingSphereRuleMetaData ruleMetaData) {
-        Multimap<String, String> result = LinkedListMultimap.create();
-        for (ShardingSphereRule each : ruleMetaData.getRules()) {
-            if (each instanceof DataSourceContainedRule) {
-                Set<String> inUsedResourceNames = 
getInUsedResourceNames((DataSourceContainedRule) each);
-                inUsedResourceNames.forEach(eachResource -> 
result.put(eachResource, each.getType()));
-            }
-            if (each instanceof DataNodeContainedRule) {
-                Set<String> inUsedResourceNames = 
getInUsedResourceNames((DataNodeContainedRule) each);
-                inUsedResourceNames.forEach(eachResource -> 
result.put(eachResource, each.getType()));
-            }
-        }
-        return result;
-    }
-    
-    private Set<String> getInUsedResourceNames(final DataSourceContainedRule 
rule) {
-        Set<String> result = new HashSet<>();
-        for (Collection<String> each : rule.getDataSourceMapper().values()) {
-            result.addAll(each);
-        }
-        return result;
-    }
-    
-    private Set<String> getInUsedResourceNames(final DataNodeContainedRule 
rule) {
-        Set<String> result = new HashSet<>();
-        for (Collection<DataNode> each : rule.getAllDataNodes().values()) {
-            
result.addAll(each.stream().map(DataNode::getDataSourceName).collect(Collectors.toList()));
-        }
-        return result;
-    }
-    
-    @Override
-    public Collection<String> getColumnNames() {
-        return Arrays.asList("name", "type", "host", "port", "db", 
"connection_timeout_milliseconds", "idle_timeout_milliseconds",
-                "max_lifetime_milliseconds", "max_pool_size", "min_pool_size", 
"read_only", "other_attributes");
-    }
-    
-    @Override
-    public boolean next() {
-        return dataSourceNames.hasNext();
-    }
-    
-    @Override
-    public Collection<Object> getRowData() {
-        String dataSourceName = dataSourceNames.next();
-        DataSourceMetaData metaData = 
resourceMetaData.getDataSourceMetaData(dataSourceName);
-        Collection<Object> result = new LinkedList<>();
-        result.add(dataSourceName);
-        result.add(resourceMetaData.getStorageType(dataSourceName).getType());
-        result.add(metaData.getHostname());
-        result.add(metaData.getPort());
-        result.add(metaData.getCatalog());
-        DataSourceProperties dataSourceProps = 
dataSourcePropsMap.get(dataSourceName);
-        Map<String, Object> standardProps = 
dataSourceProps.getPoolPropertySynonyms().getStandardProperties();
-        result.add(getStandardProperty(standardProps, 
CONNECTION_TIMEOUT_MILLISECONDS));
-        result.add(getStandardProperty(standardProps, 
IDLE_TIMEOUT_MILLISECONDS));
-        result.add(getStandardProperty(standardProps, 
MAX_LIFETIME_MILLISECONDS));
-        result.add(getStandardProperty(standardProps, MAX_POOL_SIZE));
-        result.add(getStandardProperty(standardProps, MIN_POOL_SIZE));
-        result.add(getStandardProperty(standardProps, READ_ONLY));
-        Map<String, Object> otherProps = 
dataSourceProps.getCustomDataSourceProperties().getProperties();
-        result.add(otherProps.isEmpty() ? "" : new Gson().toJson(otherProps));
-        return result;
-    }
-    
-    private String getStandardProperty(final Map<String, Object> 
standardProps, final String key) {
-        if (standardProps.containsKey(key) && null != standardProps.get(key)) {
-            return standardProps.get(key).toString();
-        }
-        return "";
-    }
-    
-    @Override
-    public String getType() {
-        return ShowUnusedResourcesStatement.class.getName();
-    }
-}
diff --git 
a/proxy/backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
 
b/proxy/backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
index 38ca8fae8fa..415f2d0b644 100644
--- 
a/proxy/backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
+++ 
b/proxy/backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
@@ -15,8 +15,7 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.proxy.backend.handler.distsql.rql.resource.DataSourceQueryResultSet
-org.apache.shardingsphere.proxy.backend.handler.distsql.rql.resource.UnusedDataSourceQueryResultSet
+org.apache.shardingsphere.proxy.backend.handler.distsql.rql.resource.StorageUnitQueryResultSet
 
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule.SingleTableQueryResultSet
 
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule.SingleTableRulesQueryResultSet
 
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule.RulesUsedStorageUnitQueryResultSet
diff --git 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
index 59a7ad98312..b1101433b3d 100644
--- 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
+++ 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
@@ -21,7 +21,6 @@ import 
org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorage
 import 
org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowStorageUnitsStatement;
-import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowUnusedResourcesStatement;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import 
org.apache.shardingsphere.infra.distsql.exception.rule.MissingRequiredRuleException;
@@ -226,13 +225,6 @@ public final class DistSQLBackendHandlerFactoryTest 
extends ProxyContextRestorer
         assertThat(response, instanceOf(QueryResponseHeader.class));
     }
     
-    @Test
-    public void assertExecuteShowUnusedResourceContext() throws SQLException {
-        setContextManager(true);
-        ResponseHeader response = 
RQLBackendHandlerFactory.newInstance(mock(ShowUnusedResourcesStatement.class), 
connectionSession).execute();
-        assertThat(response, instanceOf(QueryResponseHeader.class));
-    }
-    
     private void setContextManager(final boolean isGovernance) {
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         MetaDataContexts metaDataContexts = isGovernance
diff --git 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java
 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java
index d5190365fae..cc896e39937 100644
--- 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java
+++ 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java
@@ -21,9 +21,9 @@ import 
org.apache.shardingsphere.distsql.parser.statement.rdl.RuleDefinitionStat
 import 
org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorageUnitStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
-import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.AddResourceBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.AlterResourceBackendHandler;
-import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.DropResourceBackendHandler;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.RegisterStorageUnitBackendHandler;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.AlterStorageUnitBackendHandler;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.UnregisterStorageUnitBackendHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule.RuleDefinitionBackendHandler;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import org.junit.Test;
@@ -35,18 +35,18 @@ import static org.mockito.Mockito.mock;
 public final class RDLBackendHandlerFactoryTest {
     
     @Test
-    public void assertNewInstanceWithAddResourceStatement() {
-        
assertThat(RDLBackendHandlerFactory.newInstance(mock(RegisterStorageUnitStatement.class),
 mock(ConnectionSession.class)), instanceOf(AddResourceBackendHandler.class));
+    public void assertNewInstanceWithRegisterStorageUnitStatement() {
+        
assertThat(RDLBackendHandlerFactory.newInstance(mock(RegisterStorageUnitStatement.class),
 mock(ConnectionSession.class)), 
instanceOf(RegisterStorageUnitBackendHandler.class));
     }
     
     @Test
-    public void assertNewInstanceWithAlterResourceStatement() {
-        
assertThat(RDLBackendHandlerFactory.newInstance(mock(AlterStorageUnitStatement.class),
 mock(ConnectionSession.class)), instanceOf(AlterResourceBackendHandler.class));
+    public void assertNewInstanceWithAlterStorageUnitStatement() {
+        
assertThat(RDLBackendHandlerFactory.newInstance(mock(AlterStorageUnitStatement.class),
 mock(ConnectionSession.class)), 
instanceOf(AlterStorageUnitBackendHandler.class));
     }
     
     @Test
-    public void assertNewInstanceWithDropResourceStatement() {
-        
assertThat(RDLBackendHandlerFactory.newInstance(mock(UnregisterStorageUnitStatement.class),
 mock(ConnectionSession.class)), instanceOf(DropResourceBackendHandler.class));
+    public void assertNewInstanceWithUnregisterStorageUnitStatement() {
+        
assertThat(RDLBackendHandlerFactory.newInstance(mock(UnregisterStorageUnitStatement.class),
 mock(ConnectionSession.class)), 
instanceOf(UnregisterStorageUnitBackendHandler.class));
     }
     
     @Test
diff --git 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterResourceBackendHandlerTest.java
 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterStorageUnitBackendHandlerTest.java
similarity index 83%
rename from 
proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterResourceBackendHandlerTest.java
rename to 
proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterStorageUnitBackendHandlerTest.java
index 129004cbf62..a4b962c9bcc 100644
--- 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterResourceBackendHandlerTest.java
+++ 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterStorageUnitBackendHandlerTest.java
@@ -57,7 +57,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class AlterResourceBackendHandlerTest extends 
ProxyContextRestorer {
+public final class AlterStorageUnitBackendHandlerTest extends 
ProxyContextRestorer {
     
     @Mock
     private DataSourcePropertiesValidator validator;
@@ -80,17 +80,17 @@ public final class AlterResourceBackendHandlerTest extends 
ProxyContextRestorer
     @Mock
     private DataSource dataSource;
     
-    private AlterResourceBackendHandler alterResourceBackendHandler;
+    private AlterStorageUnitBackendHandler alterStorageUnitBackendHandler;
     
     @Before
     public void setUp() throws Exception {
         
when(metaDataContexts.getMetaData().getDatabase("test_db")).thenReturn(database);
         
when(metaDataContexts.getMetaData().containsDatabase("test_db")).thenReturn(true);
         when(connectionSession.getProtocolType()).thenReturn(new 
MySQLDatabaseType());
-        alterResourceBackendHandler = new 
AlterResourceBackendHandler(alterStorageUnitStatement, connectionSession);
-        Field field = 
alterResourceBackendHandler.getClass().getDeclaredField("validator");
+        alterStorageUnitBackendHandler = new 
AlterStorageUnitBackendHandler(alterStorageUnitStatement, connectionSession);
+        Field field = 
alterStorageUnitBackendHandler.getClass().getDeclaredField("validator");
         field.setAccessible(true);
-        field.set(alterResourceBackendHandler, validator);
+        field.set(alterStorageUnitBackendHandler, validator);
     }
     
     @Test
@@ -100,23 +100,23 @@ public final class AlterResourceBackendHandlerTest 
extends ProxyContextRestorer
         ProxyContext.init(contextManager);
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("ds_0",
 mockHikariDataSource("ds_0")));
-        assertThat(alterResourceBackendHandler.execute("test_db", 
createAlterResourceStatement("ds_0")), instanceOf(UpdateResponseHeader.class));
+        assertThat(alterStorageUnitBackendHandler.execute("test_db", 
createAlterStorageUnitStatement("ds_0")), 
instanceOf(UpdateResponseHeader.class));
     }
     
     @Test(expected = DuplicateResourceException.class)
-    public void assertExecuteWithDuplicateResourceNames() {
-        alterResourceBackendHandler.execute("test_db", 
createAlterResourceStatementWithDuplicateResourceNames());
+    public void assertExecuteWithDuplicateStorageUnitNames() {
+        alterStorageUnitBackendHandler.execute("test_db", 
createAlterStorageUnitStatementWithDuplicateStorageUnitNames());
     }
     
     @Test(expected = MissingRequiredResourcesException.class)
-    public void assertExecuteWithNotExistedResourceNames() {
+    public void assertExecuteWithNotExistedStorageUnitNames() {
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
         ProxyContext.init(contextManager);
         
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("test_db",
 database));
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("ds_0",
 dataSource));
-        alterResourceBackendHandler.execute("test_db", 
createAlterResourceStatement("not_existed"));
+        alterStorageUnitBackendHandler.execute("test_db", 
createAlterStorageUnitStatement("not_existed"));
     }
     
     @Test(expected = InvalidResourcesException.class)
@@ -126,15 +126,15 @@ public final class AlterResourceBackendHandlerTest 
extends ProxyContextRestorer
         ProxyContext.init(contextManager);
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("ds_0",
 mockHikariDataSource("ds_1")));
-        ResponseHeader responseHeader = 
alterResourceBackendHandler.execute("test_db", 
createAlterResourceStatement("ds_0"));
+        ResponseHeader responseHeader = 
alterStorageUnitBackendHandler.execute("test_db", 
createAlterStorageUnitStatement("ds_0"));
         assertThat(responseHeader, instanceOf(UpdateResponseHeader.class));
     }
     
-    private AlterStorageUnitStatement createAlterResourceStatement(final 
String resourceName) {
+    private AlterStorageUnitStatement createAlterStorageUnitStatement(final 
String resourceName) {
         return new AlterStorageUnitStatement(Collections.singleton(new 
URLBasedDataSourceSegment(resourceName, "jdbc:mysql://127.0.0.1:3306/ds_0", 
"root", "", new Properties())));
     }
     
-    private AlterStorageUnitStatement 
createAlterResourceStatementWithDuplicateResourceNames() {
+    private AlterStorageUnitStatement 
createAlterStorageUnitStatementWithDuplicateStorageUnitNames() {
         Collection<DataSourceSegment> result = new LinkedList<>();
         result.add(new HostnameAndPortBasedDataSourceSegment("ds_0", 
"127.0.0.1", "3306", "ds_0", "root", "", new Properties()));
         result.add(new URLBasedDataSourceSegment("ds_0", 
"jdbc:mysql://127.0.0.1:3306/ds_1", "root", "", new Properties()));
diff --git 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AddResourceBackendHandlerTest.java
 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/RegisterStorageUnitBackendHandlerTest.java
similarity index 84%
rename from 
proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AddResourceBackendHandlerTest.java
rename to 
proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/RegisterStorageUnitBackendHandlerTest.java
index 316d0971a7b..cc6c26e1252 100644
--- 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AddResourceBackendHandlerTest.java
+++ 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/RegisterStorageUnitBackendHandlerTest.java
@@ -53,7 +53,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class AddResourceBackendHandlerTest extends ProxyContextRestorer {
+public final class RegisterStorageUnitBackendHandlerTest extends 
ProxyContextRestorer {
     
     @Mock
     private DataSourcePropertiesValidator validator;
@@ -73,17 +73,17 @@ public final class AddResourceBackendHandlerTest extends 
ProxyContextRestorer {
     @Mock
     private ShardingSphereResourceMetaData resourceMetaData;
     
-    private AddResourceBackendHandler addResourceBackendHandler;
+    private RegisterStorageUnitBackendHandler 
registerStorageUnitBackendHandler;
     
     @Before
     public void setUp() throws Exception {
         
when(metaDataContexts.getMetaData().getDatabase("test_db")).thenReturn(database);
         
when(metaDataContexts.getMetaData().containsDatabase("test_db")).thenReturn(true);
         when(connectionSession.getProtocolType()).thenReturn(new 
MySQLDatabaseType());
-        addResourceBackendHandler = new 
AddResourceBackendHandler(registerStorageUnitStatement, connectionSession);
-        Field field = 
addResourceBackendHandler.getClass().getDeclaredField("validator");
+        registerStorageUnitBackendHandler = new 
RegisterStorageUnitBackendHandler(registerStorageUnitStatement, 
connectionSession);
+        Field field = 
registerStorageUnitBackendHandler.getClass().getDeclaredField("validator");
         field.setAccessible(true);
-        field.set(addResourceBackendHandler, validator);
+        field.set(registerStorageUnitBackendHandler, validator);
     }
     
     @Test
@@ -94,26 +94,26 @@ public final class AddResourceBackendHandlerTest extends 
ProxyContextRestorer {
         
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("test_db",
 database));
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         
when(resourceMetaData.getDataSources()).thenReturn(Collections.emptyMap());
-        ResponseHeader responseHeader = 
addResourceBackendHandler.execute("test_db", createAddResourceStatement());
+        ResponseHeader responseHeader = 
registerStorageUnitBackendHandler.execute("test_db", 
createRegisterStorageUnitStatement());
         assertThat(responseHeader, instanceOf(UpdateResponseHeader.class));
     }
     
     @Test(expected = DuplicateResourceException.class)
-    public void assertExecuteWithDuplicateResourceNames() {
+    public void assertExecuteWithDuplicateStorageUnitNames() {
         ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
         ProxyContext.init(contextManager);
         
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("test_db",
 database));
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         
when(resourceMetaData.getDataSources()).thenReturn(Collections.emptyMap());
-        addResourceBackendHandler.execute("test_db", 
createAlterResourceStatementWithDuplicateResourceNames());
+        registerStorageUnitBackendHandler.execute("test_db", 
createRegisterStorageUnitStatementWithDuplicateStorageUnitNames());
     }
     
-    private RegisterStorageUnitStatement createAddResourceStatement() {
+    private RegisterStorageUnitStatement createRegisterStorageUnitStatement() {
         return new RegisterStorageUnitStatement(Collections.singleton(new 
URLBasedDataSourceSegment("ds_0", "jdbc:mysql://127.0.0.1:3306/test0", "root", 
"", new Properties())));
     }
     
-    private RegisterStorageUnitStatement 
createAlterResourceStatementWithDuplicateResourceNames() {
+    private RegisterStorageUnitStatement 
createRegisterStorageUnitStatementWithDuplicateStorageUnitNames() {
         Collection<DataSourceSegment> result = new LinkedList<>();
         result.add(new HostnameAndPortBasedDataSourceSegment("ds_0", 
"127.0.0.1", "3306", "ds_0", "root", "", new Properties()));
         result.add(new URLBasedDataSourceSegment("ds_0", 
"jdbc:mysql://127.0.0.1:3306/ds_1", "root", "", new Properties()));
diff --git 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/DropResourceBackendHandlerTest.java
 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitBackendHandlerTest.java
similarity index 83%
rename from 
proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/DropResourceBackendHandlerTest.java
rename to 
proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitBackendHandlerTest.java
index ec6965c3e37..a387277d5c1 100644
--- 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/DropResourceBackendHandlerTest.java
+++ 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitBackendHandlerTest.java
@@ -51,7 +51,7 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class DropResourceBackendHandlerTest extends ProxyContextRestorer 
{
+public final class UnregisterStorageUnitBackendHandlerTest extends 
ProxyContextRestorer {
     
     @Mock
     private UnregisterStorageUnitStatement unregisterStorageUnitStatement;
@@ -79,7 +79,7 @@ public final class DropResourceBackendHandlerTest extends 
ProxyContextRestorer {
     
     private ContextManager contextManager;
     
-    private DropResourceBackendHandler dropResourceBackendHandler;
+    private UnregisterStorageUnitBackendHandler 
unregisterStorageUnitBackendHandler;
     
     @Before
     public void setUp() {
@@ -93,7 +93,7 @@ public final class DropResourceBackendHandlerTest extends 
ProxyContextRestorer {
         contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
         
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
         ProxyContext.init(contextManager);
-        dropResourceBackendHandler = new 
DropResourceBackendHandler(unregisterStorageUnitStatement, connectionSession);
+        unregisterStorageUnitBackendHandler = new 
UnregisterStorageUnitBackendHandler(unregisterStorageUnitStatement, 
connectionSession);
     }
     
     @Test
@@ -103,28 +103,28 @@ public final class DropResourceBackendHandlerTest extends 
ProxyContextRestorer {
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("test")).thenReturn(database);
         UnregisterStorageUnitStatement unregisterStorageUnitStatement = new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false);
-        assertThat(dropResourceBackendHandler.execute("test", 
unregisterStorageUnitStatement), instanceOf(UpdateResponseHeader.class));
+        assertThat(unregisterStorageUnitBackendHandler.execute("test", 
unregisterStorageUnitStatement), instanceOf(UpdateResponseHeader.class));
         verify(contextManager).dropResources("test", 
unregisterStorageUnitStatement.getNames());
     }
     
     @Test(expected = MissingRequiredResourcesException.class)
-    public void assertResourceNameNotExistedExecute() {
-        dropResourceBackendHandler.execute("test", new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false));
+    public void assertStorageUnitNameNotExistedExecute() {
+        unregisterStorageUnitBackendHandler.execute("test", new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false));
     }
     
     @Test(expected = ResourceInUsedException.class)
-    public void assertResourceNameInUseExecute() {
+    public void assertStorageUnitNameInUseExecute() {
         
when(ruleMetaData.getRules()).thenReturn(Collections.singleton(shadowRule));
         when(shadowRule.getType()).thenReturn("ShadowRule");
         
when(shadowRule.getDataSourceMapper()).thenReturn(Collections.singletonMap("", 
Collections.singleton("foo_ds")));
         
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
 dataSource));
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("test")).thenReturn(database);
-        dropResourceBackendHandler.execute("test", new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false));
+        unregisterStorageUnitBackendHandler.execute("test", new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false));
     }
     
     @Test(expected = ResourceInUsedException.class)
-    public void assertResourceNameInUseWithoutIgnoreSingleTables() {
+    public void assertStorageUnitNameInUseWithoutIgnoreSingleTables() {
         
when(ruleMetaData.getRules()).thenReturn(Collections.singleton(singleTableRule));
         when(singleTableRule.getType()).thenReturn("SingleTableRule");
         DataNode dataNode = mock(DataNode.class);
@@ -133,11 +133,11 @@ public final class DropResourceBackendHandlerTest extends 
ProxyContextRestorer {
         
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
 dataSource));
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("test")).thenReturn(database);
-        dropResourceBackendHandler.execute("test", new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false));
+        unregisterStorageUnitBackendHandler.execute("test", new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false));
     }
     
     @Test
-    public void assertResourceNameInUseIgnoreSingleTables() throws 
SQLException {
+    public void assertStorageUnitNameInUseIgnoreSingleTables() throws 
SQLException {
         
when(ruleMetaData.getRules()).thenReturn(Collections.singleton(singleTableRule));
         when(singleTableRule.getType()).thenReturn("SingleTableRule");
         DataNode dataNode = mock(DataNode.class);
@@ -147,24 +147,24 @@ public final class DropResourceBackendHandlerTest extends 
ProxyContextRestorer {
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("test")).thenReturn(database);
         UnregisterStorageUnitStatement unregisterStorageUnitStatement = new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), true);
-        assertThat(dropResourceBackendHandler.execute("test", 
unregisterStorageUnitStatement), instanceOf(UpdateResponseHeader.class));
+        assertThat(unregisterStorageUnitBackendHandler.execute("test", 
unregisterStorageUnitStatement), instanceOf(UpdateResponseHeader.class));
         verify(contextManager).dropResources("test", 
unregisterStorageUnitStatement.getNames());
     }
     
     @Test
     public void assertExecuteWithIfExists() throws SQLException {
         UnregisterStorageUnitStatement unregisterStorageUnitStatement = new 
UnregisterStorageUnitStatement(true, Collections.singleton("foo_ds"), true);
-        assertThat(dropResourceBackendHandler.execute("test", 
unregisterStorageUnitStatement), instanceOf(UpdateResponseHeader.class));
+        assertThat(unregisterStorageUnitBackendHandler.execute("test", 
unregisterStorageUnitStatement), instanceOf(UpdateResponseHeader.class));
         verify(contextManager).dropResources("test", 
unregisterStorageUnitStatement.getNames());
     }
     
     @Test(expected = DistSQLException.class)
-    public void assertResourceNameInUseWithIfExists() {
+    public void assertStorageUnitNameInUseWithIfExists() {
         
when(ruleMetaData.getRules()).thenReturn(Collections.singleton(shadowRule));
         when(shadowRule.getType()).thenReturn("ShadowRule");
         
when(shadowRule.getDataSourceMapper()).thenReturn(Collections.singletonMap("", 
Collections.singleton("foo_ds")));
         
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("test")).thenReturn(database);
         UnregisterStorageUnitStatement unregisterStorageUnitStatement = new 
UnregisterStorageUnitStatement(true, Collections.singleton("foo_ds"), true);
-        dropResourceBackendHandler.execute("test", 
unregisterStorageUnitStatement);
+        unregisterStorageUnitBackendHandler.execute("test", 
unregisterStorageUnitStatement);
     }
 }
diff --git 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/DataSourceQueryResultSetTest.java
 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/DataSourceQueryResultSetTest.java
deleted file mode 100644
index 9917b6e188f..00000000000
--- 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/DataSourceQueryResultSetTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rql;
-
-import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowStorageUnitsStatement;
-import org.apache.shardingsphere.infra.distsql.query.DatabaseDistSQLResultSet;
-import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
-import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.resource.DataSourceQueryResultSet;
-import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
-import org.apache.shardingsphere.test.mock.MockedDataSource;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-@RunWith(MockitoJUnitRunner.class)
-public final class DataSourceQueryResultSetTest {
-    
-    @Mock
-    private ShardingSphereDatabase database;
-    
-    @Before
-    public void before() {
-        ShardingSphereResourceMetaData resourceMetaData = new 
ShardingSphereResourceMetaData("sharding_db", 
Collections.singletonMap("foo_ds", createDataSource()));
-        when(database.getResourceMetaData()).thenReturn(resourceMetaData);
-    }
-    
-    private MockedDataSource createDataSource() {
-        MockedDataSource result = new MockedDataSource();
-        result.setUrl("jdbc:mysql://localhost/demo_ds");
-        result.setUsername("root");
-        result.setPassword("password");
-        result.setMaxPoolSize(100);
-        result.setMinPoolSize(10);
-        return result;
-    }
-    
-    @Test
-    public void assertGetRowData() {
-        DatabaseDistSQLResultSet resultSet = new DataSourceQueryResultSet();
-        ShowStorageUnitsStatement showStorageUnitsStatement = new 
ShowStorageUnitsStatement(mock(DatabaseSegment.class), null);
-        resultSet.init(database, showStorageUnitsStatement);
-        Collection<Object> actual = resultSet.getRowData();
-        assertThat(actual.size(), is(12));
-        Iterator<Object> rowData = actual.iterator();
-        assertThat(rowData.next(), is("foo_ds"));
-        assertThat(rowData.next(), is("MySQL"));
-        assertThat(rowData.next(), is("localhost"));
-        assertThat(rowData.next(), is(3306));
-        assertThat(rowData.next(), is("demo_ds"));
-        assertThat(rowData.next(), is(""));
-        assertThat(rowData.next(), is(""));
-        assertThat(rowData.next(), is(""));
-        assertThat(rowData.next(), is("100"));
-        assertThat(rowData.next(), is("10"));
-        assertThat(rowData.next(), is(""));
-        assertThat(rowData.next(), is(""));
-    }
-}
diff --git 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/UnusedDataSourceQueryResultSetTest.java
 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/StorageUnitQueryResultSetTest.java
similarity index 78%
rename from 
proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/UnusedDataSourceQueryResultSetTest.java
rename to 
proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/StorageUnitQueryResultSetTest.java
index 162553863f3..46784ff0ba9 100644
--- 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/UnusedDataSourceQueryResultSetTest.java
+++ 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/StorageUnitQueryResultSetTest.java
@@ -22,7 +22,7 @@ import 
org.apache.shardingsphere.infra.instance.InstanceContext;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
-import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.resource.DataSourceQueryResultSet;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.resource.StorageUnitQueryResultSet;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerateStrategyConfiguration;
@@ -50,7 +50,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class UnusedDataSourceQueryResultSetTest {
+public final class StorageUnitQueryResultSetTest {
     
     @Mock
     private ShardingSphereDatabase database;
@@ -101,8 +101,38 @@ public final class UnusedDataSourceQueryResultSetTest {
     }
     
     @Test
-    public void assertGetRowData() {
-        DataSourceQueryResultSet resultSet = new DataSourceQueryResultSet();
+    public void assertAllStorageUnit() {
+        StorageUnitQueryResultSet resultSet = new StorageUnitQueryResultSet();
+        ShowStorageUnitsStatement showStorageUnitsStatement = new 
ShowStorageUnitsStatement(mock(DatabaseSegment.class), null);
+        resultSet.init(database, showStorageUnitsStatement);
+        Map<Integer, String> nameMap = new HashMap<>(3, 1);
+        nameMap.put(0, "ds_2");
+        nameMap.put(1, "ds_1");
+        nameMap.put(2, "ds_0");
+        int index = 0;
+        while (resultSet.next()) {
+            Collection<Object> actual = resultSet.getRowData();
+            assertThat(actual.size(), is(12));
+            Iterator<Object> rowData = actual.iterator();
+            assertThat(rowData.next(), is(nameMap.get(index)));
+            assertThat(rowData.next(), is("MySQL"));
+            assertThat(rowData.next(), is("localhost"));
+            assertThat(rowData.next(), is(3307));
+            assertThat(rowData.next(), is(nameMap.get(index)));
+            assertThat(rowData.next(), is(""));
+            assertThat(rowData.next(), is(""));
+            assertThat(rowData.next(), is(""));
+            assertThat(rowData.next(), is("100"));
+            assertThat(rowData.next(), is("10"));
+            assertThat(rowData.next(), is(""));
+            assertThat(rowData.next(), is(""));
+            index++;
+        }
+    }
+    
+    @Test
+    public void assertUnusedStorageUnit() {
+        StorageUnitQueryResultSet resultSet = new StorageUnitQueryResultSet();
         ShowStorageUnitsStatement showStorageUnitsStatement = new 
ShowStorageUnitsStatement(mock(DatabaseSegment.class), 0);
         resultSet.init(database, showStorageUnitsStatement);
         Collection<Object> actual = resultSet.getRowData();
diff --git 
a/sql-parser/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/available/FromDatabaseAvailable.java
 
b/sql-parser/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/available/FromDatabaseAvailable.java
index 2edbc28ec84..e5cd9ec2258 100644
--- 
a/sql-parser/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/available/FromDatabaseAvailable.java
+++ 
b/sql-parser/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/available/FromDatabaseAvailable.java
@@ -27,9 +27,9 @@ import java.util.Optional;
 public interface FromDatabaseAvailable {
     
     /**
-     * Get schema.
+     * Get database.
      * 
-     * @return schema segment
+     * @return database segment
      */
     Optional<DatabaseSegment> getDatabase();
 }
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/RDLStatementAssert.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/RDLStatementAssert.java
index 36466d41e8f..20a6d813ccb 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/RDLStatementAssert.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/RDLStatementAssert.java
@@ -32,24 +32,24 @@ import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.Alt
 import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableReferenceRuleStatement;
 import 
org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableRuleStatement;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.AlterResourceStatementAssert;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.AlterStorageUnitStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.AlterRuleStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterDatabaseDiscoveryRuleStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterEncryptRuleStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterReadwriteSplittingRuleStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShardingTableReferenceRulesStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.alter.impl.AlterShardingTableRuleStatementAssert;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.create.AddResourceStatementAssert;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.create.RegisterStorageUnitStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.create.CreateRuleStatementAssert;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.drop.DropResourceStatementAssert;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.drop.UnregisterStorageUnitStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rdl.drop.DropRuleStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterEncryptRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterReadwriteSplittingRuleStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterResourceStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterStorageUnitStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingTableReferenceRulesStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.AddResourceStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropResourceStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.RegisterStorageUnitStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.UnregisterStorageUnitStatementTestCase;
 
 /**
  * RDL statement assert.
@@ -78,13 +78,13 @@ public final class RDLStatementAssert {
         } else if (actual instanceof CreateRuleStatement) {
             CreateRuleStatementAssert.assertIs(assertContext, 
(CreateRuleStatement) actual, expected);
         } else if (actual instanceof RegisterStorageUnitStatement) {
-            AddResourceStatementAssert.assertIs(assertContext, 
(RegisterStorageUnitStatement) actual, (AddResourceStatementTestCase) expected);
+            RegisterStorageUnitStatementAssert.assertIs(assertContext, 
(RegisterStorageUnitStatement) actual, (RegisterStorageUnitStatementTestCase) 
expected);
         } else if (actual instanceof AlterStorageUnitStatement) {
-            AlterResourceStatementAssert.assertIs(assertContext, 
(AlterStorageUnitStatement) actual, (AlterResourceStatementTestCase) expected);
+            AlterStorageUnitStatementAssert.assertIs(assertContext, 
(AlterStorageUnitStatement) actual, (AlterStorageUnitStatementTestCase) 
expected);
         } else if (actual instanceof AlterRuleStatement) {
             AlterRuleStatementAssert.assertIs(assertContext, 
(AlterRuleStatement) actual, expected);
         } else if (actual instanceof UnregisterStorageUnitStatement) {
-            DropResourceStatementAssert.assertIs(assertContext, 
(UnregisterStorageUnitStatement) actual, (DropResourceStatementTestCase) 
expected);
+            UnregisterStorageUnitStatementAssert.assertIs(assertContext, 
(UnregisterStorageUnitStatement) actual, 
(UnregisterStorageUnitStatementTestCase) expected);
         } else if (actual instanceof DropRuleStatement) {
             DropRuleStatementAssert.assertIs(assertContext, 
(DropRuleStatement) actual, expected);
         }
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterResourceStatementAssert.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterStorageUnitStatementAssert.java
similarity index 92%
rename from 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterResourceStatementAssert.java
rename to 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterStorageUnitStatementAssert.java
index e77b4d73ba6..1ae29682551 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterResourceStatementAssert.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterStorageUnitStatementAssert.java
@@ -24,7 +24,7 @@ import 
org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorage
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.DataSourceAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.ExpectedDataSource;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterResourceStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterStorageUnitStatementTestCase;
 
 import java.util.Collection;
 import java.util.List;
@@ -35,10 +35,10 @@ import static org.junit.Assert.assertNull;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 /**
- * Alter Resource statement assert.
+ * Alter storage unit statement assert.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class AlterResourceStatementAssert {
+public final class AlterStorageUnitStatementAssert {
     
     /**
      * Assert alter resource statement is correct with expected parser result.
@@ -47,7 +47,7 @@ public final class AlterResourceStatementAssert {
      * @param actual actual add resource statement
      * @param expected expected add resource statement test case
      */
-    public static void assertIs(final SQLCaseAssertContext assertContext, 
final AlterStorageUnitStatement actual, final AlterResourceStatementTestCase 
expected) {
+    public static void assertIs(final SQLCaseAssertContext assertContext, 
final AlterStorageUnitStatement actual, final AlterStorageUnitStatementTestCase 
expected) {
         if (null == expected) {
             assertNull(assertContext.getText("Actual statement should not 
exist."), actual);
         } else {
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/AddResourceStatementAssert.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/RegisterStorageUnitStatementAssert.java
similarity index 91%
rename from 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/AddResourceStatementAssert.java
rename to 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/RegisterStorageUnitStatementAssert.java
index 8700ac93e8e..87012a5187f 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/AddResourceStatementAssert.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/RegisterStorageUnitStatementAssert.java
@@ -24,7 +24,7 @@ import 
org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterSto
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.DataSourceAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.ExpectedDataSource;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.AddResourceStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.RegisterStorageUnitStatementTestCase;
 
 import java.util.Collection;
 import java.util.List;
@@ -35,10 +35,10 @@ import static org.junit.Assert.assertNull;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 /**
- * Add Resource statement assert.
+ * Register storage unit statement assert.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class AddResourceStatementAssert {
+public final class RegisterStorageUnitStatementAssert {
     
     /**
      * Assert add resource statement is correct with expected parser result.
@@ -47,7 +47,7 @@ public final class AddResourceStatementAssert {
      * @param actual actual add resource statement
      * @param expected expected add resource statement test case
      */
-    public static void assertIs(final SQLCaseAssertContext assertContext, 
final RegisterStorageUnitStatement actual, final AddResourceStatementTestCase 
expected) {
+    public static void assertIs(final SQLCaseAssertContext assertContext, 
final RegisterStorageUnitStatement actual, final 
RegisterStorageUnitStatementTestCase expected) {
         if (null == expected) {
             assertNull(assertContext.getText("Actual statement should not 
exist."), actual);
         } else {
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/DropResourceStatementAssert.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/UnregisterStorageUnitStatementAssert.java
similarity index 88%
rename from 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/DropResourceStatementAssert.java
rename to 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/UnregisterStorageUnitStatementAssert.java
index c73c992bce3..bfde2528b68 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/DropResourceStatementAssert.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/UnregisterStorageUnitStatementAssert.java
@@ -21,17 +21,17 @@ import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import 
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropResourceStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.UnregisterStorageUnitStatementTestCase;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertNull;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 /**
- * Drop resource statement assert.
+ * Unregister storage unit statement assert.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class DropResourceStatementAssert {
+public final class UnregisterStorageUnitStatementAssert {
     
     /**
      * Assert drop resource statement is correct with expected parser result.
@@ -40,7 +40,7 @@ public final class DropResourceStatementAssert {
      * @param actual actual drop resource statement
      * @param expected expected drop resource statement test case
      */
-    public static void assertIs(final SQLCaseAssertContext assertContext, 
final UnregisterStorageUnitStatement actual, final 
DropResourceStatementTestCase expected) {
+    public static void assertIs(final SQLCaseAssertContext assertContext, 
final UnregisterStorageUnitStatement actual, final 
UnregisterStorageUnitStatementTestCase expected) {
         if (null == expected.getDataSources()) {
             assertNull(assertContext.getText("Actual resource should not 
exist."), actual);
         } else {
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
index d4d9e293285..68eae511dc6 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
@@ -333,13 +333,13 @@ import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterDefaultShardingStrategyStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterEncryptRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterReadwriteSplittingRuleStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterResourceStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterStorageUnitStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShadowRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingAuditorStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingAutoTableRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingTableReferenceRulesStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingTableRuleStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.AddResourceStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.RegisterStorageUnitStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.AlterDefaultShadowAlgorithmStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateBroadcastTableRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateDatabaseDiscoveryDefinitionRuleStatementTestCase;
@@ -360,7 +360,7 @@ import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropDefaultShardingStrategyStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropEncryptRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropReadwriteSplittingRuleStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropResourceStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.UnregisterStorageUnitStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShadowAlgorithmStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShadowRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingAlgorithmStatementTestCase;
@@ -870,14 +870,14 @@ public final class SQLParserTestCases {
     @XmlElement(name = "rename")
     private final List<RenameStatementTestCase> renameTestCases = new 
LinkedList<>();
     
-    @XmlElement(name = "add-resource")
-    private final List<AddResourceStatementTestCase> addResourceTestCases = 
new LinkedList<>();
+    @XmlElement(name = "register-storage-unit")
+    private final List<RegisterStorageUnitStatementTestCase> 
registerStorageUnitTestCases = new LinkedList<>();
     
     @XmlElement(name = "register-migration-source-storage-unit")
     private final List<RegisterMigrationSourceStorageUnitStatementTestCase> 
registerMigrationSourceStorageUnitStatementTestCases = new LinkedList<>();
     
-    @XmlElement(name = "alter-resource")
-    private final List<AlterResourceStatementTestCase> alterResourceTestCases 
= new LinkedList<>();
+    @XmlElement(name = "alter-storage-unit")
+    private final List<AlterStorageUnitStatementTestCase> 
alterStorageUnitTestCases = new LinkedList<>();
     
     @XmlElement(name = "alter-database-discovery-definition-rule")
     private final List<AlterDatabaseDiscoveryDefinitionRuleStatementTestCase> 
alterDatabaseDiscoveryDefinitionRuleTestCases = new LinkedList<>();
@@ -933,8 +933,8 @@ public final class SQLParserTestCases {
     @XmlElement(name = "drop-readwrite-splitting-rule")
     private final List<DropReadwriteSplittingRuleStatementTestCase> 
dropReadwriteSplittingRuleTestCases = new LinkedList<>();
     
-    @XmlElement(name = "drop-resource")
-    private final List<DropResourceStatementTestCase> dropResourceTestCases = 
new LinkedList<>();
+    @XmlElement(name = "unregister-storage-unit")
+    private final List<UnregisterStorageUnitStatementTestCase> 
unregisterStorageUnitStatementTestCase = new LinkedList<>();
     
     @XmlElement(name = "drop-sharding-table-reference-rule")
     private final List<DropShardingTableReferenceRuleStatementTestCase> 
dropShardingTableReferenceRuleStatementTestCases = new LinkedList<>();
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterResourceStatementTestCase.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterStorageUnitStatementTestCase.java
similarity index 91%
rename from 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterResourceStatementTestCase.java
rename to 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterStorageUnitStatementTestCase.java
index 76810f4b8a7..bbbc3742512 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterResourceStatementTestCase.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterStorageUnitStatementTestCase.java
@@ -26,10 +26,10 @@ import java.util.LinkedList;
 import java.util.List;
 
 /**
- * Alter resource statement test case.
+ * Alter storage unit statement test case.
  */
 @Getter
-public final class AlterResourceStatementTestCase extends SQLParserTestCase {
+public final class AlterStorageUnitStatementTestCase extends SQLParserTestCase 
{
     
     @XmlElement(name = "data-source")
     private final List<ExpectedDataSource> dataSources = new LinkedList<>();
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/AddResourceStatementTestCase.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/RegisterStorageUnitStatementTestCase.java
similarity index 91%
rename from 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/AddResourceStatementTestCase.java
rename to 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/RegisterStorageUnitStatementTestCase.java
index 4c39e58de9d..c3f808198f2 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/AddResourceStatementTestCase.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/RegisterStorageUnitStatementTestCase.java
@@ -27,11 +27,11 @@ import java.util.LinkedList;
 import java.util.List;
 
 /**
- * Add resource statement test case.
+ * Register storage unit statement test case.
  */
 @Getter
 @Setter
-public final class AddResourceStatementTestCase extends SQLParserTestCase {
+public final class RegisterStorageUnitStatementTestCase extends 
SQLParserTestCase {
     
     @XmlElement(name = "data-source")
     private final List<ExpectedDataSource> dataSources = new LinkedList<>();
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/drop/DropResourceStatementTestCase.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/drop/UnregisterStorageUnitStatementTestCase.java
similarity index 92%
rename from 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/drop/DropResourceStatementTestCase.java
rename to 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/drop/UnregisterStorageUnitStatementTestCase.java
index 3c931f2ba79..87d4225f9c0 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/drop/DropResourceStatementTestCase.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/drop/UnregisterStorageUnitStatementTestCase.java
@@ -27,11 +27,11 @@ import java.util.LinkedList;
 import java.util.List;
 
 /**
- * Drop resource statement test case.
+ * Unregister storage unit statement test case.
  */
 @Getter
 @Setter
-public final class DropResourceStatementTestCase extends SQLParserTestCase {
+public final class UnregisterStorageUnitStatementTestCase extends 
SQLParserTestCase {
     
     @XmlAttribute(name = "if-exists")
     private boolean ifExists;
diff --git a/test/parser/src/main/resources/case/dal/alter.xml 
b/test/parser/src/main/resources/case/dal/alter.xml
index b7c04b90ccc..0ab3ec1c6a8 100644
--- a/test/parser/src/main/resources/case/dal/alter.xml
+++ b/test/parser/src/main/resources/case/dal/alter.xml
@@ -20,6 +20,6 @@
     <alter-resource-group sql-case-id="alter_resource_group">
         <group name="rg" start-index="21" stop-index="22" />
     </alter-resource-group>
-    <alter-resource 
sql-case-id="alter_resource_cost_cpu_time"></alter-resource>
-    <alter-resource sql-case-id="alter_resource_cost_cpu"></alter-resource>
+    <alter-resource-group 
sql-case-id="alter_resource_cost_cpu_time"></alter-resource-group>
+    <alter-resource-group 
sql-case-id="alter_resource_cost_cpu"></alter-resource-group>
 </sql-parser-test-cases>
diff --git a/test/parser/src/main/resources/case/rdl/alter.xml 
b/test/parser/src/main/resources/case/rdl/alter.xml
index 0d602a3bc86..956a72c67cd 100644
--- a/test/parser/src/main/resources/case/rdl/alter.xml
+++ b/test/parser/src/main/resources/case/rdl/alter.xml
@@ -17,51 +17,51 @@
   -->
 
 <sql-parser-test-cases>
-    <alter-resource 
sql-case-id="alter-resource-simple-single-without-password">
+    <alter-storage-unit 
sql-case-id="alter-storage-unit-simple-single-without-password">
         <data-source name="ds_0" hostname="127.0.0.1" port="3306" db="test0" 
user="ROOT" password="" />
-    </alter-resource>
+    </alter-storage-unit>
 
-    <alter-resource sql-case-id="alter-resource-simple-single-with-password">
+    <alter-storage-unit 
sql-case-id="alter-storage-unit-simple-single-with-password">
         <data-source name="ds_0" hostname="127.0.0.1" port="3306" db="test0" 
user="ROOT" password="123456" />
-    </alter-resource>
+    </alter-storage-unit>
 
-    <alter-resource sql-case-id="alter-resource-simple-multiple">
+    <alter-storage-unit sql-case-id="alter-storage-unit-simple-multiple">
         <data-source name="ds_0" hostname="127.0.0.1" port="3306" db="test0" 
user="ROOT" password="123456" />
         <data-source name="ds_1" hostname="127.0.0.1" port="3306" db="test1" 
user="ROOT" password="123456" />
-    </alter-resource>
+    </alter-storage-unit>
 
-    <alter-resource sql-case-id="alter-resource-url-single-without-password">
+    <alter-storage-unit 
sql-case-id="alter-storage-unit-url-single-without-password">
         <data-source name="ds_0" url="jdbc:mysql://127.0.0.1:3306/test0" 
user="ROOT" password="" />
-    </alter-resource>
+    </alter-storage-unit>
 
-    <alter-resource sql-case-id="alter-resource-url-single-with-password">
+    <alter-storage-unit 
sql-case-id="alter-storage-unit-url-single-with-password">
         <data-source name="ds_0" url="jdbc:mysql://127.0.0.1:3306/test0" 
user="ROOT" password="123456" />
-    </alter-resource>
+    </alter-storage-unit>
 
-    <alter-resource sql-case-id="alter-resource-url-multiple">
+    <alter-storage-unit sql-case-id="alter-storage-unit-url-multiple">
         <data-source name="ds_0" url="jdbc:mysql://127.0.0.1:3306/test0" 
user="ROOT" password="123456" />
         <data-source name="ds_1" url="jdbc:mysql://127.0.0.1:3306/test1" 
user="ROOT" password="123456" />
-    </alter-resource>
+    </alter-storage-unit>
 
-    <alter-resource sql-case-id="alter-resource-single-with-properties">
+    <alter-storage-unit 
sql-case-id="alter-storage-unit-single-with-properties">
         <data-source name="ds_0" hostname="127.0.0.1" port="3306" db="test0" 
user="ROOT" password="123456">
             <properties>
                 <property key="maxPoolSize" value="30" />
             </properties>
         </data-source>
-    </alter-resource>
+    </alter-storage-unit>
 
-    <alter-resource 
sql-case-id="alter-resource-url-single-with-empty-properties">
+    <alter-storage-unit 
sql-case-id="alter-storage-unit-url-single-with-empty-properties">
         <data-source name="ds_0" url="jdbc:mysql://127.0.0.1:3306/test0" 
user="ROOT" password="" />
-    </alter-resource>
+    </alter-storage-unit>
 
-    <alter-resource sql-case-id="alter-resource-url-single-with-properties">
+    <alter-storage-unit 
sql-case-id="alter-storage-unit-url-single-with-properties">
         <data-source name="ds_0" url="jdbc:mysql://127.0.0.1:3306/test0" 
user="ROOT" password="123456">
             <properties>
                 <property key="maxPoolSize" value="30" />
             </properties>
         </data-source>
-    </alter-resource>
+    </alter-storage-unit>
     
     <alter-sharding-auto-table-rule 
sql-case-id="alter-sharding-auto-table-rule">
         <rule name="t_order" table-strategy-column="order_id" 
key-generate-strategy-column="another_id">
diff --git a/test/parser/src/main/resources/case/rdl/create.xml 
b/test/parser/src/main/resources/case/rdl/create.xml
index 069937a6afb..46687c42292 100644
--- a/test/parser/src/main/resources/case/rdl/create.xml
+++ b/test/parser/src/main/resources/case/rdl/create.xml
@@ -17,60 +17,60 @@
   -->
 
 <sql-parser-test-cases>
-    <add-resource sql-case-id="add-resource-simple-single-without-password">
+    <register-storage-unit 
sql-case-id="register-storage-unit-simple-single-without-password">
         <data-source name="ds_0" hostname="127.0.0.1" port="3306" db="test0" 
user="ROOT" password="" />
-    </add-resource>
+    </register-storage-unit>
     
-    <add-resource sql-case-id="add-resource-simple-single-with-password">
+    <register-storage-unit 
sql-case-id="register-storage-unit-simple-single-with-password">
         <data-source name="ds_0" hostname="127.0.0.1" port="3306" db="test0" 
user="ROOT" password="123456" />
-    </add-resource>
+    </register-storage-unit>
     
-    <add-resource sql-case-id="add-resource-simple-multiple">
+    <register-storage-unit sql-case-id="register-storage-unit-simple-multiple">
         <data-source name="ds_0" hostname="127.0.0.1" port="3306" db="test0" 
user="ROOT" password="123456" />
         <data-source name="ds_1" hostname="127.0.0.1" port="3306" db="test1" 
user="ROOT" password="123456" />
-    </add-resource>
+    </register-storage-unit>
     
     <register-migration-source-storage-unit 
sql-case-id="single-register-migration-source-storage-unit">
         <data-source name="ds_0" hostname="127.0.0.1" port="3306" db="test0" 
user="ROOT" password="123456" url="jdbc:mysql://127.0.0.1:3306/test0"/>
     </register-migration-source-storage-unit>
 
-    <add-resource sql-case-id="add-resource-with-quota">
+    <register-storage-unit sql-case-id="register-storage-unit-with-quota">
         <data-source name="ds_0" hostname="127.0.0.1" port="3306" db="test0" 
user="ROOT" password="" />
-    </add-resource>
+    </register-storage-unit>
     
-    <add-resource sql-case-id="add-resource-url-single-without-password">
+    <register-storage-unit 
sql-case-id="register-storage-unit-url-single-without-password">
         <data-source name="ds_0" url="jdbc:mysql://127.0.0.1:3306/test0" 
user="ROOT" password="" />
-    </add-resource>
+    </register-storage-unit>
     
-    <add-resource sql-case-id="add-resource-url-single-with-password">
+    <register-storage-unit 
sql-case-id="register-storage-unit-url-single-with-password">
         <data-source name="ds_0" url="jdbc:mysql://127.0.0.1:3306/test0" 
user="ROOT" password="123456" />
-    </add-resource>
+    </register-storage-unit>
     
-    <add-resource sql-case-id="add-resource-url-multiple">
+    <register-storage-unit sql-case-id="register-storage-unit-url-multiple">
         <data-source name="ds_0" url="jdbc:mysql://127.0.0.1:3306/test0" 
user="ROOT" password="123456" />
         <data-source name="ds_1" url="jdbc:mysql://127.0.0.1:3306/test1" 
user="ROOT" password="123456" />
-    </add-resource>
+    </register-storage-unit>
 
-    <add-resource sql-case-id="add-resource-single-with-properties">
+    <register-storage-unit 
sql-case-id="register-storage-unit-single-with-properties">
         <data-source name="ds_0" hostname="127.0.0.1" port="3306" db="test0" 
user="ROOT" password="123456">
             <properties>
                 <property key="maxPoolSize" value="30" />
                 <property key="idleTimeout" value="30000" />
             </properties>
         </data-source>
-    </add-resource>
+    </register-storage-unit>
 
-    <add-resource sql-case-id="add-resource-url-single-with-empty-properties">
+    <register-storage-unit 
sql-case-id="register-storage-unit-url-single-with-empty-properties">
         <data-source name="ds_0" url="jdbc:mysql://127.0.0.1:3306/test0" 
user="ROOT" password=""/>
-    </add-resource>
+    </register-storage-unit>
 
-    <add-resource sql-case-id="add-resource-url-single-with-properties">
+    <register-storage-unit 
sql-case-id="register-storage-unit-url-single-with-properties">
         <data-source name="ds_0" url="jdbc:mysql://127.0.0.1:3306/test0" 
user="ROOT" password="123456">
             <properties>
                 <property key="maxPoolSize" value="30"/>
             </properties>
         </data-source>
-    </add-resource>
+    </register-storage-unit>
     
     <create-sharding-auto-table-rule 
sql-case-id="create-sharding-auto-table-rule">
         <rule name="t_order" table-strategy-column="order_id" 
key-generate-strategy-column="another_id">
diff --git a/test/parser/src/main/resources/case/rdl/drop.xml 
b/test/parser/src/main/resources/case/rdl/drop.xml
index 6c08c7ef0d7..ea6e7f4bf36 100644
--- a/test/parser/src/main/resources/case/rdl/drop.xml
+++ b/test/parser/src/main/resources/case/rdl/drop.xml
@@ -17,23 +17,23 @@
   -->
 
 <sql-parser-test-cases>
-    <drop-resource sql-case-id="drop-resource">
+    <unregister-storage-unit sql-case-id="unregister-storage-unit">
         <data-source>ds_0</data-source>
         <data-source>ds_1</data-source>
         <ignore-single-tables>false</ignore-single-tables>
-    </drop-resource>
+    </unregister-storage-unit>
 
-    <drop-resource sql-case-id="drop-resource-if-exists" if-exists="true">
+    <unregister-storage-unit sql-case-id="unregister-storage-unit-if-exists" 
if-exists="true">
         <data-source>ds_0</data-source>
         <data-source>ds_1</data-source>
         <ignore-single-tables>false</ignore-single-tables>
-    </drop-resource>
+    </unregister-storage-unit>
     
-    <drop-resource sql-case-id="drop-resource-ignore-single-tables">
+    <unregister-storage-unit 
sql-case-id="unregister-storage-unit-ignore-single-tables">
         <data-source>ds_0</data-source>
         <data-source>ds_1</data-source>
         <ignore-single-tables>true</ignore-single-tables>
-    </drop-resource>
+    </unregister-storage-unit>
     
     <drop-sharding-table-rule sql-case-id="drop-sharding-table-rule" >
         <table>t_order</table>
diff --git a/test/parser/src/main/resources/sql/supported/rdl/alter.xml 
b/test/parser/src/main/resources/sql/supported/rdl/alter.xml
index 34d7f433782..511ee8648c3 100644
--- a/test/parser/src/main/resources/sql/supported/rdl/alter.xml
+++ b/test/parser/src/main/resources/sql/supported/rdl/alter.xml
@@ -17,15 +17,15 @@
   -->
 
 <sql-cases>
-    <distsql-case id="alter-resource-simple-single-without-password" 
value="ALTER STORAGE UNIT 
ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT');" />
-    <distsql-case id="alter-resource-simple-single-with-password" value="ALTER 
STORAGE UNIT 
ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456');" />
-    <distsql-case id="alter-resource-simple-multiple" value="ALTER STORAGE 
UNIT ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456'), 
ds_1(HOST='127.0.0.1',PORT=3306,DB='test1',USER='ROOT',PASSWORD='123456');" />
-    <distsql-case id="alter-resource-url-single-without-password" value="ALTER 
STORAGE UNIT ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT');" />
-    <distsql-case id="alter-resource-url-single-with-password" value="ALTER 
STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456');" />
-    <distsql-case id="alter-resource-url-multiple" value="ALTER STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456'), 
ds_1(URL='jdbc:mysql://127.0.0.1:3306/test1',USER='ROOT',PASSWORD='123456');" />
-    <distsql-case id="alter-resource-single-with-properties" value="ALTER 
STORAGE UNIT 
ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'));"
 />
-    <distsql-case id="alter-resource-url-single-with-empty-properties" 
value="ALTER STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PROPERTIES())" />
-    <distsql-case id="alter-resource-url-single-with-properties" value="ALTER 
STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'))"
 />
+    <distsql-case id="alter-storage-unit-simple-single-without-password" 
value="ALTER STORAGE UNIT 
ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT');" />
+    <distsql-case id="alter-storage-unit-simple-single-with-password" 
value="ALTER STORAGE UNIT 
ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456');" />
+    <distsql-case id="alter-storage-unit-simple-multiple" value="ALTER STORAGE 
UNIT ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456'), 
ds_1(HOST='127.0.0.1',PORT=3306,DB='test1',USER='ROOT',PASSWORD='123456');" />
+    <distsql-case id="alter-storage-unit-url-single-without-password" 
value="ALTER STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT');" />
+    <distsql-case id="alter-storage-unit-url-single-with-password" 
value="ALTER STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456');" />
+    <distsql-case id="alter-storage-unit-url-multiple" value="ALTER STORAGE 
UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456'), 
ds_1(URL='jdbc:mysql://127.0.0.1:3306/test1',USER='ROOT',PASSWORD='123456');" />
+    <distsql-case id="alter-storage-unit-single-with-properties" value="ALTER 
STORAGE UNIT 
ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'));"
 />
+    <distsql-case id="alter-storage-unit-url-single-with-empty-properties" 
value="ALTER STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PROPERTIES())" />
+    <distsql-case id="alter-storage-unit-url-single-with-properties" 
value="ALTER STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'))"
 />
     <distsql-case id="alter-readwrite-splitting-rule" value="ALTER 
READWRITE_SPLITTING RULE ms_group_0 (AUTO_AWARE_RESOURCE=group_0, 
TYPE(NAME='random',PROPERTIES('read_weight'='2:1'))), ms_group_1 
(WRITE_STORAGE_UNIT=primary_ds, 
READ_STORAGE_UNITS(replica_ds_0,replica_ds_1),TYPE(NAME='random'))" />
     <distsql-case id="alter-database-discovery-definition-rule" value="ALTER 
DB_DISCOVERY RULE ha_group_0 (STORAGE_UNITS(ds_0,ds_1), 
TYPE(NAME='mgr',PROPERTIES('groupName'='92504d5b-6dec')),HEARTBEAT(PROPERTIES('keepAliveCron'='0/5
 * * * * ?'))), ha_group_1 (STORAGE_UNITS(ds_2,ds_3), 
TYPE(NAME='mgr2',PROPERTIES('groupName'='92504d5b-6dec-2')),HEARTBEAT(PROPERTIES('keepAliveCron'='0/6
 * * * * ?')))" />
     <distsql-case id="alter-encrypt-rule" value="ALTER ENCRYPT RULE t_encrypt 
(RESOURCE=ds_1, 
COLUMNS((NAME=user_id,PLAIN=user_plain,CIPHER=user_cipher,TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abc'))),
 (NAME=order_id, CIPHER =order_cipher,TYPE(NAME='MD5'))))" />
diff --git a/test/parser/src/main/resources/sql/supported/rdl/create.xml 
b/test/parser/src/main/resources/sql/supported/rdl/create.xml
index 401cad899b3..f67302289d4 100644
--- a/test/parser/src/main/resources/sql/supported/rdl/create.xml
+++ b/test/parser/src/main/resources/sql/supported/rdl/create.xml
@@ -17,15 +17,15 @@
   -->
 
 <sql-cases>
-    <distsql-case id="add-resource-simple-single-without-password" 
value="REGISTER STORAGE UNIT 
ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT');" />
-    <distsql-case id="add-resource-simple-single-with-password" 
value="REGISTER STORAGE UNIT 
ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456');" />
-    <distsql-case id="add-resource-simple-multiple" value="REGISTER STORAGE 
UNIT ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456'), 
ds_1(HOST='127.0.0.1',PORT=3306,DB='test1',USER='ROOT',PASSWORD='123456');" />
-    <distsql-case id="add-resource-url-single-without-password" 
value="REGISTER STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT');" />
-    <distsql-case id="add-resource-url-single-with-password" value="REGISTER 
STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456');" />
-    <distsql-case id="add-resource-url-multiple" value="REGISTER STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456'), 
ds_1(URL='jdbc:mysql://127.0.0.1:3306/test1',USER='ROOT',PASSWORD='123456');" />
-    <distsql-case id="add-resource-single-with-properties" value="REGISTER 
STORAGE UNIT 
ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30','idleTimeout'=30000));"
 />
-    <distsql-case id="add-resource-url-single-with-empty-properties" 
value="REGISTER STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PROPERTIES())" />
-    <distsql-case id="add-resource-url-single-with-properties" value="REGISTER 
STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'))"
 />
+    <distsql-case id="register-storage-unit-simple-single-without-password" 
value="REGISTER STORAGE UNIT 
ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT');" />
+    <distsql-case id="register-storage-unit-simple-single-with-password" 
value="REGISTER STORAGE UNIT 
ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456');" />
+    <distsql-case id="register-storage-unit-simple-multiple" value="REGISTER 
STORAGE UNIT 
ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456'), 
ds_1(HOST='127.0.0.1',PORT=3306,DB='test1',USER='ROOT',PASSWORD='123456');" />
+    <distsql-case id="register-storage-unit-url-single-without-password" 
value="REGISTER STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT');" />
+    <distsql-case id="register-storage-unit-url-single-with-password" 
value="REGISTER STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456');" />
+    <distsql-case id="register-storage-unit-url-multiple" value="REGISTER 
STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456'), 
ds_1(URL='jdbc:mysql://127.0.0.1:3306/test1',USER='ROOT',PASSWORD='123456');" />
+    <distsql-case id="register-storage-unit-single-with-properties" 
value="REGISTER STORAGE UNIT 
ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30','idleTimeout'=30000));"
 />
+    <distsql-case id="register-storage-unit-url-single-with-empty-properties" 
value="REGISTER STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PROPERTIES())" />
+    <distsql-case id="register-storage-unit-url-single-with-properties" 
value="REGISTER STORAGE UNIT 
ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'))"
 />
     <distsql-case id="create-sharding-auto-table-rule" value="CREATE SHARDING 
TABLE RULE t_order (STORAGE_UNITS(ms_group_0,ms_group_1), 
SHARDING_COLUMN=order_id,TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')),
 KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
     <distsql-case id="create-sharding-auto-table-rule-with-inline-expression" 
value="CREATE SHARDING TABLE RULE t_order (STORAGE_UNITS('ms_group_${0..1}'), 
SHARDING_COLUMN=order_id,TYPE(NAME='hash_mod',PROPERTIES('sharding-count'=4)), 
KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
     <distsql-case id="create-sharding-table-reference-rule" value="CREATE 
SHARDING TABLE REFERENCE RULE (t_order,t_order_item), (t_1,t_2)" />
@@ -46,7 +46,7 @@
     <distsql-case id="create-sharding-table-rule-with-auto-create-algorithm" 
value="CREATE SHARDING TABLE RULE t_order 
(DATANODES('ms_group_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column
 = 
order_id,sharding_algorithm(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id
 % 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column = 
user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id
 % 2}')))),KEY_ [...]
     <distsql-case id="create-default-shadow-algorithm" value="CREATE DEFAULT 
SHADOW ALGORITHM TYPE(NAME='HINT', PROPERTIES('shadow'='true', 'foo'='bar'))" />
     <distsql-case id="create-default-single-table" value="SET DEFAULT SINGLE 
TABLE STORAGE UNIT = ds_0" />
-    <distsql-case id="add-resource-with-quota" value="REGISTER STORAGE UNIT 
`ds_0`(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT');" />
+    <distsql-case id="register-storage-unit-with-quota" value="REGISTER 
STORAGE UNIT `ds_0`(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT');" />
     <distsql-case id="create-sharding-auto-table-rule-with-quota" 
value="CREATE SHARDING TABLE RULE `t_order` 
(STORAGE_UNITS(ms_group_0,ms_group_1), 
SHARDING_COLUMN=order_id,TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')),
 KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
     <distsql-case id="create-broadcast-table-rule-with-quota" value="CREATE 
BROADCAST TABLE RULE `t_1`,`t_2` " />
     <distsql-case id="create-readwrite-splitting-rule-with-quota" 
value="CREATE READWRITE_SPLITTING RULE `ms_group_0` 
(WRITE_STORAGE_UNIT=primary_ds, READ_STORAGE_UNITS(replica_ds_0,replica_ds_1), 
TYPE(NAME='random')))" />
diff --git a/test/parser/src/main/resources/sql/supported/rdl/drop.xml 
b/test/parser/src/main/resources/sql/supported/rdl/drop.xml
index 5524cccae23..c20edb6d230 100644
--- a/test/parser/src/main/resources/sql/supported/rdl/drop.xml
+++ b/test/parser/src/main/resources/sql/supported/rdl/drop.xml
@@ -17,9 +17,9 @@
   -->
 
 <sql-cases>
-    <distsql-case id="drop-resource" value="UNREGISTER STORAGE UNIT ds_0,ds_1" 
/>
-    <distsql-case id="drop-resource-if-exists" value="UNREGISTER STORAGE UNIT 
IF EXISTS ds_0,ds_1" />
-    <distsql-case id="drop-resource-ignore-single-tables" value="UNREGISTER 
STORAGE UNIT ds_0,ds_1 ignore single tables;" />
+    <distsql-case id="unregister-storage-unit" value="UNREGISTER STORAGE UNIT 
ds_0,ds_1" />
+    <distsql-case id="unregister-storage-unit-if-exists" value="UNREGISTER 
STORAGE UNIT IF EXISTS ds_0,ds_1" />
+    <distsql-case id="unregister-storage-unit-ignore-single-tables" 
value="UNREGISTER STORAGE UNIT ds_0,ds_1 ignore single tables;" />
     <distsql-case id="drop-sharding-table-rule" value="DROP SHARDING TABLE 
RULE t_order,t_order_item" />
     <distsql-case id="drop-sharding-table-rule-if-exists" value="DROP SHARDING 
TABLE RULE IF EXISTS t_order,t_order_item" />
     <distsql-case id="drop-sharding-table-reference-rule" value="DROP SHARDING 
TABLE REFERENCE RULE (t_1,t_2)" />

Reply via email to