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>