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 6395d045f73 Optimize distsql about readwrite splitting (#21901)
6395d045f73 is described below

commit 6395d045f731e3e65b805fb1a7b67ccbc3b8ddcf
Author: jiangML <[email protected]>
AuthorDate: Wed Nov 2 22:40:42 2022 +0800

    Optimize distsql about readwrite splitting (#21901)
    
    * optimize distsql about readwrite-splitting
    
    * add test & reanme some class
    
    * improve test
    
    * update code
    
    * add final for class
---
 .../imports/readwrite-splitting/RALStatement.g4    |  4 +-
 .../autogen/ReadwriteSplittingDistSQLStatement.g4  |  2 +-
 .../ReadwriteSplittingDistSQLStatementVisitor.java | 14 ++--
 ...tatusFromReadwriteSplittingRulesStatement.java} |  4 +-
 ...dwriteSplittingStorageUnitStatusStatement.java} |  4 +-
 .../distsql/ral/RALBackendHandlerFactory.java      | 12 ++--
 ...wStatusFromReadwriteSplittingRulesHandler.java} | 10 +--
 ...plittingStorageUnitStatusStatementHandler.java} | 78 +++++++++++-----------
 .../ral/impl/QueryableRALStatementAssert.java      | 12 ++--
 .../ral/impl/UpdatableRALStatementAssert.java      |  6 ++
 ...romReadwriteSplittingRulesStatementAssert.java} | 16 ++---
 ...eSplittingStorageUnitStatusStatementAssert.java | 66 ++++++++++++++++++
 .../jaxb/cases/domain/SQLParserTestCases.java      | 27 +++++---
 ...littingStorageUnitStatusStatementTestCase.java} | 21 +++++-
 ...mReadwriteSplittingRulesStatementTestCase.java} |  4 +-
 .../src/main/resources/case/ral/updatable.xml      |  8 +++
 .../main/resources/sql/supported/ral/updatable.xml |  3 +
 17 files changed, 199 insertions(+), 92 deletions(-)

diff --git 
a/features/readwrite-splitting/distsql/parser/src/main/antlr4/imports/readwrite-splitting/RALStatement.g4
 
b/features/readwrite-splitting/distsql/parser/src/main/antlr4/imports/readwrite-splitting/RALStatement.g4
index 9973fc13a7d..2672c34c648 100644
--- 
a/features/readwrite-splitting/distsql/parser/src/main/antlr4/imports/readwrite-splitting/RALStatement.g4
+++ 
b/features/readwrite-splitting/distsql/parser/src/main/antlr4/imports/readwrite-splitting/RALStatement.g4
@@ -31,8 +31,8 @@ clearReadwriteSplittingHint
     : CLEAR READWRITE_SPLITTING HINT
     ;
 
-alterReadwriteSplittingRuleStatus
-    : ALTER READWRITE_SPLITTING RULE (groupName)? (ENABLE | DISABLE) 
resourceName (FROM databaseName)?
+alterReadwriteSplittingStorageUnitStatus
+    : ALTER READWRITE_SPLITTING RULE (groupName)? (ENABLE | DISABLE) 
storageUnitName (FROM databaseName)?
     ;
 
 showStatusFromReadwriteSplittingRules
diff --git 
a/features/readwrite-splitting/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/ReadwriteSplittingDistSQLStatement.g4
 
b/features/readwrite-splitting/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/ReadwriteSplittingDistSQLStatement.g4
index 97c450a5bae..c1a2c1743d2 100644
--- 
a/features/readwrite-splitting/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/ReadwriteSplittingDistSQLStatement.g4
+++ 
b/features/readwrite-splitting/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/ReadwriteSplittingDistSQLStatement.g4
@@ -27,7 +27,7 @@ execute
     | setReadwriteSplittingHintSource
     | showReadwriteSplittingHintStatus
     | clearReadwriteSplittingHint
-    | alterReadwriteSplittingRuleStatus
+    | alterReadwriteSplittingStorageUnitStatus
     | showStatusFromReadwriteSplittingRules
     | countReadwriteSplittingRule
     ) SEMI?
diff --git 
a/features/readwrite-splitting/distsql/parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java
 
b/features/readwrite-splitting/distsql/parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java
index 07dcc406e67..633338d2015 100644
--- 
a/features/readwrite-splitting/distsql/parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java
+++ 
b/features/readwrite-splitting/distsql/parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java
@@ -21,7 +21,7 @@ import org.antlr.v4.runtime.tree.ParseTree;
 import 
org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementBaseVisitor;
 import 
org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.AlgorithmDefinitionContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.AlterReadwriteSplittingRuleContext;
-import 
org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.AlterReadwriteSplittingRuleStatusContext;
+import 
org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.AlterReadwriteSplittingStorageUnitStatusContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.ClearReadwriteSplittingHintContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.CountReadwriteSplittingRuleContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.CreateReadwriteSplittingRuleContext;
@@ -41,12 +41,12 @@ import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.Alt
 import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.CountReadwriteSplittingRuleStatement;
 import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.CreateReadwriteSplittingRuleStatement;
 import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.DropReadwriteSplittingRuleStatement;
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.ShowReadwriteSplittingReadResourcesStatement;
 import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.ShowReadwriteSplittingRulesStatement;
+import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.ShowStatusFromReadwriteSplittingRulesStatement;
 import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.ClearReadwriteSplittingHintStatement;
 import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.SetReadwriteSplittingHintStatement;
 import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.ShowReadwriteSplittingHintStatusStatement;
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.status.SetReadwriteSplittingStatusStatement;
+import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.status.AlterReadwriteSplittingStorageUnitStatusStatement;
 import org.apache.shardingsphere.sql.parser.api.visitor.ASTNode;
 import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
@@ -77,12 +77,12 @@ public final class 
ReadwriteSplittingDistSQLStatementVisitor extends ReadwriteSp
     }
     
     @Override
-    public ASTNode visitAlterReadwriteSplittingRuleStatus(final 
AlterReadwriteSplittingRuleStatusContext ctx) {
+    public ASTNode visitAlterReadwriteSplittingStorageUnitStatus(final 
AlterReadwriteSplittingStorageUnitStatusContext ctx) {
         DatabaseSegment databaseSegment = Objects.nonNull(ctx.databaseName()) 
? (DatabaseSegment) visit(ctx.databaseName()) : null;
         String groupName = getIdentifierValue(ctx.groupName());
         String status = null == ctx.ENABLE() ? 
ctx.DISABLE().getText().toUpperCase() : ctx.ENABLE().getText().toUpperCase();
-        String resourceName = getIdentifierValue(ctx.resourceName());
-        return new SetReadwriteSplittingStatusStatement(databaseSegment, 
groupName, resourceName, status);
+        String storageUnitName = getIdentifierValue(ctx.storageUnitName());
+        return new 
AlterReadwriteSplittingStorageUnitStatusStatement(databaseSegment, groupName, 
storageUnitName, status);
     }
     
     @Override
@@ -123,7 +123,7 @@ public final class 
ReadwriteSplittingDistSQLStatementVisitor extends ReadwriteSp
     public ASTNode visitShowStatusFromReadwriteSplittingRules(final 
ShowStatusFromReadwriteSplittingRulesContext ctx) {
         DatabaseSegment databaseSegment = Objects.nonNull(ctx.databaseName()) 
? (DatabaseSegment) visit(ctx.databaseName()) : null;
         String groupName = getIdentifierValue(ctx.groupName());
-        return new 
ShowReadwriteSplittingReadResourcesStatement(databaseSegment, groupName);
+        return new 
ShowStatusFromReadwriteSplittingRulesStatement(databaseSegment, groupName);
     }
     
     @Override
diff --git 
a/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/ShowReadwriteSplittingReadResourcesStatement.java
 
b/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/ShowStatusFromReadwriteSplittingRulesStatement.java
similarity index 88%
rename from 
features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/ShowReadwriteSplittingReadResourcesStatement.java
rename to 
features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/ShowStatusFromReadwriteSplittingRulesStatement.java
index cef193fe0c5..14a30bb5ef4 100644
--- 
a/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/ShowReadwriteSplittingReadResourcesStatement.java
+++ 
b/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/ShowStatusFromReadwriteSplittingRulesStatement.java
@@ -26,12 +26,12 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.statement.available.FromD
 import java.util.Optional;
 
 /**
- * Show readwrite-splitting read resources statement.
+ * Show status from readwrite splitting rules statement.
  */
 
 @Getter
 @RequiredArgsConstructor
-public final class ShowReadwriteSplittingReadResourcesStatement extends 
QueryableRALStatement implements FromDatabaseAvailable {
+public final class ShowStatusFromReadwriteSplittingRulesStatement extends 
QueryableRALStatement implements FromDatabaseAvailable {
     
     private final DatabaseSegment database;
     
diff --git 
a/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/status/SetReadwriteSplittingStatusStatement.java
 
b/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/status/AlterReadwriteSplittingStorageUnitStatusStatement.java
similarity index 90%
rename from 
features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/status/SetReadwriteSplittingStatusStatement.java
rename to 
features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/status/AlterReadwriteSplittingStorageUnitStatusStatement.java
index d8fdc4ad1a3..5f389d5eab1 100644
--- 
a/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/status/SetReadwriteSplittingStatusStatement.java
+++ 
b/features/readwrite-splitting/distsql/statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/status/AlterReadwriteSplittingStorageUnitStatusStatement.java
@@ -30,13 +30,13 @@ import java.util.Optional;
  */
 @RequiredArgsConstructor
 @Getter
-public class SetReadwriteSplittingStatusStatement extends 
UpdatableRALStatement implements FromDatabaseAvailable {
+public final class AlterReadwriteSplittingStorageUnitStatusStatement extends 
UpdatableRALStatement implements FromDatabaseAvailable {
     
     private final DatabaseSegment database;
     
     private final String groupName;
     
-    private final String resourceName;
+    private final String storageUnitName;
     
     private final String status;
     
diff --git 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
index ef9069ce701..3b85a82ee85 100644
--- 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
+++ 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
@@ -57,7 +57,7 @@ import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.Sho
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowComputeNodeInfoHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowComputeNodesHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowComputeNodeModeHandler;
-import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowReadwriteSplittingReadResourcesHandler;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowStatusFromReadwriteSplittingRulesHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowTableMetadataHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowDistVariableHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.ApplyDistSQLHandler;
@@ -67,12 +67,12 @@ import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.Lab
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.PrepareDistSQLHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.RefreshTableMetadataHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.SetInstanceStatusHandler;
-import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.SetReadwriteSplittingStatusHandler;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.AlterReadwriteSplittingStorageUnitStatusStatementHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.SetDistVariableHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.UnlabelComputeNodeHandler;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.ShowReadwriteSplittingReadResourcesStatement;
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.status.SetReadwriteSplittingStatusStatement;
+import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.ShowStatusFromReadwriteSplittingRulesStatement;
+import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.status.AlterReadwriteSplittingStorageUnitStatusStatement;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -90,7 +90,7 @@ public final class RALBackendHandlerFactory {
         HANDLERS.put(UnlabelComputeNodeStatement.class, 
UnlabelComputeNodeHandler.class);
         HANDLERS.put(SetInstanceStatusStatement.class, 
SetInstanceStatusHandler.class);
         HANDLERS.put(SetDistVariableStatement.class, 
SetDistVariableHandler.class);
-        HANDLERS.put(SetReadwriteSplittingStatusStatement.class, 
SetReadwriteSplittingStatusHandler.class);
+        HANDLERS.put(AlterReadwriteSplittingStorageUnitStatusStatement.class, 
AlterReadwriteSplittingStorageUnitStatusStatementHandler.class);
         HANDLERS.put(RefreshTableMetadataStatement.class, 
RefreshTableMetadataHandler.class);
         HANDLERS.put(PrepareDistSQLStatement.class, 
PrepareDistSQLHandler.class);
         HANDLERS.put(ApplyDistSQLStatement.class, ApplyDistSQLHandler.class);
@@ -99,7 +99,7 @@ public final class RALBackendHandlerFactory {
         HANDLERS.put(ShowComputeNodesStatement.class, 
ShowComputeNodesHandler.class);
         HANDLERS.put(ShowDistVariableStatement.class, 
ShowDistVariableHandler.class);
         HANDLERS.put(ShowDistVariablesStatement.class, 
ShowDistVariablesHandler.class);
-        HANDLERS.put(ShowReadwriteSplittingReadResourcesStatement.class, 
ShowReadwriteSplittingReadResourcesHandler.class);
+        HANDLERS.put(ShowStatusFromReadwriteSplittingRulesStatement.class, 
ShowStatusFromReadwriteSplittingRulesHandler.class);
         HANDLERS.put(ShowTableMetadataStatement.class, 
ShowTableMetadataHandler.class);
         HANDLERS.put(ExportDatabaseConfigurationStatement.class, 
ExportDatabaseConfigurationHandler.class);
         HANDLERS.put(ConvertYamlConfigurationStatement.class, 
ConvertYamlConfigurationHandler.class);
diff --git 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowReadwriteSplittingReadResourcesHandler.java
 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowStatusFromReadwriteSplittingRulesHandler.java
similarity index 95%
rename from 
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowReadwriteSplittingReadResourcesHandler.java
rename to 
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowStatusFromReadwriteSplittingRulesHandler.java
index fd7a6a3cbe5..5519f6f27c9 100644
--- 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowReadwriteSplittingReadResourcesHandler.java
+++ 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowStatusFromReadwriteSplittingRulesHandler.java
@@ -36,7 +36,7 @@ import 
org.apache.shardingsphere.mode.metadata.storage.StorageNodeStatus;
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.QueryableRALBackendHandler;
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.ShowReadwriteSplittingReadResourcesStatement;
+import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.ShowStatusFromReadwriteSplittingRulesStatement;
 
 import java.util.Arrays;
 import java.util.Collection;
@@ -50,11 +50,11 @@ import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
 /**
- * Show readwrite-splitting read resources executor.
+ * Show status from readwrite-splitting rules executor.
  */
-public final class ShowReadwriteSplittingReadResourcesHandler extends 
QueryableRALBackendHandler<ShowReadwriteSplittingReadResourcesStatement> {
+public final class ShowStatusFromReadwriteSplittingRulesHandler extends 
QueryableRALBackendHandler<ShowStatusFromReadwriteSplittingRulesStatement> {
     
-    private static final String RESOURCE = "resource";
+    private static final String STORAGE_UNIT = "storage_unit";
     
     private static final String STATUS = "status";
     
@@ -62,7 +62,7 @@ public final class ShowReadwriteSplittingReadResourcesHandler 
extends QueryableR
     
     @Override
     protected Collection<String> getColumnNames() {
-        return Arrays.asList(RESOURCE, STATUS, DELAY_TIME);
+        return Arrays.asList(STORAGE_UNIT, STATUS, DELAY_TIME);
     }
     
     @Override
diff --git 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetReadwriteSplittingStatusHandler.java
 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/AlterReadwriteSplittingStorageUnitStatusStatementHandler.java
similarity index 78%
rename from 
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetReadwriteSplittingStatusHandler.java
rename to 
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/AlterReadwriteSplittingStorageUnitStatusStatementHandler.java
index cf7127408b3..287da441e15 100644
--- 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetReadwriteSplittingStatusHandler.java
+++ 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/AlterReadwriteSplittingStorageUnitStatusStatementHandler.java
@@ -38,7 +38,7 @@ import 
org.apache.shardingsphere.mode.metadata.storage.event.DataSourceDisabledE
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.UpdatableRALBackendHandler;
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.status.SetReadwriteSplittingStatusStatement;
+import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.status.AlterReadwriteSplittingStorageUnitStatusStatement;
 import 
org.apache.shardingsphere.readwritesplitting.rule.ReadwriteSplittingRule;
 
 import java.util.Arrays;
@@ -51,41 +51,41 @@ import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
- * Set readwrite-splitting status handler.
+ * Set readwrite-splitting storage unit status handler.
  */
-public final class SetReadwriteSplittingStatusHandler extends 
UpdatableRALBackendHandler<SetReadwriteSplittingStatusStatement> {
+public final class AlterReadwriteSplittingStorageUnitStatusStatementHandler 
extends 
UpdatableRALBackendHandler<AlterReadwriteSplittingStorageUnitStatusStatement> {
     
     private static final String DISABLE = "DISABLE";
     
     @Override
     protected void update(final ContextManager contextManager) {
         String databaseName = getSqlStatement().getDatabase().isPresent() ? 
getSqlStatement().getDatabase().get().getIdentifier().getValue() : 
getConnectionSession().getDatabaseName();
-        String toBeUpdatedResource = getSqlStatement().getResourceName();
+        String toBeUpdatedStorageUnit = getSqlStatement().getStorageUnitName();
         checkModeAndPersistRepository(contextManager);
         checkDatabaseName(databaseName);
         checkReadwriteSplittingRule(contextManager, databaseName);
-        Map<String, String> replicaResources = 
getReplicaResources(contextManager, databaseName);
-        Map<String, String> disabledResources = 
getDisabledResources(contextManager, databaseName);
+        Map<String, String> replicaStorageUnits = 
getReplicaResources(contextManager, databaseName);
+        Map<String, String> disabledStorageUnits = 
getDisabledResources(contextManager, databaseName);
         Map<String, String> autoAwareResources = 
getAutoAwareResources(contextManager, databaseName);
         boolean isDisable = DISABLE.equals(getSqlStatement().getStatus());
         if (isDisable) {
-            checkDisable(contextManager, databaseName, 
disabledResources.keySet(), toBeUpdatedResource, replicaResources);
+            checkDisable(contextManager, databaseName, 
disabledStorageUnits.keySet(), toBeUpdatedStorageUnit, replicaStorageUnits);
         } else {
-            checkEnable(contextManager, databaseName, disabledResources, 
toBeUpdatedResource);
+            checkEnable(contextManager, databaseName, disabledStorageUnits, 
toBeUpdatedStorageUnit);
         }
-        Collection<String> groupNames = getGroupNames(toBeUpdatedResource, 
replicaResources, disabledResources, autoAwareResources);
+        Collection<String> groupNames = getGroupNames(toBeUpdatedStorageUnit, 
replicaStorageUnits, disabledStorageUnits, autoAwareResources);
         String groupName = getSqlStatement().getGroupName();
         if (Strings.isNullOrEmpty(groupName)) {
-            updateStatus(databaseName, groupNames, toBeUpdatedResource, 
isDisable);
+            updateStatus(databaseName, groupNames, toBeUpdatedStorageUnit, 
isDisable);
         } else {
             checkGroupName(groupNames, groupName);
-            updateStatus(databaseName, Collections.singleton(groupName), 
toBeUpdatedResource, isDisable);
+            updateStatus(databaseName, Collections.singleton(groupName), 
toBeUpdatedStorageUnit, isDisable);
         }
     }
     
     private void checkReadwriteSplittingRule(final ContextManager 
contextManager, final String databaseName) {
         Optional<ReadwriteSplittingRule> rule = 
contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getRuleMetaData().findSingleRule(ReadwriteSplittingRule.class);
-        ShardingSpherePreconditions.checkState(rule.isPresent(), () -> new 
UnsupportedSQLOperationException("The current schema has no read_write 
splitting rules"));
+        ShardingSpherePreconditions.checkState(rule.isPresent(), () -> new 
UnsupportedSQLOperationException("The current database has no read_write 
splitting rules"));
     }
     
     private void checkModeAndPersistRepository(final ContextManager 
contextManager) {
@@ -102,7 +102,8 @@ public final class SetReadwriteSplittingStatusHandler 
extends UpdatableRALBacken
     }
     
     private void checkGroupName(final Collection<String> groupNames, final 
String groupName) {
-        ShardingSpherePreconditions.checkState(groupNames.contains(groupName), 
() -> new UnsupportedSQLOperationException(String.format("The current schema 
does not contain %s", groupName)));
+        ShardingSpherePreconditions.checkState(groupNames.contains(groupName),
+                () -> new UnsupportedSQLOperationException(String.format("The 
current database does not exist the group `%s`", groupName)));
     }
     
     private Map<String, String> getReplicaResources(final ContextManager 
contextManager, final String databaseName) {
@@ -141,44 +142,45 @@ public final class SetReadwriteSplittingStatusHandler 
extends UpdatableRALBacken
         
ShardingSpherePreconditions.checkState(disabledResources.contains(toBeEnabledResource),
 () -> new UnsupportedSQLOperationException(String.format("`%s` is not 
disabled", toBeEnabledResource)));
     }
     
-    private void checkDisable(final ContextManager contextManager, final 
String databaseName, final Collection<String> disabledResources, final String 
toBeDisabledResource,
+    private void checkDisable(final ContextManager contextManager, final 
String databaseName, final Collection<String> disabledStorageUnits, final 
String toBeDisabledStorageUnit,
                               final Map<String, String> replicaResources) {
-        checkResourceExists(contextManager, databaseName, 
toBeDisabledResource);
-        checkIsDisabled(replicaResources, disabledResources, 
toBeDisabledResource);
-        checkIsReplicaResource(replicaResources, toBeDisabledResource);
-        checkIsLastResource(replicaResources, toBeDisabledResource);
+        checkResourceExists(contextManager, databaseName, 
toBeDisabledStorageUnit);
+        checkIsDisabled(replicaResources, disabledStorageUnits, 
toBeDisabledStorageUnit);
+        checkIsReplicaResource(replicaResources, toBeDisabledStorageUnit);
+        checkIsLastResource(replicaResources, toBeDisabledStorageUnit);
     }
     
-    private void checkIsDisabled(final Map<String, String> replicaResources, 
final Collection<String> disabledResources, final String toBeDisabledResource) {
-        String toBeDisableResourceRuleNames = 
replicaResources.get(toBeDisabledResource);
-        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(toBeDisableResourceRuleNames)
 || !disabledResources.contains(toBeDisabledResource),
-                () -> new UnsupportedSQLOperationException(String.format("`%s` 
has been disabled", toBeDisabledResource)));
+    private void checkIsDisabled(final Map<String, String> replicaResources, 
final Collection<String> disabledStorageUnits, final String 
toBeDisabledStorageUnit) {
+        String toBeDisableResourceRuleNames = 
replicaResources.get(toBeDisabledStorageUnit);
+        
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(toBeDisableResourceRuleNames)
 || !disabledStorageUnits.contains(toBeDisabledStorageUnit),
+                () -> new UnsupportedSQLOperationException(String.format("`%s` 
has been disabled", toBeDisabledStorageUnit)));
     }
     
-    private void checkIsReplicaResource(final Map<String, String> 
replicaResources, final String toBeDisabledResource) {
-        
ShardingSpherePreconditions.checkState(replicaResources.containsKey(toBeDisabledResource),
-                () -> new UnsupportedSQLOperationException(String.format("`%s` 
is not used as a read resource by any read-write separation rules,cannot be 
disabled", toBeDisabledResource)));
+    private void checkIsReplicaResource(final Map<String, String> 
replicaStorageUnits, final String toBeDisabledStorageUnit) {
+        
ShardingSpherePreconditions.checkState(replicaStorageUnits.containsKey(toBeDisabledStorageUnit),
+                () -> new UnsupportedSQLOperationException(String.format("`%s` 
is not used as a read storage unit by any read-write separation rules,cannot be 
disabled", toBeDisabledStorageUnit)));
     }
     
-    private void checkIsLastResource(final Map<String, String> 
replicaResources, final String toBeDisabledResource) {
-        Collection<String> onlyOneResourceRules = 
getOnlyOneResourceRules(replicaResources);
-        Collection<String> toBeDisabledResourceRuleNames = 
Splitter.on(",").trimResults().splitToList(replicaResources.get(toBeDisabledResource));
+    private void checkIsLastResource(final Map<String, String> 
replicaStorageUnits, final String toBeDisabledStorageUnit) {
+        Collection<String> onlyOneResourceRules = 
getOnlyOneResourceRules(replicaStorageUnits);
+        Collection<String> toBeDisabledResourceRuleNames = 
Splitter.on(",").trimResults().splitToList(replicaStorageUnits.get(toBeDisabledStorageUnit));
         onlyOneResourceRules = 
onlyOneResourceRules.stream().filter(toBeDisabledResourceRuleNames::contains).collect(Collectors.toSet());
         Collection<String> finalOnlyOneResourceRules = onlyOneResourceRules;
         ShardingSpherePreconditions.checkState(onlyOneResourceRules.isEmpty(),
-                () -> new UnsupportedSQLOperationException(String.format("`%s` 
is the last read resource in `%s`, cannot be disabled", toBeDisabledResource, 
finalOnlyOneResourceRules)));
+                () -> new UnsupportedSQLOperationException(String.format("`%s` 
is the last read storage unit in `%s`, cannot be disabled", 
toBeDisabledStorageUnit, finalOnlyOneResourceRules)));
     }
     
-    private Collection<String> getGroupNames(final String toBeDisableResource, 
final Map<String, String> replicaResources,
-                                             final Map<String, String> 
disabledResources, final Map<String, String> autoAwareResources) {
-        String groupNames = 
autoAwareResources.getOrDefault(toBeDisableResource, 
replicaResources.getOrDefault(toBeDisableResource, 
disabledResources.get(toBeDisableResource)));
+    private Collection<String> getGroupNames(final String 
toBeDisableStorageUnit, final Map<String, String> replicaStorageUnits,
+                                             final Map<String, String> 
disabledStorageUnits, final Map<String, String> autoAwareResources) {
+        String groupNames = 
autoAwareResources.getOrDefault(toBeDisableStorageUnit, 
replicaStorageUnits.getOrDefault(toBeDisableStorageUnit, 
disabledStorageUnits.get(toBeDisableStorageUnit)));
         return Splitter.on(",").splitToList(groupNames);
     }
     
-    private void updateStatus(final String databaseName, final 
Collection<String> groupNames, final String toBeDisableResource, final boolean 
isDisable) {
+    private void updateStatus(final String databaseName, final 
Collection<String> groupNames, final String toBeDisableStorageUnit, final 
boolean isDisable) {
         groupNames.forEach(each -> {
             StorageNodeDataSource storageNodeDataSource = new 
StorageNodeDataSource(StorageNodeRole.MEMBER, isDisable ? 
StorageNodeStatus.DISABLED : StorageNodeStatus.ENABLED);
-            
ProxyContext.getInstance().getContextManager().getInstanceContext().getEventBusContext().post(new
 DataSourceDisabledEvent(databaseName, each, toBeDisableResource, 
storageNodeDataSource));
+            
ProxyContext.getInstance().getContextManager().getInstanceContext().getEventBusContext()
+                    .post(new DataSourceDisabledEvent(databaseName, each, 
toBeDisableStorageUnit, storageNodeDataSource));
         });
     }
     
@@ -201,15 +203,15 @@ public final class SetReadwriteSplittingStatusHandler 
extends UpdatableRALBacken
         return result;
     }
     
-    private Collection<String> getOnlyOneResourceRules(final Map<String, 
String> replicaResources) {
-        return replicaResources.values().stream().map(databaseName -> 
Arrays.stream(databaseName.split(",")).collect(Collectors.toMap(each -> each, 
each -> 1)).entrySet())
+    private Collection<String> getOnlyOneResourceRules(final Map<String, 
String> replicaStorageUnits) {
+        return replicaStorageUnits.values().stream().map(databaseName -> 
Arrays.stream(databaseName.split(",")).collect(Collectors.toMap(each -> each, 
each -> 1)).entrySet())
                 
.flatMap(Collection::stream).collect(Collectors.toMap(Entry::getKey, 
Entry::getValue, Integer::sum)).entrySet().stream()
                 .filter(entry -> entry.getValue() <= 
1).map(Entry::getKey).collect(Collectors.toSet());
     }
     
-    private void addReplicaResource(final Map<String, String> 
replicaResources, final Entry<String, Map<String, String>> 
readwriteSplittingRule) {
+    private void addReplicaResource(final Map<String, String> 
replicaStorageUnits, final Entry<String, Map<String, String>> 
readwriteSplittingRule) {
         readwriteSplittingRule.getValue().entrySet().stream().filter(entry -> 
ExportableItemConstants.REPLICA_DATA_SOURCE_NAMES.equals(entry.getKey()))
-                .map(entry -> 
Arrays.asList(entry.getValue().split(","))).flatMap(Collection::stream).forEach(each
 -> put(replicaResources, each, readwriteSplittingRule.getKey()));
+                .map(entry -> 
Arrays.asList(entry.getValue().split(","))).flatMap(Collection::stream).forEach(each
 -> put(replicaStorageUnits, each, readwriteSplittingRule.getKey()));
     }
     
     private void put(final Map<String, String> map, final String key, final 
String value) {
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/QueryableRALStatementAssert.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/QueryableRALStatementAssert.java
index f70c7325537..3a87e0b2f4f 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/QueryableRALStatementAssert.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/QueryableRALStatementAssert.java
@@ -30,7 +30,7 @@ import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowComp
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowTableMetadataStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowDistVariableStatement;
 import 
org.apache.shardingsphere.parser.distsql.parser.statement.queryable.ShowSQLParserRuleStatement;
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.ShowReadwriteSplittingReadResourcesStatement;
+import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.ShowStatusFromReadwriteSplittingRulesStatement;
 import 
org.apache.shardingsphere.sqltranslator.distsql.parser.statement.ShowSQLTranslatorRuleStatement;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.queryable.ConvertYamlConfigurationStatementAssert;
@@ -40,7 +40,7 @@ import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.queryable.ShowComputeNodeInfoStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.queryable.ShowComputeNodesStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.queryable.ShowComputeNodeModeStatementAssert;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.queryable.ShowReadwriteSplittingReadResourcesStatementAssert;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.queryable.ShowStatusFromReadwriteSplittingRulesStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.queryable.ShowSQLParserRuleStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.queryable.ShowSQLTranslatorRuleStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.queryable.ShowTableMetadataStatementAssert;
@@ -55,7 +55,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.ral.ShowComputeNodeInfoStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowComputeNodesStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowComputeNodeModeStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowReadwriteSplittingReadResourcesStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowStatusFromReadwriteSplittingRulesStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowSQLParserRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowSQLTranslatorRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowTableMetadataStatementTestCase;
@@ -85,9 +85,9 @@ public final class QueryableRALStatementAssert {
             ShowDistVariablesStatementAssert.assertIs(assertContext, 
(ShowDistVariablesStatement) actual, (ShowDistVariablesStatementTestCase) 
expected);
         } else if (actual instanceof ShowComputeNodesStatement) {
             ShowComputeNodesStatementAssert.assertIs(assertContext, 
(ShowComputeNodesStatement) actual, (ShowComputeNodesStatementTestCase) 
expected);
-        } else if (actual instanceof 
ShowReadwriteSplittingReadResourcesStatement) {
-            
ShowReadwriteSplittingReadResourcesStatementAssert.assertIs(assertContext, 
(ShowReadwriteSplittingReadResourcesStatement) actual,
-                    (ShowReadwriteSplittingReadResourcesStatementTestCase) 
expected);
+        } else if (actual instanceof 
ShowStatusFromReadwriteSplittingRulesStatement) {
+            
ShowStatusFromReadwriteSplittingRulesStatementAssert.assertIs(assertContext, 
(ShowStatusFromReadwriteSplittingRulesStatement) actual,
+                    (ShowStatusFromReadwriteSplittingRulesStatementTestCase) 
expected);
         } else if (actual instanceof ShowTableMetadataStatement) {
             ShowTableMetadataStatementAssert.assertIs(assertContext, 
(ShowTableMetadataStatement) actual, (ShowTableMetadataStatementTestCase) 
expected);
         } else if (actual instanceof ShowAuthorityRuleStatement) {
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/UpdatableRALStatementAssert.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/UpdatableRALStatementAssert.java
index de58a0ffd2b..eadd52e52f4 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/UpdatableRALStatementAssert.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/UpdatableRALStatementAssert.java
@@ -27,8 +27,10 @@ import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.RefreshT
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.SetDistVariableStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.UnlabelComputeNodeStatement;
 import 
org.apache.shardingsphere.parser.distsql.parser.statement.updatable.AlterSQLParserRuleStatement;
+import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.status.AlterReadwriteSplittingStorageUnitStatusStatement;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.updatable.AlterComputeNodeStatementAssert;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.updatable.AlterReadwriteSplittingStorageUnitStatusStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.updatable.AlterSQLParserRuleStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.updatable.AlterTrafficRuleStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.updatable.AlterTransactionRuleStatementAssert;
@@ -41,6 +43,7 @@ import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.updatable.UnlabelComputeNodeStatementAssert;
 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.ral.AlterComputeNodeStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.AlterReadwriteSplittingStorageUnitStatusStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.AlterSQLParserRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.AlterTrafficRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.CreateTrafficRuleStatementTestCase;
@@ -91,6 +94,9 @@ public final class UpdatableRALStatementAssert {
             ImportDatabaseConfigurationStatementAssert.assertIs(assertContext, 
(ImportDatabaseConfigurationStatement) actual, 
(ImportDatabaseConfigurationStatementTestCase) expected);
         } else if (actual instanceof AlterTransactionRuleStatement) {
             AlterTransactionRuleStatementAssert.assertIs(assertContext, 
(AlterTransactionRuleStatement) actual, expected);
+        } else if (actual instanceof 
AlterReadwriteSplittingStorageUnitStatusStatement) {
+            
AlterReadwriteSplittingStorageUnitStatusStatementAssert.assertIs(assertContext,
+                    (AlterReadwriteSplittingStorageUnitStatusStatement) 
actual, (AlterReadwriteSplittingStorageUnitStatusStatementTestCase) expected);
         }
     }
 }
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/queryable/ShowReadwriteSplittingReadResourcesStatementAssert.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/queryable/ShowStatusFromReadwriteSplittingRulesStatementAssert.java
similarity index 72%
rename from 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/queryable/ShowReadwriteSplittingReadResourcesStatementAssert.java
rename to 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/queryable/ShowStatusFromReadwriteSplittingRulesStatementAssert.java
index 48236ef6d8e..da9f5e7b287 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/queryable/ShowReadwriteSplittingReadResourcesStatementAssert.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/queryable/ShowStatusFromReadwriteSplittingRulesStatementAssert.java
@@ -17,27 +17,27 @@
 
 package 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.queryable;
 
-import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.ShowReadwriteSplittingReadResourcesStatement;
+import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.ShowStatusFromReadwriteSplittingRulesStatement;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowReadwriteSplittingReadResourcesStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowStatusFromReadwriteSplittingRulesStatementTestCase;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
 /**
- * Show readwrite-splitting read resources statement assert.
+ * Show status from readwrite-splitting rules statement assert.
  */
-public final class ShowReadwriteSplittingReadResourcesStatementAssert {
+public final class ShowStatusFromReadwriteSplittingRulesStatementAssert {
     
     /**
      * Assert show readwrite-splitting read resources statement is correct 
with expected parser result.
      *
      * @param assertContext assert context
-     * @param actual actual show readwrite-splitting read resources statement
-     * @param expected expected show readwrite-splitting read resources 
statement test case
+     * @param actual actual show status from readwrite-splitting rules 
statement
+     * @param expected expected show status from readwrite-splitting rules 
statement test case
      */
-    public static void assertIs(final SQLCaseAssertContext assertContext, 
final ShowReadwriteSplittingReadResourcesStatement actual,
-                                final 
ShowReadwriteSplittingReadResourcesStatementTestCase expected) {
+    public static void assertIs(final SQLCaseAssertContext assertContext, 
final ShowStatusFromReadwriteSplittingRulesStatement actual,
+                                final 
ShowStatusFromReadwriteSplittingRulesStatementTestCase 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/ral/impl/updatable/AlterReadwriteSplittingStorageUnitStatusStatementAssert.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/updatable/AlterReadwriteSplittingStorageUnitStatusStatementAssert.java
new file mode 100644
index 00000000000..250d8743eb2
--- /dev/null
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/updatable/AlterReadwriteSplittingStorageUnitStatusStatementAssert.java
@@ -0,0 +1,66 @@
+/*
+ * 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.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.updatable;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.status.AlterReadwriteSplittingStorageUnitStatusStatement;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.database.DatabaseAssert;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.DatabaseContainedTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.AlterReadwriteSplittingStorageUnitStatusStatementTestCase;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class AlterReadwriteSplittingStorageUnitStatusStatementAssert {
+    
+    /**
+     * Alter readwrite splitting storage unit status statement is correct with 
expected parser result.
+     *
+     * @param assertContext assert context
+     * @param actual actual alter readwrite splitting storage unit status 
statement
+     * @param expected expected alter readwrite splitting storage unit status 
statement test case
+     */
+    public static void assertIs(final SQLCaseAssertContext assertContext, 
final AlterReadwriteSplittingStorageUnitStatusStatement actual,
+                                final 
AlterReadwriteSplittingStorageUnitStatusStatementTestCase expected) {
+        if (null == expected) {
+            assertNull(assertContext.getText("Actual statement should not 
exist."), actual);
+        } else {
+            assertNotNull(assertContext.getText("Actual statement should 
exist."), actual);
+            assertThat(actual.getGroupName(), is(expected.getGroupName()));
+            assertThat(actual.getStorageUnitName(), 
is(expected.getStorageUnitName()));
+            assertThat(actual.getStatus(), is(expected.getStatus()));
+            assertIs(assertContext, actual, (DatabaseContainedTestCase) 
expected);
+        }
+    }
+    
+    private static void assertIs(final SQLCaseAssertContext assertContext, 
final AlterReadwriteSplittingStorageUnitStatusStatement actual, final 
DatabaseContainedTestCase expected) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not 
exist."), actual.getDatabase().isPresent());
+        } else {
+            assertTrue(assertContext.getText("Actual database should exist."), 
actual.getDatabase().isPresent());
+            DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), 
expected.getDatabase());
+        }
+    }
+}
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 b8c541945ac..75dd22696fa 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
@@ -280,6 +280,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.ral.AddShardingHintTableValueStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.AlterComputeNodeStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.AlterLocalTransactionRuleStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.AlterReadwriteSplittingStorageUnitStatusStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.AlterSQLParserRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.AlterTrafficRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.AlterXATransactionRuleStatementTestCase;
@@ -300,17 +301,17 @@ import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.SetReadwriteSplittingHintStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.SetShardingHintDatabaseValueStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowAuthorityRuleStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowDistVariableStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowDistVariablesStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowComputeNodeInfoStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowComputeNodeModeStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowComputeNodesStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowDistVariableStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowDistVariablesStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowMigrationListStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowComputeNodeModeStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowReadwriteSplittingHintStatusStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowReadwriteSplittingReadResourcesStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowSQLParserRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowSQLTranslatorRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowShardingHintStatusStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowStatusFromReadwriteSplittingRulesStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowTableMetadataStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowTrafficRulesStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowTransactionRuleStatementTestCase;
@@ -333,13 +334,12 @@ 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.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.RegisterStorageUnitStatementTestCase;
+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.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;
@@ -353,6 +353,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.create.CreateShardingAutoTableRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingTableReferenceRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateShardingTableRuleStatementTestCase;
+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.DropBroadcastTableRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropDataBaseDiscoveryHeartbeatStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropDataBaseDiscoveryRuleStatementTestCase;
@@ -360,14 +361,14 @@ 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.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;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingAuditorStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingTableReferenceRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingKeyGeneratorStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingTableReferenceRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropShardingTableRuleStatementTestCase;
+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.rql.CountDatabaseDiscoveryRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.CountEncryptRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.CountReadwriteSplittingRuleStatementTestCase;
@@ -386,9 +387,9 @@ import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShadowTableRulesStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingAlgorithmsStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingAuditorsStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingTableReferenceRulesStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingKeyGeneratorsStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingTableNodesStatementTestCase;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingTableReferenceRulesStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingTableRulesStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingTableRulesUsedAlgorithmStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingTableRulesUsedAuditorStatementTestCase;
@@ -1114,7 +1115,7 @@ public final class SQLParserTestCases {
     private final List<CloneStatementTestCase> cloneTestCases = new 
LinkedList<>();
     
     @XmlElement(name = "show-status-from-readwrite-splitting-rules")
-    private final List<ShowReadwriteSplittingReadResourcesStatementTestCase> 
showReadwriteSplittingReadResourcesTestCases = new LinkedList<>();
+    private final List<ShowStatusFromReadwriteSplittingRulesStatementTestCase> 
showStatusFromReadwriteSplittingRulesTestCases = new LinkedList<>();
     
     @XmlElement(name = "uninstall-component")
     private final List<UninstallComponentStatementTestCase> 
uninstallComponentTestCases = new LinkedList<>();
@@ -1650,6 +1651,12 @@ public final class SQLParserTestCases {
     @XmlElement(name = "drop-materialized-zonemap")
     private final List<DropMaterializedZonemapStatementTestCase> 
dropMaterializedZonemapTestCases = new LinkedList<>();
     
+    @XmlElement(name = "alter-readwrite-splitting-storage-unit-status-enable")
+    private final 
List<AlterReadwriteSplittingStorageUnitStatusStatementTestCase> 
alterReadwriteSplittingStorageUnitStatusStatementEnableTestCases = new 
LinkedList<>();
+    
+    @XmlElement(name = "alter-readwrite-splitting-storage-unit-status-disable")
+    private final 
List<AlterReadwriteSplittingStorageUnitStatusStatementTestCase> 
alterReadwriteSplittingStorageUnitStatusStatementDisableTestCases = new 
LinkedList<>();
+    
     /**
      * Get all SQL parser test cases.
      *
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowReadwriteSplittingReadResourcesStatementTestCase.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/AlterReadwriteSplittingStorageUnitStatusStatementTestCase.java
similarity index 63%
copy from 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowReadwriteSplittingReadResourcesStatementTestCase.java
copy to 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/AlterReadwriteSplittingStorageUnitStatusStatementTestCase.java
index 3b84cc91f7d..f6670a87338 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowReadwriteSplittingReadResourcesStatementTestCase.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/AlterReadwriteSplittingStorageUnitStatusStatementTestCase.java
@@ -17,10 +17,25 @@
 
 package 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral;
 
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
+import lombok.Getter;
+import lombok.Setter;
+import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.DatabaseContainedTestCase;
+
+import javax.xml.bind.annotation.XmlAttribute;
 
 /**
- * Show readwrite-splitting read resources statement test case.
+ * Alter readwrite splitting storage unit status statement test case.
  */
-public final class ShowReadwriteSplittingReadResourcesStatementTestCase 
extends SQLParserTestCase {
+@Getter
+@Setter
+public final class AlterReadwriteSplittingStorageUnitStatusStatementTestCase 
extends DatabaseContainedTestCase {
+    
+    @XmlAttribute(name = "group-name")
+    private String groupName;
+    
+    @XmlAttribute(name = "storage-unit-name")
+    private String storageUnitName;
+    
+    @XmlAttribute(name = "status")
+    private String status;
 }
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowReadwriteSplittingReadResourcesStatementTestCase.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowStatusFromReadwriteSplittingRulesStatementTestCase.java
similarity index 85%
rename from 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowReadwriteSplittingReadResourcesStatementTestCase.java
rename to 
test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowStatusFromReadwriteSplittingRulesStatementTestCase.java
index 3b84cc91f7d..f4c5f1f0423 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowReadwriteSplittingReadResourcesStatementTestCase.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowStatusFromReadwriteSplittingRulesStatementTestCase.java
@@ -20,7 +20,7 @@ package 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domai
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
 
 /**
- * Show readwrite-splitting read resources statement test case.
+ * Show status from readwrite-splitting rules statement test case.
  */
-public final class ShowReadwriteSplittingReadResourcesStatementTestCase 
extends SQLParserTestCase {
+public final class ShowStatusFromReadwriteSplittingRulesStatementTestCase 
extends SQLParserTestCase {
 }
diff --git a/test/parser/src/main/resources/case/ral/updatable.xml 
b/test/parser/src/main/resources/case/ral/updatable.xml
index 5c670926dd5..f6172d2027b 100644
--- a/test/parser/src/main/resources/case/ral/updatable.xml
+++ b/test/parser/src/main/resources/case/ral/updatable.xml
@@ -92,4 +92,12 @@
     <import-database-config sql-case-id="import-database-config">
         <file-path>/yaml/config-sharding.yaml</file-path>
     </import-database-config>
+    
+    <alter-readwrite-splitting-storage-unit-status-enable 
sql-case-id="alter-readwrite-splitting-storage-unit-status-enable" 
group-name="group_1" storage-unit-name="read_ds_0" status="ENABLE">
+        <database name="read_write" start-index="61" stop-index="70"/>
+    </alter-readwrite-splitting-storage-unit-status-enable>
+    
+    <alter-readwrite-splitting-storage-unit-status-disable 
sql-case-id="alter-readwrite-splitting-storage-unit-status-disable" 
group-name="group_1" storage-unit-name="read_ds_0" status="DISABLE">
+        <database name="read_write" start-index="62" stop-index="71"/>
+    </alter-readwrite-splitting-storage-unit-status-disable>
 </sql-parser-test-cases>
diff --git a/test/parser/src/main/resources/sql/supported/ral/updatable.xml 
b/test/parser/src/main/resources/sql/supported/ral/updatable.xml
index 02a57ddbb4a..3f12ad3cab0 100644
--- a/test/parser/src/main/resources/sql/supported/ral/updatable.xml
+++ b/test/parser/src/main/resources/sql/supported/ral/updatable.xml
@@ -46,4 +46,7 @@
     <distsql-case id="discard-distsql" value="DISCARD DISTSQL" />
     
     <distsql-case id="import-database-config" value="IMPORT DATABASE 
CONFIGURATION FROM FILE '/yaml/config-sharding.yaml'" />
+    
+    <distsql-case id="alter-readwrite-splitting-storage-unit-status-enable" 
value="ALTER READWRITE_SPLITTING RULE group_1 ENABLE read_ds_0 FROM read_write" 
/>
+    <distsql-case id="alter-readwrite-splitting-storage-unit-status-disable" 
value="ALTER READWRITE_SPLITTING RULE group_1 DISABLE read_ds_0 FROM 
read_write" />
 </sql-cases>

Reply via email to