You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2022/10/22 16:13:46 UTC
[shardingsphere] branch master updated: Change SINGLE TABLE RULE & RESOURCE to STORAGE UNIT DistSQL syntax #21671 #21672 (#21682)
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 48e7a30ee2c Change SINGLE TABLE RULE & RESOURCE to STORAGE UNIT DistSQL syntax #21671 #21672 (#21682)
48e7a30ee2c is described below
commit 48e7a30ee2cbb7c155c6ab94b89eea5b23227ef5
Author: jiangML <10...@qq.com>
AuthorDate: Sun Oct 23 00:13:38 2022 +0800
Change SINGLE TABLE RULE & RESOURCE to STORAGE UNIT DistSQL syntax #21671 #21672 (#21682)
* Refactor single table DistSQL syntax #21672
* Fix single table related DistSQL test errors
* Refactor DistSQL about resources
* fix bug & add doc
* update doc of single table
* remove extra blank lines
* fix single table bug
* improve test about single table
* update doc
* change resource-query.md to storage-unit-query.md
---
.../api/advice/SQLParserEngineAdviceTest.java | 8 +-
distsql/parser/src/main/antlr4/imports/BaseRule.g4 | 4 +
distsql/parser/src/main/antlr4/imports/Keyword.g4 | 28 +++++++
.../parser/src/main/antlr4/imports/RDLStatement.g4 | 32 +++-----
.../parser/src/main/antlr4/imports/RQLStatement.g4 | 16 ++--
.../parser/autogen/KernelDistSQLStatement.g4 | 15 ++--
.../core/kernel/KernelDistSQLStatementVisitor.java | 83 ++++++++-----------
...atement.java => AlterStorageUnitStatement.java} | 2 +-
...ment.java => RegisterStorageUnitStatement.java} | 2 +-
...SetDefaultSingleTableStorageUnitStatement.java} | 2 +-
...nt.java => UnregisterStorageUnitStatement.java} | 4 +-
...howDefaultSingleTableStorageUnitStatement.java} | 4 +-
...atement.java => ShowStorageUnitsStatement.java} | 6 +-
.../distsql/syntax/rdl/resource-definition.cn.md | 94 ----------------------
.../distsql/syntax/rdl/resource-definition.en.md | 94 ----------------------
.../syntax/rdl/rule-definition/single-table.cn.md | 21 ++---
.../syntax/rdl/rule-definition/single-table.en.md | 22 ++---
.../syntax/rdl/storage-unit-definition.cn.md | 94 ++++++++++++++++++++++
.../syntax/rdl/storage-unit-definition.en.md | 94 ++++++++++++++++++++++
.../syntax/rql/rule-query/single-table.cn.md | 29 ++++---
.../syntax/rql/rule-query/single-table.en.md | 30 +++----
...source-query.cn.md => storage-unit-query.cn.md} | 16 +++-
...source-query.en.md => storage-unit-query.en.md} | 17 +++-
.../transaction/utils/AutoCommitUtilsTest.java | 4 +-
.../distsql/rdl/RDLBackendHandlerFactory.java | 18 ++---
.../rdl/resource/AddResourceBackendHandler.java | 10 +--
.../rdl/resource/AlterResourceBackendHandler.java | 14 ++--
.../rdl/resource/DropResourceBackendHandler.java | 8 +-
...ultSingleTableStorageUnitStatementUpdater.java} | 27 +++----
.../rql/resource/DataSourceQueryResultSet.java | 61 +++++++++++++-
.../rql/rule/SingleTableRulesQueryResultSet.java | 10 +--
...here.infra.distsql.update.RuleDefinitionUpdater | 2 +-
.../handler/ProxyBackendHandlerFactoryTest.java | 2 +-
.../distsql/DistSQLBackendHandlerFactoryTest.java | 18 ++---
.../distsql/rdl/RDLBackendHandlerFactoryTest.java | 12 +--
.../resource/AddResourceBackendHandlerTest.java | 14 ++--
.../resource/AlterResourceBackendHandlerTest.java | 14 ++--
.../resource/DropResourceBackendHandlerTest.java | 34 ++++----
.../CreateDefaultSingleTableRuleUpdaterTest.java | 27 ++++---
.../distsql/rql/DataSourceQueryResultSetTest.java | 6 +-
.../rql/SingleTableRulesQueryResultSetTest.java | 3 +-
.../rql/UnusedDataSourceQueryResultSetTest.java | 11 +--
.../command/query/PostgreSQLCommandTest.java | 4 +-
.../cases/migration/AbstractMigrationITCase.java | 2 +-
.../resources/env/common/migration-command.xml | 2 +-
.../cases/rdl/rdl-integration-test-cases.xml | 18 ++---
.../rql/dataset/db/show_single_table_rules.xml | 4 +-
.../show_single_table_rules.xml | 4 +-
.../show_single_table_rules.xml | 4 +-
.../dataset/encrypt/show_single_table_rules.xml | 4 +-
.../show_single_table_rules.xml | 4 +-
.../show_single_table_rules.xml | 4 +-
.../show_single_table_rules.xml | 4 +-
.../mysql/show_single_table_rules.xml | 4 +-
.../rql/dataset/tbl/show_single_table_rules.xml | 4 +-
.../cases/rql/rql-integration-test-cases.xml | 4 +-
.../transaction/engine/base/BaseITCase.java | 4 +-
.../src/test/resources/env/common/command.xml | 4 +-
.../statement/distsql/rdl/RDLStatementAssert.java | 18 ++---
.../rdl/alter/AlterResourceStatementAssert.java | 4 +-
.../rdl/create/AddResourceStatementAssert.java | 4 +-
.../rdl/create/CreateRuleStatementAssert.java | 6 +-
...reateDefaultSingleTableRuleStatementAssert.java | 4 +-
.../rdl/drop/DropResourceStatementAssert.java | 4 +-
.../jaxb/cases/domain/SQLParserTestCases.java | 14 ++--
test/parser/src/main/resources/case/rql/show.xml | 2 +-
.../src/main/resources/sql/supported/rdl/alter.xml | 20 ++---
.../main/resources/sql/supported/rdl/create.xml | 22 ++---
.../src/main/resources/sql/supported/rdl/drop.xml | 9 +--
.../src/main/resources/sql/supported/rql/show.xml | 2 +-
70 files changed, 622 insertions(+), 573 deletions(-)
diff --git a/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLParserEngineAdviceTest.java b/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLParserEngineAdviceTest.java
index 6e15fac49ee..f93ad00dcfb 100644
--- a/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLParserEngineAdviceTest.java
+++ b/agent/plugins/metrics/api/src/test/java/org/apache/shardingsphere/agent/metrics/api/advice/SQLParserEngineAdviceTest.java
@@ -21,8 +21,8 @@ import org.apache.shardingsphere.agent.api.result.MethodInvocationResult;
import org.apache.shardingsphere.agent.metrics.api.MetricsPool;
import org.apache.shardingsphere.agent.metrics.api.constant.MetricIds;
import org.apache.shardingsphere.agent.metrics.api.fixture.FixtureWrapper;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowResourcesStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowStorageUnitsStatement;
import org.apache.shardingsphere.migration.distsql.statement.ShowMigrationListStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
@@ -88,12 +88,12 @@ public final class SQLParserEngineAdviceTest extends MetricsAdviceBaseTest {
@Test
public void assertParseRQL() {
- assertParse(MetricIds.PARSE_DIST_SQL_RQL, new ShowResourcesStatement(new DatabaseSegment(0, 0, null)));
+ assertParse(MetricIds.PARSE_DIST_SQL_RQL, new ShowStorageUnitsStatement(new DatabaseSegment(0, 0, null), null));
}
@Test
public void assertParseRDL() {
- assertParse(MetricIds.PARSE_DIST_SQL_RDL, new AddResourceStatement(Collections.emptyList()));
+ assertParse(MetricIds.PARSE_DIST_SQL_RDL, new RegisterStorageUnitStatement(Collections.emptyList()));
}
@Test
diff --git a/distsql/parser/src/main/antlr4/imports/BaseRule.g4 b/distsql/parser/src/main/antlr4/imports/BaseRule.g4
index e186c42ed72..9f4e84f9bbc 100644
--- a/distsql/parser/src/main/antlr4/imports/BaseRule.g4
+++ b/distsql/parser/src/main/antlr4/imports/BaseRule.g4
@@ -54,3 +54,7 @@ tableName
resourceName
: IDENTIFIER
;
+
+storageUnitName
+ : IDENTIFIER
+ ;
diff --git a/distsql/parser/src/main/antlr4/imports/Keyword.g4 b/distsql/parser/src/main/antlr4/imports/Keyword.g4
index 0228da6f749..c4c5955cee5 100644
--- a/distsql/parser/src/main/antlr4/imports/Keyword.g4
+++ b/distsql/parser/src/main/antlr4/imports/Keyword.g4
@@ -311,6 +311,22 @@ STREAM_CHANNEL
: S T R E A M UL_ C H A N N E L
;
+STORAGE
+ : S T O R A G E
+ ;
+
+UNIT
+ : U N I T
+ ;
+
+UNITS
+ : U N I T S
+ ;
+
+RANDOM
+ : R A N D O M
+ ;
+
DIST
: D I S T
;
@@ -318,3 +334,15 @@ DIST
WHERE
: W H E R E
;
+
+USAGE_COUNT
+ : U S A G E UL_ C O U N T
+ ;
+
+REGISTER
+ : R E G I S T E R
+ ;
+
+UNREGISTER
+ : U N R E G I S T E R
+ ;
diff --git a/distsql/parser/src/main/antlr4/imports/RDLStatement.g4 b/distsql/parser/src/main/antlr4/imports/RDLStatement.g4
index 3db883e896f..c36e74fc9e4 100644
--- a/distsql/parser/src/main/antlr4/imports/RDLStatement.g4
+++ b/distsql/parser/src/main/antlr4/imports/RDLStatement.g4
@@ -19,36 +19,24 @@ grammar RDLStatement;
import BaseRule;
-addResource
- : ADD RESOURCE resourceDefinition (COMMA resourceDefinition)*
+registerStorageUnit
+ : REGISTER STORAGE UNIT storageUnitDefinition (COMMA storageUnitDefinition)*
;
-alterResource
- : ALTER RESOURCE resourceDefinition (COMMA resourceDefinition)*
+alterStorageUnit
+ : ALTER STORAGE UNIT storageUnitDefinition (COMMA storageUnitDefinition)*
;
-dropResource
- : DROP RESOURCE ifExists? resourceName (COMMA resourceName)* ignoreSingleTables?
+unregisterStorageUnit
+ : UNREGISTER STORAGE UNIT ifExists? storageUnitName (COMMA storageUnitName)* ignoreSingleTables?
;
-createDefaultSingleTableRule
- : CREATE DEFAULT SINGLE TABLE RULE RESOURCE EQ resourceName
+setDefaultSingleTableStorageUnit
+ : SET DEFAULT SINGLE TABLE STORAGE UNIT EQ (storageUnitName | RANDOM)
;
-alterDefaultSingleTableRule
- : ALTER DEFAULT SINGLE TABLE RULE RESOURCE EQ resourceName
- ;
-
-dropDefaultSingleTableRule
- : DROP DEFAULT SINGLE TABLE RULE ifExists?
- ;
-
-resourceDefinition
- : resourceName LP (simpleSource | urlSource) COMMA USER EQ user (COMMA PASSWORD EQ password)? (COMMA propertiesDefinition)? RP
- ;
-
-resourceName
- : IDENTIFIER
+storageUnitDefinition
+ : storageUnitName LP (simpleSource | urlSource) COMMA USER EQ user (COMMA PASSWORD EQ password)? (COMMA propertiesDefinition)? RP
;
simpleSource
diff --git a/distsql/parser/src/main/antlr4/imports/RQLStatement.g4 b/distsql/parser/src/main/antlr4/imports/RQLStatement.g4
index f13bc642825..b9dea683ef4 100644
--- a/distsql/parser/src/main/antlr4/imports/RQLStatement.g4
+++ b/distsql/parser/src/main/antlr4/imports/RQLStatement.g4
@@ -19,16 +19,12 @@ grammar RQLStatement;
import BaseRule;
-showResources
- : SHOW DATABASE RESOURCES (FROM databaseName)?
+showStorageUnits
+ : SHOW STORAGE UNITS (FROM databaseName)? (WHERE USAGE_COUNT EQ usageCount)?
;
-showUnusedResources
- : SHOW UNUSED DATABASE? RESOURCES (FROM databaseName)?
- ;
-
-showSingleTableRules
- : SHOW SINGLE TABLE RULES (FROM databaseName)?
+showDefaultSingleTableStorageUnit
+ : SHOW DEFAULT SINGLE TABLE STORAGE UNIT (FROM databaseName)?
;
showSingleTable
@@ -42,3 +38,7 @@ showRulesUsedResource
countSingleTableRule
: COUNT SINGLE_TABLE RULE (FROM databaseName)?
;
+
+usageCount
+ : INT
+ ;
diff --git a/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/KernelDistSQLStatement.g4 b/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/KernelDistSQLStatement.g4
index 8b06cf80755..b7ba74de6cf 100644
--- a/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/KernelDistSQLStatement.g4
+++ b/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/KernelDistSQLStatement.g4
@@ -20,11 +20,10 @@ grammar KernelDistSQLStatement;
import Symbol, RALStatement, RDLStatement, RQLStatement;
execute
- : (addResource
- | alterResource
- | dropResource
- | showResources
- | showUnusedResources
+ : (registerStorageUnit
+ | alterStorageUnit
+ | unregisterStorageUnit
+ | showStorageUnits
| setDistVariable
| showDistVariable
| showDistVariables
@@ -42,10 +41,8 @@ execute
| applyDistSQL
| discardDistSQL
| showSingleTable
- | showSingleTableRules
- | createDefaultSingleTableRule
- | alterDefaultSingleTableRule
- | dropDefaultSingleTableRule
+ | showDefaultSingleTableStorageUnit
+ | setDefaultSingleTableStorageUnit
| refreshTableMetadata
| showTableMetadata
| exportDatabaseConfiguration
diff --git a/distsql/parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java b/distsql/parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java
index d056ac0c8c7..108d74841a6 100644
--- a/distsql/parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java
+++ b/distsql/parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java
@@ -20,24 +20,19 @@ package org.apache.shardingsphere.distsql.parser.core.kernel;
import org.antlr.v4.runtime.tree.ParseTree;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementBaseVisitor;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser;
-import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AddResourceContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlgorithmDefinitionContext;
-import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlterDefaultSingleTableRuleContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlterInstanceContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlterMigrationProcessConfigurationContext;
-import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlterResourceContext;
+import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlterStorageUnitContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ApplyDistSQLContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.BatchSizeContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ClearHintContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ConvertYamlConfigurationContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.CountSingleTableRuleContext;
-import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.CreateDefaultSingleTableRuleContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.CreateMigrationProcessConfigurationContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.DatabaseNameContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.DisableInstanceContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.DiscardDistSQLContext;
-import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.DropDefaultSingleTableRuleContext;
-import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.DropResourceContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.EnableInstanceContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ExportDatabaseConfigurationContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.FromSegmentContext;
@@ -52,23 +47,25 @@ import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementPa
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.RateLimiterContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ReadDefinitionContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.RefreshTableMetadataContext;
-import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ResourceDefinitionContext;
+import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.RegisterStorageUnitContext;
+import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.SetDefaultSingleTableStorageUnitContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.SetDistVariableContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShardingSizeContext;
+import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowDefaultSingleTableStorageUnitContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowDistVariableContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowDistVariablesContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowInstanceInfoContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowInstanceListContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowMigrationProcessConfigurationContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowModeInfoContext;
-import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowResourcesContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowRulesUsedResourceContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowSingleTableContext;
-import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowSingleTableRulesContext;
+import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowStorageUnitsContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowTableMetadataContext;
-import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowUnusedResourcesContext;
+import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.StorageUnitDefinitionContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.StreamChannelContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.UnlabelInstanceContext;
+import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.UnregisterStorageUnitContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.WorkerThreadContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.WriteDefinitionContext;
import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
@@ -80,13 +77,13 @@ import org.apache.shardingsphere.distsql.parser.segment.URLBasedDataSourceSegmen
import org.apache.shardingsphere.distsql.parser.statement.ral.hint.ClearHintStatement;
import org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ConvertYamlConfigurationStatement;
import org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ExportDatabaseConfigurationStatement;
+import org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowDistVariableStatement;
import org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowDistVariablesStatement;
import org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowInstanceInfoStatement;
import org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowInstanceListStatement;
import org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowMigrationProcessConfigurationStatement;
import org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowModeInfoStatement;
import org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowTableMetadataStatement;
-import org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowDistVariableStatement;
import org.apache.shardingsphere.distsql.parser.statement.ral.updatable.AlterInstanceStatement;
import org.apache.shardingsphere.distsql.parser.statement.ral.updatable.AlterInventoryIncrementalProcessConfigurationStatement;
import org.apache.shardingsphere.distsql.parser.statement.ral.updatable.ApplyDistSQLStatement;
@@ -100,18 +97,15 @@ 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.SetInstanceStatusStatement;
import org.apache.shardingsphere.distsql.parser.statement.ral.updatable.UnlabelInstanceStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterDefaultSingleTableRuleStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterResourceStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateDefaultSingleTableRuleStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropDefaultSingleTableRuleStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorageUnitStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.SetDefaultSingleTableStorageUnitStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.CountSingleTableRuleStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowResourcesStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesUsedResourceStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableRulesStatement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowUnusedResourcesStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowStorageUnitsStatement;
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;
@@ -127,13 +121,13 @@ import java.util.stream.Collectors;
public final class KernelDistSQLStatementVisitor extends KernelDistSQLStatementBaseVisitor<ASTNode> implements SQLVisitor {
@Override
- public ASTNode visitAddResource(final AddResourceContext ctx) {
- return new AddResourceStatement(ctx.resourceDefinition().stream().map(each -> (DataSourceSegment) visit(each)).collect(Collectors.toList()));
+ public ASTNode visitRegisterStorageUnit(final RegisterStorageUnitContext ctx) {
+ return new RegisterStorageUnitStatement(ctx.storageUnitDefinition().stream().map(each -> (DataSourceSegment) visit(each)).collect(Collectors.toList()));
}
@Override
- public ASTNode visitAlterResource(final AlterResourceContext ctx) {
- return new AlterResourceStatement(ctx.resourceDefinition().stream().map(each -> (DataSourceSegment) visit(each)).collect(Collectors.toList()));
+ public ASTNode visitAlterStorageUnit(final AlterStorageUnitContext ctx) {
+ return new AlterStorageUnitStatement(ctx.storageUnitDefinition().stream().map(each -> (DataSourceSegment) visit(each)).collect(Collectors.toList()));
}
@Override
@@ -143,16 +137,16 @@ public final class KernelDistSQLStatementVisitor extends KernelDistSQLStatementB
}
@Override
- public ASTNode visitResourceDefinition(final ResourceDefinitionContext ctx) {
+ public ASTNode visitStorageUnitDefinition(final StorageUnitDefinitionContext ctx) {
String user = getIdentifierValue(ctx.user());
String password = null == ctx.password() ? "" : getPassword(ctx.password());
Properties props = getProperties(ctx.propertiesDefinition());
DataSourceSegment result = null;
if (null != ctx.urlSource()) {
- result = new URLBasedDataSourceSegment(getIdentifierValue(ctx.resourceName()), getIdentifierValue(ctx.urlSource().url()), user, password, props);
+ result = new URLBasedDataSourceSegment(getIdentifierValue(ctx.storageUnitName()), getIdentifierValue(ctx.urlSource().url()), user, password, props);
}
if (null != ctx.simpleSource()) {
- result = new HostnameAndPortBasedDataSourceSegment(getIdentifierValue(ctx.resourceName()), getIdentifierValue(ctx.simpleSource().hostname()), ctx.simpleSource().port().getText(),
+ result = new HostnameAndPortBasedDataSourceSegment(getIdentifierValue(ctx.storageUnitName()), getIdentifierValue(ctx.simpleSource().hostname()), ctx.simpleSource().port().getText(),
getIdentifierValue(ctx.simpleSource().dbName()), user, password, props);
}
return result;
@@ -214,18 +208,8 @@ public final class KernelDistSQLStatementVisitor extends KernelDistSQLStatementB
}
@Override
- public ASTNode visitCreateDefaultSingleTableRule(final CreateDefaultSingleTableRuleContext ctx) {
- return new CreateDefaultSingleTableRuleStatement(getIdentifierValue(ctx.resourceName()));
- }
-
- @Override
- public ASTNode visitAlterDefaultSingleTableRule(final AlterDefaultSingleTableRuleContext ctx) {
- return new AlterDefaultSingleTableRuleStatement(getIdentifierValue(ctx.resourceName()));
- }
-
- @Override
- public ASTNode visitDropDefaultSingleTableRule(final DropDefaultSingleTableRuleContext ctx) {
- return new DropDefaultSingleTableRuleStatement(null != ctx.ifExists());
+ public ASTNode visitSetDefaultSingleTableStorageUnit(final SetDefaultSingleTableStorageUnitContext ctx) {
+ return new SetDefaultSingleTableStorageUnitStatement(null == ctx.storageUnitName() ? null : getIdentifierValue(ctx.storageUnitName()));
}
private Properties getProperties(final PropertiesDefinitionContext ctx) {
@@ -240,20 +224,17 @@ public final class KernelDistSQLStatementVisitor extends KernelDistSQLStatementB
}
@Override
- public ASTNode visitDropResource(final DropResourceContext ctx) {
+ public ASTNode visitUnregisterStorageUnit(final UnregisterStorageUnitContext ctx) {
boolean ignoreSingleTables = null != ctx.ignoreSingleTables();
- return new DropResourceStatement(ctx.ifExists() != null,
- ctx.resourceName().stream().map(ParseTree::getText).map(each -> new IdentifierValue(each).getValue()).collect(Collectors.toList()), ignoreSingleTables);
- }
-
- @Override
- public ASTNode visitShowResources(final ShowResourcesContext ctx) {
- return new ShowResourcesStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
+ return new UnregisterStorageUnitStatement(ctx.ifExists() != null,
+ ctx.storageUnitName().stream().map(ParseTree::getText).map(each -> new IdentifierValue(each).getValue()).collect(Collectors.toList()), ignoreSingleTables);
}
@Override
- public ASTNode visitShowUnusedResources(final ShowUnusedResourcesContext ctx) {
- return new ShowUnusedResourcesStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
+ public ASTNode visitShowStorageUnits(final ShowStorageUnitsContext ctx) {
+ DatabaseSegment database = null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName());
+ Integer usageCount = null == ctx.usageCount() ? null : Integer.parseInt(ctx.usageCount().getText());
+ return new ShowStorageUnitsStatement(database, usageCount);
}
@Override
@@ -267,8 +248,8 @@ public final class KernelDistSQLStatementVisitor extends KernelDistSQLStatementB
}
@Override
- public ASTNode visitShowSingleTableRules(final ShowSingleTableRulesContext ctx) {
- return new ShowSingleTableRulesStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
+ public ASTNode visitShowDefaultSingleTableStorageUnit(final ShowDefaultSingleTableStorageUnitContext ctx) {
+ return new ShowDefaultSingleTableStorageUnitStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
}
@Override
diff --git a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterResourceStatement.java b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterStorageUnitStatement.java
similarity index 93%
rename from distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterResourceStatement.java
rename to distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterStorageUnitStatement.java
index 924376c0c13..a3a46f1e0a0 100644
--- a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterResourceStatement.java
+++ b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterStorageUnitStatement.java
@@ -29,7 +29,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class AlterResourceStatement extends ResourceDefinitionStatement {
+public final class AlterStorageUnitStatement extends ResourceDefinitionStatement {
private final Collection<DataSourceSegment> dataSources;
}
diff --git a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/AddResourceStatement.java b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/RegisterStorageUnitStatement.java
similarity index 93%
rename from distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/AddResourceStatement.java
rename to distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/RegisterStorageUnitStatement.java
index 17b214ecb5d..84e73a17c6f 100644
--- a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/AddResourceStatement.java
+++ b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/RegisterStorageUnitStatement.java
@@ -29,7 +29,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class AddResourceStatement extends ResourceDefinitionStatement {
+public final class RegisterStorageUnitStatement extends ResourceDefinitionStatement {
private final Collection<DataSourceSegment> dataSources;
}
diff --git a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/CreateDefaultSingleTableRuleStatement.java b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
similarity index 92%
rename from distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/CreateDefaultSingleTableRuleStatement.java
rename to distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
index 31c6e62372a..1699027c641 100644
--- a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/CreateDefaultSingleTableRuleStatement.java
+++ b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
@@ -25,7 +25,7 @@ import lombok.RequiredArgsConstructor;
*/
@RequiredArgsConstructor
@Getter
-public final class CreateDefaultSingleTableRuleStatement extends CreateRuleStatement {
+public final class SetDefaultSingleTableStorageUnitStatement extends CreateRuleStatement {
private final String defaultResource;
}
diff --git a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropResourceStatement.java b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/UnregisterStorageUnitStatement.java
similarity index 87%
rename from distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropResourceStatement.java
rename to distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/UnregisterStorageUnitStatement.java
index f4a0ce8fa71..7a8f83de6f4 100644
--- a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropResourceStatement.java
+++ b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/UnregisterStorageUnitStatement.java
@@ -28,7 +28,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class DropResourceStatement extends ResourceDefinitionStatement {
+public final class UnregisterStorageUnitStatement extends ResourceDefinitionStatement {
private final boolean ifExists;
@@ -36,7 +36,7 @@ public final class DropResourceStatement extends ResourceDefinitionStatement {
private final boolean ignoreSingleTables;
- public DropResourceStatement(final Collection<String> names, final boolean ignoreSingleTables) {
+ public UnregisterStorageUnitStatement(final Collection<String> names, final boolean ignoreSingleTables) {
this.ifExists = false;
this.names = names;
this.ignoreSingleTables = ignoreSingleTables;
diff --git a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableRulesStatement.java b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowDefaultSingleTableStorageUnitStatement.java
similarity index 85%
rename from distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableRulesStatement.java
rename to distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowDefaultSingleTableStorageUnitStatement.java
index 89fc97cfb66..28f62c1c45e 100644
--- a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableRulesStatement.java
+++ b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowDefaultSingleTableStorageUnitStatement.java
@@ -24,9 +24,9 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseS
* Show single table rules statement.
*/
@Getter
-public final class ShowSingleTableRulesStatement extends ShowRulesStatement {
+public final class ShowDefaultSingleTableStorageUnitStatement extends ShowRulesStatement {
- public ShowSingleTableRulesStatement(final DatabaseSegment database) {
+ public ShowDefaultSingleTableStorageUnitStatement(final DatabaseSegment database) {
super(database);
}
}
diff --git a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowResourcesStatement.java b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowStorageUnitsStatement.java
similarity index 89%
rename from distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowResourcesStatement.java
rename to distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowStorageUnitsStatement.java
index 57b7e67a48f..132e7221c37 100644
--- a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowResourcesStatement.java
+++ b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowStorageUnitsStatement.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rql.RQLStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
@@ -27,11 +28,14 @@ import java.util.Optional;
/**
* Show resources statement.
*/
+@Getter
@RequiredArgsConstructor
-public final class ShowResourcesStatement extends RQLStatement implements FromDatabaseAvailable {
+public final class ShowStorageUnitsStatement extends RQLStatement implements FromDatabaseAvailable {
private final DatabaseSegment database;
+ private final Integer usageCount;
+
@Override
public Optional<DatabaseSegment> getDatabase() {
return Optional.ofNullable(database);
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/resource-definition.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/resource-definition.cn.md
deleted file mode 100644
index 6112c03f451..00000000000
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/resource-definition.cn.md
+++ /dev/null
@@ -1,94 +0,0 @@
-+++
-title = "资源定义"
-weight = 1
-+++
-
-## 语法说明
-
-```sql
-ADD RESOURCE resourceDefinition [, resourceDefinition] ...
-
-ALTER RESOURCE resourceDefinition [, resourceDefinition] ...
-
-DROP RESOURCE resourceName [, resourceName] ... [ignore single tables]
-
-resourceDefinition:
- simpleSource | urlSource
-
-simpleSource:
- resourceName(HOST=hostname,PORT=port,DB=dbName,USER=user [,PASSWORD=password] [,PROPERTIES(property [,property]) ...])
-
-urlSource:
- resourceName(URL=url,USER=user [,PASSWORD=password] [,PROPERTIES(property [,property]) ...])
-
-property:
- key=value
-```
-
-### 参数解释
-
-| 名称 | 数据类型 | 说明 |
-|:-------------|:-----------|:-----------|
-| resourceName | IDENTIFIER | 资源名称 |
-| hostname | STRING | 数据源地址 |
-| port | INT | 数据源端口 |
-| dbName | STRING | 物理库名称 |
-| url | STRING | URL 地址 |
-| user | STRING | 用户名 |
-| password | STRING | 密码 |
-
-### 注意事项
-
-- 添加资源前请确认已经创建分布式数据库,并执行 `use` 命令成功选择一个数据库;
-- 确认将要添加或修改的资源是可以正常连接的, 否则将不能操作成功;
-- 不允许重复的 `resourceName`;
-- `PROPERTIES` 用于自定义连接池参数,`key` 和 `value` 均为 STRING 类型;
-- `ALTER RESOURCE` 修改资源时不允许改变该资源关联的真实数据源;
-- `ALTER RESOURCE` 修改资源时会发生连接池的切换,此操作可能对进行中的业务造成影响,请谨慎使用;
-- `DROP RESOURCE` 只会删除逻辑资源,不会删除真实的数据源;
-- 被规则引用的资源将无法被删除;
-- 若资源只被 `single table rule` 引用,且用户确认可以忽略该限制,则可以添加可选参数 `ignore single tables` 进行强制删除。
-
-## 示例
-
-```sql
-ADD RESOURCE resource_0 (
- HOST="127.0.0.1",
- PORT=3306,
- DB="db0",
- USER="root",
- PASSWORD="root"
-),resource_1 (
- HOST="127.0.0.1",
- PORT=3306,
- DB="db1",
- USER="root"
-),resource_2 (
- HOST="127.0.0.1",
- PORT=3306,
- DB="db2",
- USER="root",
- PROPERTIES("maximumPoolSize"="10")
-),resource_3 (
- URL="jdbc:mysql://127.0.0.1:3306/db3?serverTimezone=UTC&useSSL=false",
- USER="root",
- PASSWORD="root",
- PROPERTIES("maximumPoolSize"="10","idleTimeout"="30000")
-);
-
-ALTER RESOURCE resource_0 (
- HOST="127.0.0.1",
- PORT=3309,
- DB="db0",
- USER="root",
- PASSWORD="root"
-),resource_1 (
- URL="jdbc:mysql://127.0.0.1:3309/db1?serverTimezone=UTC&useSSL=false",
- USER="root",
- PASSWORD="root",
- PROPERTIES("maximumPoolSize"="10","idleTimeout"="30000")
-);
-
-DROP RESOURCE resource_0, resource_1;
-DROP RESOURCE resource_2, resource_3 ignore single tables;
-```
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/resource-definition.en.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/resource-definition.en.md
deleted file mode 100644
index 72111c4e9ac..00000000000
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/resource-definition.en.md
+++ /dev/null
@@ -1,94 +0,0 @@
-+++
-title = "Resource Definition"
-weight = 1
-+++
-
-## Syntax
-
-```sql
-ADD RESOURCE resourceDefinition [, resourceDefinition] ...
-
-ALTER RESOURCE resourceDefinition [, resourceDefinition] ...
-
-DROP RESOURCE resourceName [, resourceName] ... [ignore single tables]
-
-resourceDefinition:
- simpleSource | urlSource
-
-simpleSource:
- resourceName(HOST=hostname,PORT=port,DB=dbName,USER=user [,PASSWORD=password] [,PROPERTIES(property [,property]) ...])
-
-urlSource:
- resourceName(URL=url,USER=user [,PASSWORD=password] [,PROPERTIES(property [,property]) ...])
-
-property:
- key=value
-```
-
-### Parameters Explained
-
-| Name | DataType | Description |
-|:-------------|:-----------|:--------------|
-| resourceName | IDENTIFIER | Resource name |
-| hostname | STRING | Host or IP |
-| port | INT | Port |
-| dbName | STRING | DB name |
-| url | STRING | URL |
-| user | STRING | username |
-| password | STRING | password |
-
-### Notes
-
-- Before adding resources, please confirm that a distributed database has been created, and execute the `use` command to successfully select a database;
-- Confirm that the resource to be added or altered can be connected, otherwise the operation will not be successful;
-- Duplicate `resourceName` is not allowed;
-- `PROPERTIES` is used to customize connection pool parameters, `key` and `value` are both STRING types;
-- `ALTER RESOURCE` is not allowed to change the real data source associated with this resource;
-- `ALTER RESOURCE` will switch the connection pool. This operation may affect the ongoing business, please use it with caution;
-- `DROP RESOURCE` will only delete logical resources, not real data sources;
-- Resources referenced by rules cannot be deleted;
-- If the resource is only referenced by `single table rule`, and the user confirms that the restriction can be ignored, the optional parameter `ignore single tables` can be added to perform forced deletion.
-
-## Example
-
-```sql
-ADD RESOURCE resource_0 (
- HOST="127.0.0.1",
- PORT=3306,
- DB="db0",
- USER="root",
- PASSWORD="root"
-),resource_1 (
- HOST="127.0.0.1",
- PORT=3306,
- DB="db1",
- USER="root"
-),resource_2 (
- HOST="127.0.0.1",
- PORT=3306,
- DB="db2",
- USER="root",
- PROPERTIES("maximumPoolSize"="10")
-),resource_3 (
- URL="jdbc:mysql://127.0.0.1:3306/db3?serverTimezone=UTC&useSSL=false",
- USER="root",
- PASSWORD="root",
- PROPERTIES("maximumPoolSize"="10","idleTimeout"="30000")
-);
-
-ALTER RESOURCE resource_0 (
- HOST="127.0.0.1",
- PORT=3309,
- DB="db0",
- USER="root",
- PASSWORD="root"
-),resource_1 (
- URL="jdbc:mysql://127.0.0.1:3309/db1?serverTimezone=UTC&useSSL=false",
- USER="root",
- PASSWORD="root",
- PROPERTIES("maximumPoolSize"="10","idleTimeout"="30000")
-);
-
-DROP RESOURCE resource_0, resource_1;
-DROP RESOURCE resource_2, resource_3 ignore single tables;
-```
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/single-table.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/single-table.cn.md
index 1bcac1b1aa0..f238b01d4f4 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/single-table.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/single-table.cn.md
@@ -6,26 +6,17 @@ weight = 2
## 定义
```sql
-CREATE DEFAULT SINGLE TABLE RULE singleTableRuleDefinition
+SET DEFAULT SINGLE TABLE storageUnitDefinition
-ALTER DEFAULT SINGLE TABLE RULE singleTableRuleDefinition
-
-DROP DEFAULT SINGLE TABLE RULE
-
-singleTableRuleDefinition:
- RESOURCE = resourceName
+storageUnitDefinition:
+ STORAGE UNIT = storageUnitName | RANDOM
```
-- `RESOURCE` 需使用 RDL 管理的数据源资源。
+- `STORAGE UNIT` 需使用 RDL 管理的存储单元。RANDOM 关键字代表随机存储。
## 示例
-
-### Single Table Rule
-
```sql
-CREATE DEFAULT SINGLE TABLE RULE RESOURCE = ds_0
-
-ALTER DEFAULT SINGLE TABLE RULE RESOURCE = ds_1
+SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_0
-DROP DEFAULT SINGLE TABLE RULE
+SET DEFAULT SINGLE TABLE STORAGE UNIT = RANDOM
```
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/single-table.en.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/single-table.en.md
index ed2e2399140..04ed501cfe4 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/single-table.en.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/single-table.en.md
@@ -6,26 +6,16 @@ weight = 2
## Definition
```sql
-CREATE DEFAULT SINGLE TABLE RULE singleTableRuleDefinition
+SET DEFAULT SINGLE TABLE storageUnitDefinition
-ALTER DEFAULT SINGLE TABLE RULE singleTableRuleDefinition
-
-DROP DEFAULT SINGLE TABLE RULE
-
-singleTableRuleDefinition:
- RESOURCE = resourceName
+storageUnitDefinition:
+ STORAGE UNIT = storageUnitName | RANDOM
```
-- `RESOURCE` needs to use data source resource managed by RDL
-
+- `STORAGE UNIT` needs to use storage unit managed by RDL. The RANDOM keyword stands for random storage.
## Example
-
-### Single Table Rule
-
```sql
-CREATE DEFAULT SINGLE TABLE RULE RESOURCE = ds_0
-
-ALTER DEFAULT SINGLE TABLE RULE RESOURCE = ds_1
+SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_0
-DROP DEFAULT SINGLE TABLE RULE
+SET DEFAULT SINGLE TABLE STORAGE UNIT = RANDOM
```
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/storage-unit-definition.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/storage-unit-definition.cn.md
new file mode 100644
index 00000000000..03c82e1009c
--- /dev/null
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/storage-unit-definition.cn.md
@@ -0,0 +1,94 @@
++++
+title = "存储单元定义"
+weight = 1
++++
+
+## 语法说明
+
+```sql
+REGISTER STORAGE UNIT storageUnitDefinition [, storageUnitDefinition] ...
+
+ALTER STORAGE UNIT storageUnitDefinition [, storageUnitDefinition] ...
+
+UNREGISTER STORAGE UNIT storageUnitName [, storageUnitName] ... [ignore single tables]
+
+storageUnitDefinition:
+ simpleSource | urlSource
+
+simpleSource:
+ storageUnitName(HOST=hostname,PORT=port,DB=dbName,USER=user [,PASSWORD=password] [,PROPERTIES(property [,property]) ...])
+
+urlSource:
+ storageUnitName(URL=url,USER=user [,PASSWORD=password] [,PROPERTIES(property [,property]) ...])
+
+property:
+ key=value
+```
+
+### 参数解释
+
+| 名称 | 数据类型 | 说明 |
+|:-------------------|:-----------|:-------|
+| storageUnitName | IDENTIFIER | 存储单元名称 |
+| hostname | STRING | 数据源地址 |
+| port | INT | 数据源端口 |
+| dbName | STRING | 物理库名称 |
+| url | STRING | URL 地址 |
+| user | STRING | 用户名 |
+| password | STRING | 密码 |
+
+### 注意事项
+
+- 添加存储单元前请确认已经创建分布式数据库,并执行 `use` 命令成功选择一个数据库;
+- 确认将要添加或修改的存储单元是可以正常连接的, 否则将不能操作成功;
+- 不允许重复的 `storageUnitName`;
+- `PROPERTIES` 用于自定义连接池参数,`key` 和 `value` 均为 STRING 类型;
+- `ALTER STORAGE UNIT` 修改存储单元时不允许改变该存储单元关联的真实数据源;
+- `ALTER STORAGE UNIT` 修改存储单元时会发生连接池的切换,此操作可能对进行中的业务造成影响,请谨慎使用;
+- `UNREGISTER STORAGE UNIT` 只会删除逻辑存储单元,不会删除真实的数据源;
+- 被规则引用的存储单元将无法被删除;
+- 若存储单元只被 `single table rule` 引用,且用户确认可以忽略该限制,则可以添加可选参数 `ignore single tables` 进行强制删除。
+
+## 示例
+
+```sql
+REGISTER STORAGE UNIT su_0 (
+ HOST="127.0.0.1",
+ PORT=3306,
+ DB="db0",
+ USER="root",
+ PASSWORD="root"
+),su_1 (
+ HOST="127.0.0.1",
+ PORT=3306,
+ DB="db1",
+ USER="root"
+),su_2 (
+ HOST="127.0.0.1",
+ PORT=3306,
+ DB="db2",
+ USER="root",
+ PROPERTIES("maximumPoolSize"="10")
+),su_3 (
+ URL="jdbc:mysql://127.0.0.1:3306/db3?serverTimezone=UTC&useSSL=false",
+ USER="root",
+ PASSWORD="root",
+ PROPERTIES("maximumPoolSize"="10","idleTimeout"="30000")
+);
+
+ALTER STORAGE UNIT su_0 (
+ HOST="127.0.0.1",
+ PORT=3309,
+ DB="db0",
+ USER="root",
+ PASSWORD="root"
+),su_1 (
+ URL="jdbc:mysql://127.0.0.1:3309/db1?serverTimezone=UTC&useSSL=false",
+ USER="root",
+ PASSWORD="root",
+ PROPERTIES("maximumPoolSize"="10","idleTimeout"="30000")
+);
+
+UNREGISTER STORAGE UNIT su_0, su_1;
+UNREGISTER STORAGE UNIT su_2, su_3 ignore single tables;
+```
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/storage-unit-definition.en.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/storage-unit-definition.en.md
new file mode 100644
index 00000000000..363304cfb88
--- /dev/null
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/storage-unit-definition.en.md
@@ -0,0 +1,94 @@
++++
+title = "Storage Unit Definition"
+weight = 1
++++
+
+## Syntax
+
+```sql
+REGISTER STORAGE UNIT storageUnitDefinition [, storageUnitDefinition] ...
+
+ALTER STORAGE UNIT storageUnitDefinition [, storageUnitDefinition] ...
+
+UNREGISTER STORAGE UNIT storageUnitName [, storageUnitName] ... [ignore single tables]
+
+storageUnitDefinition:
+ simpleSource | urlSource
+
+simpleSource:
+ storageUnitName(HOST=hostname,PORT=port,DB=dbName,USER=user [,PASSWORD=password] [,PROPERTIES(property [,property]) ...])
+
+urlSource:
+ storageUnitName(URL=url,USER=user [,PASSWORD=password] [,PROPERTIES(property [,property]) ...])
+
+property:
+ key=value
+```
+
+### Parameters Explained
+
+| Name | DataType | Description |
+|:-----------------|:-----------|:------------------|
+| storageUnitName | IDENTIFIER | Storage unit name |
+| hostname | STRING | Host or IP |
+| port | INT | Port |
+| dbName | STRING | DB name |
+| url | STRING | URL |
+| user | STRING | username |
+| password | STRING | password |
+
+### Notes
+
+- Before adding storage unit, please confirm that a distributed database has been created, and execute the `use` command to successfully select a database;
+- Confirm that the storage unit to be added or altered can be connected, otherwise the operation will not be successful;
+- Duplicate `storageUnitName` is not allowed;
+- `PROPERTIES` is used to customize connection pool parameters, `key` and `value` are both STRING types;
+- `ALTER RESOURCE` is not allowed to change the real data source associated with this storage unit;
+- `ALTER RESOURCE` will switch the connection pool. This operation may affect the ongoing business, please use it with caution;
+- `DROP RESOURCE` will only delete logical storage unit, not real data sources;
+- Storage unit referenced by rules cannot be deleted;
+- If the storage unit is only referenced by `single table rule`, and the user confirms that the restriction can be ignored, the optional parameter `ignore single tables` can be added to perform forced deletion.
+
+## Example
+
+```sql
+REGISTER STORAGE UNIT su_0 (
+ HOST="127.0.0.1",
+ PORT=3306,
+ DB="db0",
+ USER="root",
+ PASSWORD="root"
+),su_1 (
+ HOST="127.0.0.1",
+ PORT=3306,
+ DB="db1",
+ USER="root"
+),su_2 (
+ HOST="127.0.0.1",
+ PORT=3306,
+ DB="db2",
+ USER="root",
+ PROPERTIES("maximumPoolSize"="10")
+),su_3 (
+ URL="jdbc:mysql://127.0.0.1:3306/db3?serverTimezone=UTC&useSSL=false",
+ USER="root",
+ PASSWORD="root",
+ PROPERTIES("maximumPoolSize"="10","idleTimeout"="30000")
+);
+
+ALTER STORAGE UNIT su_0 (
+ HOST="127.0.0.1",
+ PORT=3309,
+ DB="db0",
+ USER="root",
+ PASSWORD="root"
+),su_1 (
+ URL="jdbc:mysql://127.0.0.1:3309/db1?serverTimezone=UTC&useSSL=false",
+ USER="root",
+ PASSWORD="root",
+ PROPERTIES("maximumPoolSize"="10","idleTimeout"="30000")
+);
+
+UNREGISTER STORAGE UNIT su_0, su_1;
+UNREGISTER STORAGE UNIT su_2, su_3 ignore single tables;
+```
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/single-table.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/single-table.cn.md
index 2db39631759..e6cacbccab4 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/single-table.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/single-table.cn.md
@@ -6,9 +6,9 @@ weight = 2
## 语法说明
```sql
-SHOW SINGLE TABLE (table | RULES) [FROM databaseName]
-
-SHOW SINGLE TABLES
+SHOW DEFAULT SINGLE TABLE STORAGE UNIT [FROM databaseName]
+
+SHOW SINGLE (TABLES | table) [FROM databaseName]
COUNT SINGLE_TABLE RULE [FROM databaseName]
@@ -18,12 +18,11 @@ table:
## 返回值说明
-### Single Table Rule
+### Single Table Storage Unit
-| 列 | 说明 |
-| ------------- | ------------ |
-| name | 规则名称 |
-| resource_name | 数据源名称 |
+| 列 | 说明 |
+|--------------------|---------|
+| storage_unit_name | 存储单元名称 |
### Single Table
@@ -42,15 +41,15 @@ table:
## 示例
-*SHOW SINGLE TABLES RULES*
+*SHOW DEFAULT SINGLE TABLE STORAGE UNIT*
```sql
-sql> SHOW SINGLE TABLES RULES;
-+---------+---------------+
-| name | resource_name |
-+---------+---------------+
-| default | ds_1 |
-+---------+---------------+
+sql> SHOW DEFAULT SINGLE TABLE STORAGE UNIT;
++-------------------+
+| storage_unit_name |
++-------------------+
+| ds_0 |
++-------------------+
1 row in set (0.01 sec)
```
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/single-table.en.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/single-table.en.md
index 4436f4e3844..87a511ab368 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/single-table.en.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/single-table.en.md
@@ -6,9 +6,9 @@ weight = 2
## Syntax
```sql
-SHOW SINGLE TABLE (table | RULES) [FROM databaseName]
-
-SHOW SINGLE TABLES
+SHOW DEFAULT SINGLE TABLE STORAGE UNIT [FROM databaseName]
+
+SHOW SINGLE (TABLES | table) [FROM databaseName]
COUNT SINGLE_TABLE RULE [FROM databaseName]
@@ -18,12 +18,12 @@ table:
## Return Value Description
-### Single Table Rule
+### Single Table Storage Unit
+
+| Column | Description |
+|--------------------|-------------------|
+| storage_unit_name | Storage unit name |
-| Column | Description |
-| ------------- | ---------------- |
-| name | Rule name |
-| resource_name | Data source name |
### Single Table
@@ -42,15 +42,15 @@ table:
## Example
-*SHOW SINGLE TABLES RULES*
+*SHOW DEFAULT SINGLE TABLE STORAGE UNIT*
```sql
-sql> SHOW SINGLE TABLES RULES;
-+---------+---------------+
-| name | resource_name |
-+---------+---------------+
-| default | ds_1 |
-+---------+---------------+
+sql> SHOW DEFAULT SINGLE TABLE STORAGE UNIT;
++-------------------+
+| storage_unit_name |
++-------------------+
+| ds_0 |
++-------------------+
1 row in set (0.01 sec)
```
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/resource-query.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/storage-unit-query.cn.md
similarity index 50%
rename from docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/resource-query.cn.md
rename to docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/storage-unit-query.cn.md
index 22ec5c0bf3e..fdb853db99c 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/resource-query.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/storage-unit-query.cn.md
@@ -1,12 +1,12 @@
+++
-title = "资源查询"
+title = "存储单元查询"
weight = 1
+++
## 语法说明
```sql
-SHOW DATABASE RESOURCES [FROM databaseName]
+SHOW STORAGE UNITS [ [FROM databaseName] | [WHERE USAGE_COUNT = usageCount] ]
```
## 返回值说明
@@ -23,7 +23,17 @@ SHOW DATABASE RESOURCES [FROM databaseName]
## 示例
```sql
-mysql> SHOW DATABASE RESOURCES;
+mysql> SHOW STORAGE UNITS;
++------+-------+-----------+------+------+---------------------------------+---------------------------+---------------------------+---------------+---------------+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
+| name | type | host | port | db | connection_timeout_milliseconds | idle_timeout_milliseconds | max_lifetime_milliseconds | max_pool_size | min_pool_size | read_only | other_attributes [...]
++------+-------+-----------+------+------+---------------------------------+---------------------------+---------------------------+---------------+---------------+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
+| ds_0 | MySQL | 127.0.0.1 | 3306 | db_0 | 30000 | 60000 | 1800000 | 50 | 1 | false | {"dataSourceProperties":{"cacheServerConfiguration":"true","elideSetAutoCommits":"true","useServerPrepStmts":"true","cachePrepStmts":"true","rewriteBatchedStatements":"true","cacheResultSetMetadata":"false","useLocalSessionState":"true","maintainTimeStats":"false","prepStmtCacheSize":"8192","tinyInt1isBit":"false [...]
+| ds_1 | MySQL | 127.0.0.1 | 3306 | db_1 | 30000 | 60000 | 1800000 | 50 | 1 | false | {"dataSourceProperties":{"cacheServerConfiguration":"true","elideSetAutoCommits":"true","useServerPrepStmts":"true","cachePrepStmts":"true","rewriteBatchedStatements":"true","cacheResultSetMetadata":"false","useLocalSessionState":"true","maintainTimeStats":"false","prepStmtCacheSize":"8192","tinyInt1isBit":"false [...]
++------+-------+-----------+------+------+---------------------------------+---------------------------+---------------------------+---------------+---------------+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
+2 rows in set (0.84 sec)
+```
+```sql
+mysql> SHOW STORAGE UNITS FROM sharding_db;
+------+-------+-----------+------+------+---------------------------------+---------------------------+---------------------------+---------------+---------------+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
| name | type | host | port | db | connection_timeout_milliseconds | idle_timeout_milliseconds | max_lifetime_milliseconds | max_pool_size | min_pool_size | read_only | other_attributes [...]
+------+-------+-----------+------+------+---------------------------------+---------------------------+---------------------------+---------------+---------------+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/resource-query.en.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/storage-unit-query.en.md
similarity index 51%
rename from docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/resource-query.en.md
rename to docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/storage-unit-query.en.md
index 48e42448753..9901ad1e98c 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/resource-query.en.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/storage-unit-query.en.md
@@ -1,12 +1,12 @@
+++
-title = "Resource Query"
+title = "Storage Unit Query"
weight = 1
+++
## Syntax
```sql
-SHOW DATABASE RESOURCES [FROM databaseName]
+SHOW STORAGE UNITS [ [FROM databaseName] | [WHERE USAGE_COUNT = usageCount] ]
```
## Return Value Description
@@ -23,12 +23,21 @@ SHOW DATABASE RESOURCES [FROM databaseName]
## Example
```sql
-mysql> SHOW DATABASE RESOURCES;
+mysql> SHOW STORAGE UNITS;
+------+-------+-----------+------+------+---------------------------------+---------------------------+---------------------------+---------------+---------------+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
| name | type | host | port | db | connection_timeout_milliseconds | idle_timeout_milliseconds | max_lifetime_milliseconds | max_pool_size | min_pool_size | read_only | other_attributes [...]
+------+-------+-----------+------+------+---------------------------------+---------------------------+---------------------------+---------------+---------------+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
| ds_0 | MySQL | 127.0.0.1 | 3306 | db_0 | 30000 | 60000 | 1800000 | 50 | 1 | false | {"dataSourceProperties":{"cacheServerConfiguration":"true","elideSetAutoCommits":"true","useServerPrepStmts":"true","cachePrepStmts":"true","rewriteBatchedStatements":"true","cacheResultSetMetadata":"false","useLocalSessionState":"true","maintainTimeStats":"false","prepStmtCacheSize":"8192","tinyInt1isBit":"false [...]
| ds_1 | MySQL | 127.0.0.1 | 3306 | db_1 | 30000 | 60000 | 1800000 | 50 | 1 | false | {"dataSourceProperties":{"cacheServerConfiguration":"true","elideSetAutoCommits":"true","useServerPrepStmts":"true","cachePrepStmts":"true","rewriteBatchedStatements":"true","cacheResultSetMetadata":"false","useLocalSessionState":"true","maintainTimeStats":"false","prepStmtCacheSize":"8192","tinyInt1isBit":"false [...]
+------+-------+-----------+------+------+---------------------------------+---------------------------+---------------------------+---------------+---------------+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
-2 rows in set (0.84 sec)
```
+```sql
+mysql> SHOW STORAGE UNITS FROM sharding_db;
++------+-------+-----------+------+------+---------------------------------+---------------------------+---------------------------+---------------+---------------+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
+| name | type | host | port | db | connection_timeout_milliseconds | idle_timeout_milliseconds | max_lifetime_milliseconds | max_pool_size | min_pool_size | read_only | other_attributes [...]
++------+-------+-----------+------+------+---------------------------------+---------------------------+---------------------------+---------------+---------------+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
+| ds_0 | MySQL | 127.0.0.1 | 3306 | db_0 | 30000 | 60000 | 1800000 | 50 | 1 | false | {"dataSourceProperties":{"cacheServerConfiguration":"true","elideSetAutoCommits":"true","useServerPrepStmts":"true","cachePrepStmts":"true","rewriteBatchedStatements":"true","cacheResultSetMetadata":"false","useLocalSessionState":"true","maintainTimeStats":"false","prepStmtCacheSize":"8192","tinyInt1isBit":"false [...]
+| ds_1 | MySQL | 127.0.0.1 | 3306 | db_1 | 30000 | 60000 | 1800000 | 50 | 1 | false | {"dataSourceProperties":{"cacheServerConfiguration":"true","elideSetAutoCommits":"true","useServerPrepStmts":"true","cachePrepStmts":"true","rewriteBatchedStatements":"true","cacheResultSetMetadata":"false","useLocalSessionState":"true","maintainTimeStats":"false","prepStmtCacheSize":"8192","tinyInt1isBit":"false [...]
++------+-------+-----------+------+------+---------------------------------+---------------------------+---------------------------+---------------+---------------+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
+2 rows in set (0.84 sec)
+```
\ No newline at end of file
diff --git a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/utils/AutoCommitUtilsTest.java b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/utils/AutoCommitUtilsTest.java
index fd6c384f7e9..b292d013884 100644
--- a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/utils/AutoCommitUtilsTest.java
+++ b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/utils/AutoCommitUtilsTest.java
@@ -21,7 +21,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.LinkedList;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
@@ -49,6 +49,6 @@ public final class AutoCommitUtilsTest {
@Test
public void assertNeedOpenTransactionForOtherStatement() {
- assertFalse(AutoCommitUtils.needOpenTransaction(new AddResourceStatement(new LinkedList<>())));
+ assertFalse(AutoCommitUtils.needOpenTransaction(new RegisterStorageUnitStatement(new LinkedList<>())));
}
}
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactory.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactory.java
index e0ede2cd153..06413c31903 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactory.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactory.java
@@ -21,9 +21,9 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.RDLStatement;
import org.apache.shardingsphere.distsql.parser.statement.rdl.RuleDefinitionStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterResourceStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorageUnitStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
import org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.AddResourceBackendHandler;
import org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.AlterResourceBackendHandler;
@@ -45,14 +45,14 @@ public final class RDLBackendHandlerFactory {
* @return RDL backend handler
*/
public static ProxyBackendHandler newInstance(final RDLStatement sqlStatement, final ConnectionSession connectionSession) {
- if (sqlStatement instanceof AddResourceStatement) {
- return new AddResourceBackendHandler((AddResourceStatement) sqlStatement, connectionSession);
+ if (sqlStatement instanceof RegisterStorageUnitStatement) {
+ return new AddResourceBackendHandler((RegisterStorageUnitStatement) sqlStatement, connectionSession);
}
- if (sqlStatement instanceof AlterResourceStatement) {
- return new AlterResourceBackendHandler((AlterResourceStatement) sqlStatement, connectionSession);
+ if (sqlStatement instanceof AlterStorageUnitStatement) {
+ return new AlterResourceBackendHandler((AlterStorageUnitStatement) sqlStatement, connectionSession);
}
- if (sqlStatement instanceof DropResourceStatement) {
- return new DropResourceBackendHandler((DropResourceStatement) sqlStatement, connectionSession);
+ if (sqlStatement instanceof UnregisterStorageUnitStatement) {
+ return new DropResourceBackendHandler((UnregisterStorageUnitStatement) sqlStatement, connectionSession);
}
return new RuleDefinitionBackendHandler<>((RuleDefinitionStatement) sqlStatement, connectionSession);
}
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AddResourceBackendHandler.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AddResourceBackendHandler.java
index 7e17ba3442c..a46e798ecaa 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AddResourceBackendHandler.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AddResourceBackendHandler.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.datasource.props.DataSourceProperties;
import org.apache.shardingsphere.infra.datasource.props.DataSourcePropertiesValidator;
@@ -45,20 +45,20 @@ import java.util.Map;
* Add resource backend handler.
*/
@Slf4j
-public final class AddResourceBackendHandler extends DatabaseRequiredBackendHandler<AddResourceStatement> {
+public final class AddResourceBackendHandler extends DatabaseRequiredBackendHandler<RegisterStorageUnitStatement> {
private final DatabaseType databaseType;
private final DataSourcePropertiesValidator validator;
- public AddResourceBackendHandler(final AddResourceStatement sqlStatement, final ConnectionSession connectionSession) {
+ public AddResourceBackendHandler(final RegisterStorageUnitStatement sqlStatement, final ConnectionSession connectionSession) {
super(sqlStatement, connectionSession);
databaseType = connectionSession.getDatabaseType();
validator = new DataSourcePropertiesValidator();
}
@Override
- public ResponseHeader execute(final String databaseName, final AddResourceStatement sqlStatement) {
+ public ResponseHeader execute(final String databaseName, final RegisterStorageUnitStatement sqlStatement) {
checkSQLStatement(databaseName, sqlStatement);
Map<String, DataSourceProperties> dataSourcePropsMap = ResourceSegmentsConverter.convert(databaseType, sqlStatement.getDataSources());
DatabaseType storeType = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData().getDatabaseType();
@@ -72,7 +72,7 @@ public final class AddResourceBackendHandler extends DatabaseRequiredBackendHand
return new UpdateResponseHeader(sqlStatement);
}
- private void checkSQLStatement(final String databaseName, final AddResourceStatement sqlStatement) {
+ private void checkSQLStatement(final String databaseName, final RegisterStorageUnitStatement sqlStatement) {
Collection<String> dataSourceNames = new ArrayList<>(sqlStatement.getDataSources().size());
Collection<String> duplicateDataSourceNames = new HashSet<>(sqlStatement.getDataSources().size(), 1);
for (DataSourceSegment each : sqlStatement.getDataSources()) {
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterResourceBackendHandler.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterResourceBackendHandler.java
index 2708a44fb8c..6081e10bb7a 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterResourceBackendHandler.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterResourceBackendHandler.java
@@ -21,7 +21,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
import org.apache.shardingsphere.distsql.parser.segment.HostnameAndPortBasedDataSourceSegment;
import org.apache.shardingsphere.distsql.parser.segment.URLBasedDataSourceSegment;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorageUnitStatement;
import org.apache.shardingsphere.infra.database.metadata.url.JdbcUrl;
import org.apache.shardingsphere.infra.database.metadata.url.StandardJdbcUrlParser;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
@@ -52,20 +52,20 @@ import java.util.stream.Collectors;
* Alter resource backend handler.
*/
@Slf4j
-public final class AlterResourceBackendHandler extends DatabaseRequiredBackendHandler<AlterResourceStatement> {
+public final class AlterResourceBackendHandler extends DatabaseRequiredBackendHandler<AlterStorageUnitStatement> {
private final DatabaseType databaseType;
private final DataSourcePropertiesValidator validator;
- public AlterResourceBackendHandler(final AlterResourceStatement sqlStatement, final ConnectionSession connectionSession) {
+ public AlterResourceBackendHandler(final AlterStorageUnitStatement sqlStatement, final ConnectionSession connectionSession) {
super(sqlStatement, connectionSession);
databaseType = connectionSession.getDatabaseType();
validator = new DataSourcePropertiesValidator();
}
@Override
- public ResponseHeader execute(final String databaseName, final AlterResourceStatement sqlStatement) {
+ public ResponseHeader execute(final String databaseName, final AlterStorageUnitStatement sqlStatement) {
checkSQLStatement(databaseName, sqlStatement);
Map<String, DataSourceProperties> dataSourcePropsMap = ResourceSegmentsConverter.convert(databaseType, sqlStatement.getDataSources());
validator.validate(dataSourcePropsMap, databaseType);
@@ -78,21 +78,21 @@ public final class AlterResourceBackendHandler extends DatabaseRequiredBackendHa
return new UpdateResponseHeader(sqlStatement);
}
- private void checkSQLStatement(final String databaseName, final AlterResourceStatement sqlStatement) {
+ private void checkSQLStatement(final String databaseName, final AlterStorageUnitStatement sqlStatement) {
Collection<String> toBeAlteredResourceNames = getToBeAlteredResourceNames(sqlStatement);
checkToBeAlteredDuplicateResourceNames(toBeAlteredResourceNames);
checkResourceNameExisted(databaseName, toBeAlteredResourceNames);
checkDatabase(databaseName, sqlStatement);
}
- private void checkDatabase(final String databaseName, final AlterResourceStatement sqlStatement) {
+ private void checkDatabase(final String databaseName, final AlterStorageUnitStatement sqlStatement) {
Map<String, DataSource> resources = ProxyContext.getInstance().getDatabase(databaseName).getResourceMetaData().getDataSources();
Collection<String> invalid = sqlStatement.getDataSources().stream().collect(Collectors.toMap(DataSourceSegment::getName, each -> each)).entrySet().stream()
.filter(each -> !isIdenticalDatabase(each.getValue(), resources.get(each.getKey()))).map(Entry::getKey).collect(Collectors.toSet());
ShardingSpherePreconditions.checkState(invalid.isEmpty(), () -> new InvalidResourcesException(Collections.singleton(String.format("Cannot alter the database of %s", invalid))));
}
- private Collection<String> getToBeAlteredResourceNames(final AlterResourceStatement sqlStatement) {
+ private Collection<String> getToBeAlteredResourceNames(final AlterStorageUnitStatement sqlStatement) {
return sqlStatement.getDataSources().stream().map(DataSourceSegment::getName).collect(Collectors.toList());
}
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/DropResourceBackendHandler.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/DropResourceBackendHandler.java
index df02d1b9d8a..5e40d077da0 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/DropResourceBackendHandler.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/DropResourceBackendHandler.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource;
import com.google.common.collect.LinkedListMultimap;
import com.google.common.collect.Multimap;
import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.distsql.exception.resource.InvalidResourcesException;
import org.apache.shardingsphere.infra.distsql.exception.resource.MissingRequiredResourcesException;
@@ -49,14 +49,14 @@ import java.util.stream.Collectors;
* Drop resource backend handler.
*/
@Slf4j
-public final class DropResourceBackendHandler extends DatabaseRequiredBackendHandler<DropResourceStatement> {
+public final class DropResourceBackendHandler extends DatabaseRequiredBackendHandler<UnregisterStorageUnitStatement> {
- public DropResourceBackendHandler(final DropResourceStatement sqlStatement, final ConnectionSession connectionSession) {
+ public DropResourceBackendHandler(final UnregisterStorageUnitStatement sqlStatement, final ConnectionSession connectionSession) {
super(sqlStatement, connectionSession);
}
@Override
- public ResponseHeader execute(final String databaseName, final DropResourceStatement sqlStatement) {
+ public ResponseHeader execute(final String databaseName, final UnregisterStorageUnitStatement sqlStatement) {
Collection<String> toBeDroppedResourceNames = sqlStatement.getNames();
check(databaseName, toBeDroppedResourceNames, sqlStatement.isIgnoreSingleTables(), sqlStatement.isIfExists());
try {
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/CreateDefaultSingleTableRuleStatementUpdater.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitStatementUpdater.java
similarity index 63%
rename from proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/CreateDefaultSingleTableRuleStatementUpdater.java
rename to proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitStatementUpdater.java
index da83e8c4999..e564df0154c 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/CreateDefaultSingleTableRuleStatementUpdater.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitStatementUpdater.java
@@ -17,9 +17,9 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateDefaultSingleTableRuleStatement;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.SetDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.infra.distsql.exception.resource.MissingRequiredResourcesException;
-import org.apache.shardingsphere.infra.distsql.exception.rule.DuplicateRuleException;
import org.apache.shardingsphere.infra.distsql.update.RuleDefinitionCreateUpdater;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
@@ -31,28 +31,23 @@ import java.util.Collections;
/**
* Create default single table rule statement updater.
*/
-public final class CreateDefaultSingleTableRuleStatementUpdater implements RuleDefinitionCreateUpdater<CreateDefaultSingleTableRuleStatement, SingleTableRuleConfiguration> {
+public final class SetDefaultSingleTableStorageUnitStatementUpdater implements RuleDefinitionCreateUpdater<SetDefaultSingleTableStorageUnitStatement, SingleTableRuleConfiguration> {
@Override
- public void checkSQLStatement(final ShardingSphereDatabase database, final CreateDefaultSingleTableRuleStatement sqlStatement, final SingleTableRuleConfiguration currentRuleConfig) {
+ public void checkSQLStatement(final ShardingSphereDatabase database, final SetDefaultSingleTableStorageUnitStatement sqlStatement, final SingleTableRuleConfiguration currentRuleConfig) {
checkResourceExist(database, sqlStatement);
- checkDefaultResourceDuplicate(database.getName(), currentRuleConfig);
}
- private void checkResourceExist(final ShardingSphereDatabase database, final CreateDefaultSingleTableRuleStatement sqlStatement) {
- Collection<String> resourceNames = database.getResourceMetaData().getDataSources().keySet();
- ShardingSpherePreconditions.checkState(resourceNames.contains(sqlStatement.getDefaultResource()),
- () -> new MissingRequiredResourcesException(database.getName(), Collections.singleton(sqlStatement.getDefaultResource())));
- }
-
- private void checkDefaultResourceDuplicate(final String databaseName, final SingleTableRuleConfiguration currentRuleConfig) {
- if (null != currentRuleConfig) {
- ShardingSpherePreconditions.checkState(!currentRuleConfig.getDefaultDataSource().isPresent(), () -> new DuplicateRuleException("default single table rule", databaseName));
+ private void checkResourceExist(final ShardingSphereDatabase database, final SetDefaultSingleTableStorageUnitStatement sqlStatement) {
+ if (StringUtils.isNotBlank(sqlStatement.getDefaultResource())) {
+ Collection<String> resourceNames = database.getResourceMetaData().getDataSources().keySet();
+ ShardingSpherePreconditions.checkState(resourceNames.contains(sqlStatement.getDefaultResource()),
+ () -> new MissingRequiredResourcesException(database.getName(), Collections.singleton(sqlStatement.getDefaultResource())));
}
}
@Override
- public SingleTableRuleConfiguration buildToBeCreatedRuleConfiguration(final CreateDefaultSingleTableRuleStatement sqlStatement) {
+ public SingleTableRuleConfiguration buildToBeCreatedRuleConfiguration(final SetDefaultSingleTableStorageUnitStatement sqlStatement) {
SingleTableRuleConfiguration result = new SingleTableRuleConfiguration();
result.setDefaultDataSource(sqlStatement.getDefaultResource());
return result;
@@ -70,6 +65,6 @@ public final class CreateDefaultSingleTableRuleStatementUpdater implements RuleD
@Override
public String getType() {
- return CreateDefaultSingleTableRuleStatement.class.getName();
+ return SetDefaultSingleTableStorageUnitStatement.class.getName();
}
}
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/DataSourceQueryResultSet.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/DataSourceQueryResultSet.java
index c9d5b9eb027..65007bc3942 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/DataSourceQueryResultSet.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/DataSourceQueryResultSet.java
@@ -17,24 +17,34 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.rql.resource;
+import com.google.common.collect.LinkedListMultimap;
+import com.google.common.collect.Multimap;
import com.google.gson.Gson;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowResourcesStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowStorageUnitsStatement;
import org.apache.shardingsphere.infra.database.metadata.DataSourceMetaData;
+import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.datasource.props.DataSourceProperties;
import org.apache.shardingsphere.infra.datasource.props.DataSourcePropertiesCreator;
import org.apache.shardingsphere.infra.distsql.query.DatabaseDistSQLResultSet;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
+import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
+import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
+import org.apache.shardingsphere.infra.rule.identifier.type.DataNodeContainedRule;
+import org.apache.shardingsphere.infra.rule.identifier.type.DataSourceContainedRule;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
import javax.sql.DataSource;
import java.util.Arrays;
import java.util.Collection;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Set;
+import java.util.stream.Collectors;
/**
* Query result set for show data source.
@@ -63,12 +73,55 @@ public final class DataSourceQueryResultSet implements DatabaseDistSQLResultSet
public void init(final ShardingSphereDatabase database, final SQLStatement sqlStatement) {
resourceMetaData = database.getResourceMetaData();
dataSourcePropsMap = new LinkedHashMap<>(database.getResourceMetaData().getDataSources().size(), 1);
- for (Entry<String, DataSource> entry : database.getResourceMetaData().getDataSources().entrySet()) {
- dataSourcePropsMap.put(entry.getKey(), DataSourcePropertiesCreator.create(entry.getValue()));
+ Integer usageCount = ((ShowStorageUnitsStatement) sqlStatement).getUsageCount();
+ if (null == usageCount) {
+ for (Entry<String, DataSource> entry : database.getResourceMetaData().getDataSources().entrySet()) {
+ dataSourcePropsMap.put(entry.getKey(), DataSourcePropertiesCreator.create(entry.getValue()));
+ }
+ } else {
+ Multimap<String, String> inUsedMultiMap = getInUsedResources(database.getRuleMetaData());
+ for (Entry<String, DataSource> entry : database.getResourceMetaData().getDataSources().entrySet()) {
+ Integer currentUsageCount = inUsedMultiMap.containsKey(entry.getKey()) ? inUsedMultiMap.get(entry.getKey()).size() : 0;
+ if (currentUsageCount != usageCount) {
+ continue;
+ }
+ dataSourcePropsMap.put(entry.getKey(), DataSourcePropertiesCreator.create(entry.getValue()));
+ }
}
dataSourceNames = dataSourcePropsMap.keySet().iterator();
}
+ private Multimap<String, String> getInUsedResources(final ShardingSphereRuleMetaData ruleMetaData) {
+ Multimap<String, String> result = LinkedListMultimap.create();
+ for (ShardingSphereRule each : ruleMetaData.getRules()) {
+ if (each instanceof DataSourceContainedRule) {
+ Collection<String> inUsedResourceNames = getInUsedResourceNames((DataSourceContainedRule) each);
+ inUsedResourceNames.forEach(eachResource -> result.put(eachResource, each.getType()));
+ }
+ if (each instanceof DataNodeContainedRule) {
+ Collection<String> inUsedResourceNames = getInUsedResourceNames((DataNodeContainedRule) each);
+ inUsedResourceNames.forEach(eachResource -> result.put(eachResource, each.getType()));
+ }
+ }
+ return result;
+ }
+
+ private Collection<String> getInUsedResourceNames(final DataSourceContainedRule rule) {
+ Set<String> result = new HashSet<>();
+ for (Collection<String> each : rule.getDataSourceMapper().values()) {
+ result.addAll(each);
+ }
+ return result;
+ }
+
+ private Collection<String> getInUsedResourceNames(final DataNodeContainedRule rule) {
+ Set<String> result = new HashSet<>();
+ for (Collection<DataNode> each : rule.getAllDataNodes().values()) {
+ result.addAll(each.stream().map(DataNode::getDataSourceName).collect(Collectors.toSet()));
+ }
+ return result;
+ }
+
@Override
public Collection<String> getColumnNames() {
return Arrays.asList("name", "type", "host", "port", "db", "connection_timeout_milliseconds", "idle_timeout_milliseconds",
@@ -112,6 +165,6 @@ public final class DataSourceQueryResultSet implements DatabaseDistSQLResultSet
@Override
public String getType() {
- return ShowResourcesStatement.class.getName();
+ return ShowStorageUnitsStatement.class.getName();
}
}
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/SingleTableRulesQueryResultSet.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/SingleTableRulesQueryResultSet.java
index 5d7164e184e..09240c8b643 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/SingleTableRulesQueryResultSet.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/SingleTableRulesQueryResultSet.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableRulesStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.infra.distsql.query.DatabaseDistSQLResultSet;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.singletable.rule.SingleTableRule;
@@ -38,12 +38,12 @@ public final class SingleTableRulesQueryResultSet implements DatabaseDistSQLResu
@Override
public void init(final ShardingSphereDatabase database, final SQLStatement sqlStatement) {
SingleTableRule rule = database.getRuleMetaData().getSingleRule(SingleTableRule.class);
- rule.getConfiguration().getDefaultDataSource().ifPresent(optional -> data = Collections.singleton(optional).iterator());
+ data = Collections.singleton(rule.getConfiguration().getDefaultDataSource().orElse("RANDOM")).iterator();
}
@Override
public Collection<String> getColumnNames() {
- return Arrays.asList("name", "resource_name");
+ return Arrays.asList("storage_unit_name");
}
@Override
@@ -53,11 +53,11 @@ public final class SingleTableRulesQueryResultSet implements DatabaseDistSQLResu
@Override
public Collection<Object> getRowData() {
- return Arrays.asList("default", data.next());
+ return Arrays.asList(data.next());
}
@Override
public String getType() {
- return ShowSingleTableRulesStatement.class.getName();
+ return ShowDefaultSingleTableStorageUnitStatement.class.getName();
}
}
diff --git a/proxy/backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.update.RuleDefinitionUpdater b/proxy/backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.update.RuleDefinitionUpdater
index ba9ff24ed67..9b6bd62ab84 100644
--- a/proxy/backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.update.RuleDefinitionUpdater
+++ b/proxy/backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.update.RuleDefinitionUpdater
@@ -15,7 +15,7 @@
# limitations under the License.
#
-org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule.CreateDefaultSingleTableRuleStatementUpdater
+org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule.SetDefaultSingleTableStorageUnitStatementUpdater
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule.AlterDefaultSingleTableRuleStatementUpdater
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule.DropDefaultSingleTableRuleStatementUpdater
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactoryTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactoryTest.java
index 4e88f8fb252..f55fe70e9fe 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactoryTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactoryTest.java
@@ -259,7 +259,7 @@ public final class ProxyBackendHandlerFactoryTest extends ProxyContextRestorer {
@Test
public void assertUnsupportedRQLStatementInTransaction() throws SQLException {
when(connectionSession.getTransactionStatus().isInTransaction()).thenReturn(true);
- String sql = "SHOW SINGLE TABLE RULES";
+ String sql = "SHOW DEFAULT SINGLE TABLE STORAGE UNIT";
ProxyBackendHandler actual = ProxyBackendHandlerFactory.newInstance(databaseType, sql, connectionSession);
assertThat(actual, instanceOf(RQLBackendHandler.class));
}
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
index e5951f0a61d..8e9b5baabd6 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
@@ -17,10 +17,10 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterResourceStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropResourceStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowResourcesStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorageUnitStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowStorageUnitsStatement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowUnusedResourcesStatement;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
@@ -100,7 +100,7 @@ public final class DistSQLBackendHandlerFactoryTest extends ProxyContextRestorer
@Test
public void assertExecuteDataSourcesContext() throws SQLException {
setContextManager(true);
- ResponseHeader response = RDLBackendHandlerFactory.newInstance(mock(AddResourceStatement.class), connectionSession).execute();
+ ResponseHeader response = RDLBackendHandlerFactory.newInstance(mock(RegisterStorageUnitStatement.class), connectionSession).execute();
assertThat(response, instanceOf(UpdateResponseHeader.class));
}
@@ -116,14 +116,14 @@ public final class DistSQLBackendHandlerFactoryTest extends ProxyContextRestorer
@Test
public void assertExecuteAddResourceContext() throws SQLException {
setContextManager(true);
- ResponseHeader response = RDLBackendHandlerFactory.newInstance(mock(AddResourceStatement.class), connectionSession).execute();
+ ResponseHeader response = RDLBackendHandlerFactory.newInstance(mock(RegisterStorageUnitStatement.class), connectionSession).execute();
assertThat(response, instanceOf(UpdateResponseHeader.class));
}
@Test
public void assertExecuteAlterResourceContext() throws SQLException {
setContextManager(true);
- ResponseHeader response = RDLBackendHandlerFactory.newInstance(mock(AlterResourceStatement.class), connectionSession).execute();
+ ResponseHeader response = RDLBackendHandlerFactory.newInstance(mock(AlterStorageUnitStatement.class), connectionSession).execute();
assertThat(response, instanceOf(UpdateResponseHeader.class));
}
@@ -194,7 +194,7 @@ public final class DistSQLBackendHandlerFactoryTest extends ProxyContextRestorer
@Test
public void assertExecuteDropResourceContext() throws SQLException {
setContextManager(true);
- ResponseHeader response = RDLBackendHandlerFactory.newInstance(mock(DropResourceStatement.class), connectionSession).execute();
+ ResponseHeader response = RDLBackendHandlerFactory.newInstance(mock(UnregisterStorageUnitStatement.class), connectionSession).execute();
assertThat(response, instanceOf(UpdateResponseHeader.class));
}
@@ -222,7 +222,7 @@ public final class DistSQLBackendHandlerFactoryTest extends ProxyContextRestorer
@Test
public void assertExecuteShowResourceContext() throws SQLException {
setContextManager(true);
- ResponseHeader response = RQLBackendHandlerFactory.newInstance(mock(ShowResourcesStatement.class), connectionSession).execute();
+ ResponseHeader response = RQLBackendHandlerFactory.newInstance(mock(ShowStorageUnitsStatement.class), connectionSession).execute();
assertThat(response, instanceOf(QueryResponseHeader.class));
}
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java
index 2786c22aeb5..d5190365fae 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java
@@ -18,9 +18,9 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl;
import org.apache.shardingsphere.distsql.parser.statement.rdl.RuleDefinitionStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterResourceStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorageUnitStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
import org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.AddResourceBackendHandler;
import org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.AlterResourceBackendHandler;
import org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.DropResourceBackendHandler;
@@ -36,17 +36,17 @@ public final class RDLBackendHandlerFactoryTest {
@Test
public void assertNewInstanceWithAddResourceStatement() {
- assertThat(RDLBackendHandlerFactory.newInstance(mock(AddResourceStatement.class), mock(ConnectionSession.class)), instanceOf(AddResourceBackendHandler.class));
+ assertThat(RDLBackendHandlerFactory.newInstance(mock(RegisterStorageUnitStatement.class), mock(ConnectionSession.class)), instanceOf(AddResourceBackendHandler.class));
}
@Test
public void assertNewInstanceWithAlterResourceStatement() {
- assertThat(RDLBackendHandlerFactory.newInstance(mock(AlterResourceStatement.class), mock(ConnectionSession.class)), instanceOf(AlterResourceBackendHandler.class));
+ assertThat(RDLBackendHandlerFactory.newInstance(mock(AlterStorageUnitStatement.class), mock(ConnectionSession.class)), instanceOf(AlterResourceBackendHandler.class));
}
@Test
public void assertNewInstanceWithDropResourceStatement() {
- assertThat(RDLBackendHandlerFactory.newInstance(mock(DropResourceStatement.class), mock(ConnectionSession.class)), instanceOf(DropResourceBackendHandler.class));
+ assertThat(RDLBackendHandlerFactory.newInstance(mock(UnregisterStorageUnitStatement.class), mock(ConnectionSession.class)), instanceOf(DropResourceBackendHandler.class));
}
@Test
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AddResourceBackendHandlerTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AddResourceBackendHandlerTest.java
index 03a5e526aac..12f3459370f 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AddResourceBackendHandlerTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AddResourceBackendHandlerTest.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource;
import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
import org.apache.shardingsphere.distsql.parser.segment.HostnameAndPortBasedDataSourceSegment;
import org.apache.shardingsphere.distsql.parser.segment.URLBasedDataSourceSegment;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.infra.datasource.props.DataSourcePropertiesValidator;
import org.apache.shardingsphere.infra.distsql.exception.resource.DuplicateResourceException;
@@ -59,7 +59,7 @@ public final class AddResourceBackendHandlerTest extends ProxyContextRestorer {
private DataSourcePropertiesValidator validator;
@Mock
- private AddResourceStatement addResourceStatement;
+ private RegisterStorageUnitStatement registerStorageUnitStatement;
@Mock
private ConnectionSession connectionSession;
@@ -80,7 +80,7 @@ public final class AddResourceBackendHandlerTest extends ProxyContextRestorer {
when(metaDataContexts.getMetaData().getDatabase("test_db")).thenReturn(database);
when(metaDataContexts.getMetaData().containsDatabase("test_db")).thenReturn(true);
when(connectionSession.getDatabaseType()).thenReturn(new MySQLDatabaseType());
- addResourceBackendHandler = new AddResourceBackendHandler(addResourceStatement, connectionSession);
+ addResourceBackendHandler = new AddResourceBackendHandler(registerStorageUnitStatement, connectionSession);
Field field = addResourceBackendHandler.getClass().getDeclaredField("validator");
field.setAccessible(true);
field.set(addResourceBackendHandler, validator);
@@ -109,14 +109,14 @@ public final class AddResourceBackendHandlerTest extends ProxyContextRestorer {
addResourceBackendHandler.execute("test_db", createAlterResourceStatementWithDuplicateResourceNames());
}
- private AddResourceStatement createAddResourceStatement() {
- return new AddResourceStatement(Collections.singleton(new URLBasedDataSourceSegment("ds_0", "jdbc:mysql://127.0.0.1:3306/test0", "root", "", new Properties())));
+ private RegisterStorageUnitStatement createAddResourceStatement() {
+ return new RegisterStorageUnitStatement(Collections.singleton(new URLBasedDataSourceSegment("ds_0", "jdbc:mysql://127.0.0.1:3306/test0", "root", "", new Properties())));
}
- private AddResourceStatement createAlterResourceStatementWithDuplicateResourceNames() {
+ private RegisterStorageUnitStatement createAlterResourceStatementWithDuplicateResourceNames() {
Collection<DataSourceSegment> result = new LinkedList<>();
result.add(new HostnameAndPortBasedDataSourceSegment("ds_0", "127.0.0.1", "3306", "ds_0", "root", "", new Properties()));
result.add(new URLBasedDataSourceSegment("ds_0", "jdbc:mysql://127.0.0.1:3306/ds_1", "root", "", new Properties()));
- return new AddResourceStatement(result);
+ return new RegisterStorageUnitStatement(result);
}
}
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterResourceBackendHandlerTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterResourceBackendHandlerTest.java
index a4a8476694d..fb341f0402b 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterResourceBackendHandlerTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterResourceBackendHandlerTest.java
@@ -21,7 +21,7 @@ import com.zaxxer.hikari.HikariDataSource;
import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
import org.apache.shardingsphere.distsql.parser.segment.HostnameAndPortBasedDataSourceSegment;
import org.apache.shardingsphere.distsql.parser.segment.URLBasedDataSourceSegment;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorageUnitStatement;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.infra.datasource.props.DataSourcePropertiesValidator;
import org.apache.shardingsphere.infra.distsql.exception.resource.DuplicateResourceException;
@@ -63,7 +63,7 @@ public final class AlterResourceBackendHandlerTest extends ProxyContextRestorer
private DataSourcePropertiesValidator validator;
@Mock
- private AlterResourceStatement alterResourceStatement;
+ private AlterStorageUnitStatement alterStorageUnitStatement;
@Mock
private ConnectionSession connectionSession;
@@ -87,7 +87,7 @@ public final class AlterResourceBackendHandlerTest extends ProxyContextRestorer
when(metaDataContexts.getMetaData().getDatabase("test_db")).thenReturn(database);
when(metaDataContexts.getMetaData().containsDatabase("test_db")).thenReturn(true);
when(connectionSession.getDatabaseType()).thenReturn(new MySQLDatabaseType());
- alterResourceBackendHandler = new AlterResourceBackendHandler(alterResourceStatement, connectionSession);
+ alterResourceBackendHandler = new AlterResourceBackendHandler(alterStorageUnitStatement, connectionSession);
Field field = alterResourceBackendHandler.getClass().getDeclaredField("validator");
field.setAccessible(true);
field.set(alterResourceBackendHandler, validator);
@@ -130,15 +130,15 @@ public final class AlterResourceBackendHandlerTest extends ProxyContextRestorer
assertThat(responseHeader, instanceOf(UpdateResponseHeader.class));
}
- private AlterResourceStatement createAlterResourceStatement(final String resourceName) {
- return new AlterResourceStatement(Collections.singleton(new URLBasedDataSourceSegment(resourceName, "jdbc:mysql://127.0.0.1:3306/ds_0", "root", "", new Properties())));
+ private AlterStorageUnitStatement createAlterResourceStatement(final String resourceName) {
+ return new AlterStorageUnitStatement(Collections.singleton(new URLBasedDataSourceSegment(resourceName, "jdbc:mysql://127.0.0.1:3306/ds_0", "root", "", new Properties())));
}
- private AlterResourceStatement createAlterResourceStatementWithDuplicateResourceNames() {
+ private AlterStorageUnitStatement createAlterResourceStatementWithDuplicateResourceNames() {
Collection<DataSourceSegment> result = new LinkedList<>();
result.add(new HostnameAndPortBasedDataSourceSegment("ds_0", "127.0.0.1", "3306", "ds_0", "root", "", new Properties()));
result.add(new URLBasedDataSourceSegment("ds_0", "jdbc:mysql://127.0.0.1:3306/ds_1", "root", "", new Properties()));
- return new AlterResourceStatement(result);
+ return new AlterStorageUnitStatement(result);
}
private HikariDataSource mockHikariDataSource(final String database) {
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/DropResourceBackendHandlerTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/DropResourceBackendHandlerTest.java
index 336b51a1c17..ec6965c3e37 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/DropResourceBackendHandlerTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/DropResourceBackendHandlerTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.distsql.exception.DistSQLException;
import org.apache.shardingsphere.infra.distsql.exception.resource.MissingRequiredResourcesException;
@@ -54,7 +54,7 @@ import static org.mockito.Mockito.when;
public final class DropResourceBackendHandlerTest extends ProxyContextRestorer {
@Mock
- private DropResourceStatement dropResourceStatement;
+ private UnregisterStorageUnitStatement unregisterStorageUnitStatement;
@Mock
private ConnectionSession connectionSession;
@@ -93,7 +93,7 @@ public final class DropResourceBackendHandlerTest extends ProxyContextRestorer {
contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
- dropResourceBackendHandler = new DropResourceBackendHandler(dropResourceStatement, connectionSession);
+ dropResourceBackendHandler = new DropResourceBackendHandler(unregisterStorageUnitStatement, connectionSession);
}
@Test
@@ -102,14 +102,14 @@ public final class DropResourceBackendHandlerTest extends ProxyContextRestorer {
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("foo_ds", dataSource));
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("test")).thenReturn(database);
- DropResourceStatement dropResourceStatement = new DropResourceStatement(Collections.singleton("foo_ds"), false);
- assertThat(dropResourceBackendHandler.execute("test", dropResourceStatement), instanceOf(UpdateResponseHeader.class));
- verify(contextManager).dropResources("test", dropResourceStatement.getNames());
+ UnregisterStorageUnitStatement unregisterStorageUnitStatement = new UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false);
+ assertThat(dropResourceBackendHandler.execute("test", unregisterStorageUnitStatement), instanceOf(UpdateResponseHeader.class));
+ verify(contextManager).dropResources("test", unregisterStorageUnitStatement.getNames());
}
@Test(expected = MissingRequiredResourcesException.class)
public void assertResourceNameNotExistedExecute() {
- dropResourceBackendHandler.execute("test", new DropResourceStatement(Collections.singleton("foo_ds"), false));
+ dropResourceBackendHandler.execute("test", new UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false));
}
@Test(expected = ResourceInUsedException.class)
@@ -120,7 +120,7 @@ public final class DropResourceBackendHandlerTest extends ProxyContextRestorer {
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("foo_ds", dataSource));
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("test")).thenReturn(database);
- dropResourceBackendHandler.execute("test", new DropResourceStatement(Collections.singleton("foo_ds"), false));
+ dropResourceBackendHandler.execute("test", new UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false));
}
@Test(expected = ResourceInUsedException.class)
@@ -133,7 +133,7 @@ public final class DropResourceBackendHandlerTest extends ProxyContextRestorer {
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("foo_ds", dataSource));
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("test")).thenReturn(database);
- dropResourceBackendHandler.execute("test", new DropResourceStatement(Collections.singleton("foo_ds"), false));
+ dropResourceBackendHandler.execute("test", new UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false));
}
@Test
@@ -146,16 +146,16 @@ public final class DropResourceBackendHandlerTest extends ProxyContextRestorer {
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("foo_ds", dataSource));
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("test")).thenReturn(database);
- DropResourceStatement dropResourceStatement = new DropResourceStatement(Collections.singleton("foo_ds"), true);
- assertThat(dropResourceBackendHandler.execute("test", dropResourceStatement), instanceOf(UpdateResponseHeader.class));
- verify(contextManager).dropResources("test", dropResourceStatement.getNames());
+ UnregisterStorageUnitStatement unregisterStorageUnitStatement = new UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), true);
+ assertThat(dropResourceBackendHandler.execute("test", unregisterStorageUnitStatement), instanceOf(UpdateResponseHeader.class));
+ verify(contextManager).dropResources("test", unregisterStorageUnitStatement.getNames());
}
@Test
public void assertExecuteWithIfExists() throws SQLException {
- DropResourceStatement dropResourceStatement = new DropResourceStatement(true, Collections.singleton("foo_ds"), true);
- assertThat(dropResourceBackendHandler.execute("test", dropResourceStatement), instanceOf(UpdateResponseHeader.class));
- verify(contextManager).dropResources("test", dropResourceStatement.getNames());
+ UnregisterStorageUnitStatement unregisterStorageUnitStatement = new UnregisterStorageUnitStatement(true, Collections.singleton("foo_ds"), true);
+ assertThat(dropResourceBackendHandler.execute("test", unregisterStorageUnitStatement), instanceOf(UpdateResponseHeader.class));
+ verify(contextManager).dropResources("test", unregisterStorageUnitStatement.getNames());
}
@Test(expected = DistSQLException.class)
@@ -164,7 +164,7 @@ public final class DropResourceBackendHandlerTest extends ProxyContextRestorer {
when(shadowRule.getType()).thenReturn("ShadowRule");
when(shadowRule.getDataSourceMapper()).thenReturn(Collections.singletonMap("", Collections.singleton("foo_ds")));
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("test")).thenReturn(database);
- DropResourceStatement dropResourceStatement = new DropResourceStatement(true, Collections.singleton("foo_ds"), true);
- dropResourceBackendHandler.execute("test", dropResourceStatement);
+ UnregisterStorageUnitStatement unregisterStorageUnitStatement = new UnregisterStorageUnitStatement(true, Collections.singleton("foo_ds"), true);
+ dropResourceBackendHandler.execute("test", unregisterStorageUnitStatement);
}
}
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/CreateDefaultSingleTableRuleUpdaterTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/CreateDefaultSingleTableRuleUpdaterTest.java
index 7e36cc7e9a0..414c42c7ea6 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/CreateDefaultSingleTableRuleUpdaterTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/CreateDefaultSingleTableRuleUpdaterTest.java
@@ -17,9 +17,8 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateDefaultSingleTableRuleStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.SetDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.infra.distsql.exception.resource.MissingRequiredResourcesException;
-import org.apache.shardingsphere.infra.distsql.exception.rule.DuplicateRuleException;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.singletable.config.SingleTableRuleConfiguration;
import org.apache.shardingsphere.test.mock.MockedDataSource;
@@ -31,17 +30,17 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import java.util.Collections;
-import java.util.Optional;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class CreateDefaultSingleTableRuleUpdaterTest {
- private final CreateDefaultSingleTableRuleStatementUpdater updater = new CreateDefaultSingleTableRuleStatementUpdater();
+ private final SetDefaultSingleTableStorageUnitStatementUpdater updater = new SetDefaultSingleTableStorageUnitStatementUpdater();
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private ShardingSphereDatabase database;
@@ -57,28 +56,30 @@ public final class CreateDefaultSingleTableRuleUpdaterTest {
@Test(expected = MissingRequiredResourcesException.class)
public void assertCheckWithInvalidResource() {
- updater.checkSQLStatement(database, new CreateDefaultSingleTableRuleStatement("ds_1"), currentConfig);
- }
-
- @Test(expected = DuplicateRuleException.class)
- public void assertCheckWithDuplicateResource() {
- when(currentConfig.getDefaultDataSource()).thenReturn(Optional.of("single_table"));
- updater.checkSQLStatement(database, new CreateDefaultSingleTableRuleStatement("ds_0"), currentConfig);
+ updater.checkSQLStatement(database, new SetDefaultSingleTableStorageUnitStatement("ds_1"), currentConfig);
}
@Test
public void assertBuild() {
- SingleTableRuleConfiguration toBeCreatedRuleConfig = updater.buildToBeCreatedRuleConfiguration(new CreateDefaultSingleTableRuleStatement("ds_0"));
+ SingleTableRuleConfiguration toBeCreatedRuleConfig = updater.buildToBeCreatedRuleConfiguration(new SetDefaultSingleTableStorageUnitStatement("ds_0"));
assertTrue(toBeCreatedRuleConfig.getDefaultDataSource().isPresent());
assertThat(toBeCreatedRuleConfig.getDefaultDataSource().get(), is("ds_0"));
}
@Test
public void assertUpdate() {
- SingleTableRuleConfiguration toBeCreatedRuleConfig = updater.buildToBeCreatedRuleConfiguration(new CreateDefaultSingleTableRuleStatement("ds_0"));
+ SingleTableRuleConfiguration toBeCreatedRuleConfig = updater.buildToBeCreatedRuleConfiguration(new SetDefaultSingleTableStorageUnitStatement("ds_0"));
SingleTableRuleConfiguration currentConfig = new SingleTableRuleConfiguration();
updater.updateCurrentRuleConfiguration(currentConfig, toBeCreatedRuleConfig);
assertTrue(currentConfig.getDefaultDataSource().isPresent());
assertThat(currentConfig.getDefaultDataSource().get(), is("ds_0"));
}
+
+ @Test
+ public void assertRandom() {
+ SingleTableRuleConfiguration toBeCreatedRuleConfig = updater.buildToBeCreatedRuleConfiguration(new SetDefaultSingleTableStorageUnitStatement(null));
+ SingleTableRuleConfiguration currentConfig = new SingleTableRuleConfiguration();
+ updater.updateCurrentRuleConfiguration(currentConfig, toBeCreatedRuleConfig);
+ assertFalse(currentConfig.getDefaultDataSource().isPresent());
+ }
}
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/DataSourceQueryResultSetTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/DataSourceQueryResultSetTest.java
index e6cd79255d5..9917b6e188f 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/DataSourceQueryResultSetTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/DataSourceQueryResultSetTest.java
@@ -17,11 +17,12 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.rql;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowResourcesStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowStorageUnitsStatement;
import org.apache.shardingsphere.infra.distsql.query.DatabaseDistSQLResultSet;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
import org.apache.shardingsphere.proxy.backend.handler.distsql.rql.resource.DataSourceQueryResultSet;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
import org.apache.shardingsphere.test.mock.MockedDataSource;
import org.junit.Before;
import org.junit.Test;
@@ -63,7 +64,8 @@ public final class DataSourceQueryResultSetTest {
@Test
public void assertGetRowData() {
DatabaseDistSQLResultSet resultSet = new DataSourceQueryResultSet();
- resultSet.init(database, mock(ShowResourcesStatement.class));
+ ShowStorageUnitsStatement showStorageUnitsStatement = new ShowStorageUnitsStatement(mock(DatabaseSegment.class), null);
+ resultSet.init(database, showStorageUnitsStatement);
Collection<Object> actual = resultSet.getRowData();
assertThat(actual.size(), is(12));
Iterator<Object> rowData = actual.iterator();
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/SingleTableRulesQueryResultSetTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/SingleTableRulesQueryResultSetTest.java
index 6c9bb567725..ba6c1212b9b 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/SingleTableRulesQueryResultSetTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/SingleTableRulesQueryResultSetTest.java
@@ -41,9 +41,8 @@ public final class SingleTableRulesQueryResultSetTest {
DatabaseDistSQLResultSet resultSet = new SingleTableRulesQueryResultSet();
resultSet.init(mockDatabase(), mock(ShowSingleTableStatement.class));
Collection<Object> actual = resultSet.getRowData();
- assertThat(actual.size(), is(2));
+ assertThat(actual.size(), is(1));
Iterator<Object> rowData = actual.iterator();
- assertThat(rowData.next(), is("default"));
assertThat(rowData.next(), is("foo_ds"));
}
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/UnusedDataSourceQueryResultSetTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/UnusedDataSourceQueryResultSetTest.java
index e99a74ff9e4..162553863f3 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/UnusedDataSourceQueryResultSetTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/UnusedDataSourceQueryResultSetTest.java
@@ -17,18 +17,18 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.rql;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowUnusedResourcesStatement;
-import org.apache.shardingsphere.infra.distsql.query.DatabaseDistSQLResultSet;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowStorageUnitsStatement;
import org.apache.shardingsphere.infra.instance.InstanceContext;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.proxy.backend.handler.distsql.rql.resource.UnusedDataSourceQueryResultSet;
+import org.apache.shardingsphere.proxy.backend.handler.distsql.rql.resource.DataSourceQueryResultSet;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerateStrategyConfiguration;
import org.apache.shardingsphere.sharding.api.config.strategy.sharding.StandardShardingStrategyConfiguration;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
import org.apache.shardingsphere.test.mock.MockedDataSource;
import org.junit.Before;
import org.junit.Test;
@@ -102,8 +102,9 @@ public final class UnusedDataSourceQueryResultSetTest {
@Test
public void assertGetRowData() {
- DatabaseDistSQLResultSet resultSet = new UnusedDataSourceQueryResultSet();
- resultSet.init(database, mock(ShowUnusedResourcesStatement.class));
+ DataSourceQueryResultSet resultSet = new DataSourceQueryResultSet();
+ ShowStorageUnitsStatement showStorageUnitsStatement = new ShowStorageUnitsStatement(mock(DatabaseSegment.class), 0);
+ resultSet.init(database, showStorageUnitsStatement);
Collection<Object> actual = resultSet.getRowData();
assertThat(actual.size(), is(12));
Iterator<Object> rowData = actual.iterator();
diff --git a/proxy/frontend/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommandTest.java b/proxy/frontend/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommandTest.java
index 48b0243384b..e834606f42e 100644
--- a/proxy/frontend/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommandTest.java
+++ b/proxy/frontend/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommandTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.proxy.frontend.postgresql.command.query;
import org.apache.shardingsphere.distsql.parser.statement.DistSQLStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableRuleStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dal.AnalyzeTableStatement;
@@ -180,7 +180,7 @@ public final class PostgreSQLCommandTest {
@Test
public void assertValueOfCreateShardingTableRuleOrCreateDataSourcesStatement() {
- assertThat(PostgreSQLCommand.valueOf(AddResourceStatement.class).orElse(null), is(PostgreSQLCommand.SUCCESS));
+ assertThat(PostgreSQLCommand.valueOf(RegisterStorageUnitStatement.class).orElse(null), is(PostgreSQLCommand.SUCCESS));
assertThat(PostgreSQLCommand.valueOf(CreateShardingTableRuleStatement.class).orElse(null), is(PostgreSQLCommand.SUCCESS));
assertThat(PostgreSQLCommand.valueOf(DistSQLStatement.class).orElse(null), is(PostgreSQLCommand.SUCCESS));
assertThat(PostgreSQLCommand.SUCCESS.getTag(), is("SUCCESS"));
diff --git a/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/AbstractMigrationITCase.java b/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/AbstractMigrationITCase.java
index 1e9c7edb3a6..59aa10f91d0 100644
--- a/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/AbstractMigrationITCase.java
+++ b/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/AbstractMigrationITCase.java
@@ -87,7 +87,7 @@ public abstract class AbstractMigrationITCase extends BaseITCase {
.replace("${ds3}", appendBatchInsertParam(getActualJdbcUrlTemplate(DS_3, true)))
.replace("${ds4}", appendBatchInsertParam(getActualJdbcUrlTemplate(DS_4, true)));
addResource(addTargetResource);
- List<Map<String, Object>> resources = queryForListWithLog("SHOW DATABASE RESOURCES from sharding_db");
+ List<Map<String, Object>> resources = queryForListWithLog("SHOW STORAGE UNITS from sharding_db");
assertThat(resources.size(), is(3));
}
diff --git a/test/integration-test/scaling/src/test/resources/env/common/migration-command.xml b/test/integration-test/scaling/src/test/resources/env/common/migration-command.xml
index d60833a6c74..69a4fe6a207 100644
--- a/test/integration-test/scaling/src/test/resources/env/common/migration-command.xml
+++ b/test/integration-test/scaling/src/test/resources/env/common/migration-command.xml
@@ -42,7 +42,7 @@
</add-migration-source-resource-template>
<add-migration-target-resource-template>
- ADD RESOURCE ds_2 (
+ REGISTER STORAGE UNIT ds_2 (
URL="${ds2}",
USER="${user}",
PASSWORD="${password}"
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rdl/rdl-integration-test-cases.xml b/test/integration-test/test-suite/src/test/resources/cases/rdl/rdl-integration-test-cases.xml
index 623f4bb376e..ac8cd02ac24 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rdl/rdl-integration-test-cases.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rdl/rdl-integration-test-cases.xml
@@ -16,17 +16,17 @@
-->
<integration-test-cases>
<!-- TODO FIX HOST CANNOT CONNECT -->
-<!-- <test-case sql="ADD RESOURCE ds_0 (URL='jdbc:mysql://mysql.rdl.empty_rules.host:3306/rdl_ds_0?serverTimezone=UTC&useSSL=false', USER='test_user',PASSWORD='Test@123');" db-types="MySQL">-->
+<!-- <test-case sql="REGISTER STORAGE UNIT ds_0 (URL='jdbc:mysql://mysql.rdl.empty_rules.host:3306/rdl_ds_0?serverTimezone=UTC&useSSL=false', USER='test_user',PASSWORD='Test@123');" db-types="MySQL">-->
<!-- <assertion expected-data-file="add_resource.xml">-->
<!-- <assertion-sql sql="SHOW DATABASE RESOURCES" />-->
<!-- </assertion>-->
<!-- </test-case>-->
-<!-- <test-case sql="ALTER RESOURCE ds_2 (URL='jdbc:mysql://mysql.rdl.empty_rules.host:3306/rdl_ds_2?serverTimezone=UTC&useSSL=false', USER='test_user',PASSWORD='Test@123',PROPERTIES('idleTimeout'='30000'));" db-types="MySQL">-->
+<!-- <test-case sql="ALTER STORAGE UNIT ds_2 (URL='jdbc:mysql://mysql.rdl.empty_rules.host:3306/rdl_ds_2?serverTimezone=UTC&useSSL=false', USER='test_user',PASSWORD='Test@123',PROPERTIES('idleTimeout'='30000'));" db-types="MySQL">-->
<!-- <assertion expected-data-file="alter_resource.xml">-->
<!-- <assertion-sql sql="SHOW DATABASE RESOURCES" />-->
<!-- </assertion>-->
<!-- </test-case>-->
-<!-- <test-case sql="DROP RESOURCE ds_2;" db-types="MySQL, PostgreSQL">-->
+<!-- <test-case sql="UNREGISTER STORAGE UNIT ds_2;" db-types="MySQL, PostgreSQL">-->
<!-- <assertion expected-data-file="drop_resource.xml">-->
<!-- <assertion-sql sql="SHOW DATABASE RESOURCES" />-->
<!-- </assertion>-->
@@ -99,25 +99,25 @@
<assertion expected-data-file="create_single_table_rules.xml">
<initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 4}')))));
CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 4}')))));
- CREATE DEFAULT SINGLE TABLE RULE RESOURCE = ds_1;"></initial-sql>
+ SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_1;"></initial-sql>
<assertion-sql sql="SHOW SINGLE TABLES ;" />
- <destroy-sql sql="DROP TABLE temp;DROP DEFAULT SINGLE TABLE RULE;DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;"/>
+ <destroy-sql sql="DROP TABLE temp;SET DEFAULT SINGLE TABLE STORAGE UNIT = RANDOM;DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;"/>
</assertion>
</test-case>
<test-case sql="CREATE TABLE temp_alter (country_id INT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);" db-types="MySQL, PostgreSQL">
<assertion expected-data-file="alter_single_table_rules.xml">
<initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 4}')))));
CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 4}')))));
- CREATE DEFAULT SINGLE TABLE RULE RESOURCE = ds_1;ALTER DEFAULT SINGLE TABLE RULE RESOURCE = ds_0;" />
+ SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_1;SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_0;" />
<assertion-sql sql="SHOW SINGLE TABLES;" />
- <destroy-sql sql="DROP TABLE temp_alter;DROP DEFAULT SINGLE TABLE RULE;DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;"/>
+ <destroy-sql sql="DROP TABLE temp_alter;SET DEFAULT SINGLE TABLE STORAGE UNIT = RANDOM;DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;"/>
</assertion>
</test-case>
- <test-case sql="DROP DEFAULT SINGLE TABLE RULE" db-types="MySQL, PostgreSQL">
+ <test-case sql="SET DEFAULT SINGLE TABLE STORAGE UNIT = RANDOM" db-types="MySQL, PostgreSQL">
<assertion expected-data-file="drop_single_table_rules.xml">
<initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 4}')))));
CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 4}')))));
- CREATE DEFAULT SINGLE TABLE RULE RESOURCE = ds_0;" />
+ SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_0;" />
<assertion-sql sql="SHOW SINGLE TABLES;" />
<destroy-sql sql="DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;"/>
</assertion>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/db/show_single_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/db/show_single_table_rules.xml
index af8c90693af..03cf9467141 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/db/show_single_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/db/show_single_table_rules.xml
@@ -17,7 +17,7 @@
<dataset>
<metadata>
- <column name="name" />
- <column name="resource_name" />
+ <column name="storage_unit_name" />
</metadata>
+ <row values="RANDOM" />
</dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_single_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_single_table_rules.xml
index af8c90693af..03cf9467141 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_single_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_single_table_rules.xml
@@ -17,7 +17,7 @@
<dataset>
<metadata>
- <column name="name" />
- <column name="resource_name" />
+ <column name="storage_unit_name" />
</metadata>
+ <row values="RANDOM" />
</dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_single_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_single_table_rules.xml
index af8c90693af..03cf9467141 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_single_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_single_table_rules.xml
@@ -17,7 +17,7 @@
<dataset>
<metadata>
- <column name="name" />
- <column name="resource_name" />
+ <column name="storage_unit_name" />
</metadata>
+ <row values="RANDOM" />
</dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt/show_single_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt/show_single_table_rules.xml
index af8c90693af..03cf9467141 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt/show_single_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt/show_single_table_rules.xml
@@ -17,7 +17,7 @@
<dataset>
<metadata>
- <column name="name" />
- <column name="resource_name" />
+ <column name="storage_unit_name" />
</metadata>
+ <row values="RANDOM" />
</dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_single_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_single_table_rules.xml
index af8c90693af..03cf9467141 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_single_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_single_table_rules.xml
@@ -17,7 +17,7 @@
<dataset>
<metadata>
- <column name="name" />
- <column name="resource_name" />
+ <column name="storage_unit_name" />
</metadata>
+ <row values="RANDOM" />
</dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_single_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_single_table_rules.xml
index af8c90693af..03cf9467141 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_single_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_single_table_rules.xml
@@ -17,7 +17,7 @@
<dataset>
<metadata>
- <column name="name" />
- <column name="resource_name" />
+ <column name="storage_unit_name" />
</metadata>
+ <row values="RANDOM" />
</dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_single_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_single_table_rules.xml
index af8c90693af..03cf9467141 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_single_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_single_table_rules.xml
@@ -17,7 +17,7 @@
<dataset>
<metadata>
- <column name="name" />
- <column name="resource_name" />
+ <column name="storage_unit_name" />
</metadata>
+ <row values="RANDOM" />
</dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_single_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_single_table_rules.xml
index af8c90693af..03cf9467141 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_single_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_single_table_rules.xml
@@ -17,7 +17,7 @@
<dataset>
<metadata>
- <column name="name" />
- <column name="resource_name" />
+ <column name="storage_unit_name" />
</metadata>
+ <row values="RANDOM" />
</dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/tbl/show_single_table_rules.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/tbl/show_single_table_rules.xml
index af8c90693af..03cf9467141 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/tbl/show_single_table_rules.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/dataset/tbl/show_single_table_rules.xml
@@ -17,7 +17,7 @@
<dataset>
<metadata>
- <column name="name" />
- <column name="resource_name" />
+ <column name="storage_unit_name" />
</metadata>
+ <row values="RANDOM" />
</dataset>
diff --git a/test/integration-test/test-suite/src/test/resources/cases/rql/rql-integration-test-cases.xml b/test/integration-test/test-suite/src/test/resources/cases/rql/rql-integration-test-cases.xml
index af3c6d19b98..de94df71259 100644
--- a/test/integration-test/test-suite/src/test/resources/cases/rql/rql-integration-test-cases.xml
+++ b/test/integration-test/test-suite/src/test/resources/cases/rql/rql-integration-test-cases.xml
@@ -15,7 +15,7 @@
~ limitations under the License.
-->
<integration-test-cases>
- <test-case sql="SHOW DATABASE RESOURCES" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
+ <test-case sql="SHOW STORAGE UNITS" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="show_resources.xml" />
</test-case>
@@ -89,7 +89,7 @@
<assertion expected-data-file="show_sharding_broadcast_rules.xml" />
</test-case>
- <test-case sql="SHOW SINGLE TABLE RULES" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
+ <test-case sql="SHOW DEFAULT SINGLE TABLE STORAGE UNIT" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="show_single_table_rules.xml" />
</test-case>
diff --git a/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java b/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java
index 43692409966..e39a88e6bc4 100644
--- a/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java
+++ b/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java
@@ -338,7 +338,7 @@ public abstract class BaseITCase {
addResources(connection);
}
}
- int resourceCount = countWithLog("SHOW DATABASE RESOURCES FROM sharding_db");
+ int resourceCount = countWithLog("SHOW STORAGE UNITS FROM sharding_db");
assertThat(resourceCount, is(2));
}
@@ -373,7 +373,7 @@ public abstract class BaseITCase {
.replace("${password}", ENV.getActualDataSourcePassword(databaseType))
.replace("${ds2}", getActualJdbcUrlTemplate(databaseName));
executeWithLog(connection, addSourceResource);
- int resourceCount = countWithLog("SHOW DATABASE RESOURCES FROM sharding_db");
+ int resourceCount = countWithLog("SHOW STORAGE UNITS FROM sharding_db");
Thread.sleep(5000L);
assertThat(resourceCount, is(3));
}
diff --git a/test/integration-test/transaction/src/test/resources/env/common/command.xml b/test/integration-test/transaction/src/test/resources/env/common/command.xml
index 4850545f09f..7fa705bd099 100644
--- a/test/integration-test/transaction/src/test/resources/env/common/command.xml
+++ b/test/integration-test/transaction/src/test/resources/env/common/command.xml
@@ -106,7 +106,7 @@
</alter-xa-transaction-rule>
<source-add-resource-template>
- ADD RESOURCE ds_0 (
+ REGISTER STORAGE UNIT ds_0 (
URL="${ds0}",
USER="${user}",
PASSWORD="${password}"
@@ -118,7 +118,7 @@
</source-add-resource-template>
<source-add-new-resource-template>
- ADD RESOURCE ds_2 (
+ REGISTER STORAGE UNIT ds_2 (
URL="${ds2}",
USER="${user}",
PASSWORD="${password}"
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/RDLStatementAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/RDLStatementAssert.java
index 5d35ffa3698..38db1bcbf53 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/RDLStatementAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/RDLStatementAssert.java
@@ -21,11 +21,11 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.AlterDatabaseDiscoveryRuleStatement;
import org.apache.shardingsphere.distsql.parser.statement.rdl.RDLStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorageUnitStatement;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
import org.apache.shardingsphere.encrypt.distsql.parser.statement.AlterEncryptRuleStatement;
import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.AlterReadwriteSplittingRuleStatement;
@@ -82,14 +82,14 @@ public final class RDLStatementAssert {
AlterShardingTableRuleStatementAssert.assertIs(assertContext, (AlterShardingTableRuleStatement) actual, expected);
} else if (actual instanceof CreateRuleStatement) {
CreateRuleStatementAssert.assertIs(assertContext, (CreateRuleStatement) actual, expected);
- } else if (actual instanceof AddResourceStatement) {
- AddResourceStatementAssert.assertIs(assertContext, (AddResourceStatement) actual, (AddResourceStatementTestCase) expected);
- } else if (actual instanceof AlterResourceStatement) {
- AlterResourceStatementAssert.assertIs(assertContext, (AlterResourceStatement) actual, (AlterResourceStatementTestCase) expected);
+ } else if (actual instanceof RegisterStorageUnitStatement) {
+ AddResourceStatementAssert.assertIs(assertContext, (RegisterStorageUnitStatement) actual, (AddResourceStatementTestCase) expected);
+ } else if (actual instanceof AlterStorageUnitStatement) {
+ AlterResourceStatementAssert.assertIs(assertContext, (AlterStorageUnitStatement) actual, (AlterResourceStatementTestCase) expected);
} else if (actual instanceof AlterRuleStatement) {
AlterRuleStatementAssert.assertIs(assertContext, (AlterRuleStatement) actual, expected);
- } else if (actual instanceof DropResourceStatement) {
- DropResourceStatementAssert.assertIs(assertContext, (DropResourceStatement) actual, (DropResourceStatementTestCase) expected);
+ } else if (actual instanceof UnregisterStorageUnitStatement) {
+ DropResourceStatementAssert.assertIs(assertContext, (UnregisterStorageUnitStatement) actual, (DropResourceStatementTestCase) expected);
} else if (actual instanceof DropRuleStatement) {
DropRuleStatementAssert.assertIs(assertContext, (DropRuleStatement) actual, expected);
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterResourceStatementAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterResourceStatementAssert.java
index 8f02f483371..e77b4d73ba6 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterResourceStatementAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/AlterResourceStatementAssert.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statemen
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorageUnitStatement;
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.DataSourceAssert;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.ExpectedDataSource;
@@ -47,7 +47,7 @@ public final class AlterResourceStatementAssert {
* @param actual actual add resource statement
* @param expected expected add resource statement test case
*/
- public static void assertIs(final SQLCaseAssertContext assertContext, final AlterResourceStatement actual, final AlterResourceStatementTestCase expected) {
+ public static void assertIs(final SQLCaseAssertContext assertContext, final AlterStorageUnitStatement actual, final AlterResourceStatementTestCase expected) {
if (null == expected) {
assertNull(assertContext.getText("Actual statement should not exist."), actual);
} else {
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/AddResourceStatementAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/AddResourceStatementAssert.java
index dab0b895cd2..8700ac93e8e 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/AddResourceStatementAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/AddResourceStatementAssert.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statemen
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.DataSourceAssert;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.ExpectedDataSource;
@@ -47,7 +47,7 @@ public final class AddResourceStatementAssert {
* @param actual actual add resource statement
* @param expected expected add resource statement test case
*/
- public static void assertIs(final SQLCaseAssertContext assertContext, final AddResourceStatement actual, final AddResourceStatementTestCase expected) {
+ public static void assertIs(final SQLCaseAssertContext assertContext, final RegisterStorageUnitStatement actual, final AddResourceStatementTestCase expected) {
if (null == expected) {
assertNull(assertContext.getText("Actual statement should not exist."), actual);
} else {
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/CreateRuleStatementAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/CreateRuleStatementAssert.java
index 8e989a6b9aa..37ae7da6a18 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/CreateRuleStatementAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/CreateRuleStatementAssert.java
@@ -22,7 +22,7 @@ import lombok.NoArgsConstructor;
import org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryHeartbeatStatement;
import org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryRuleStatement;
import org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryTypeStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateDefaultSingleTableRuleStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.SetDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
import org.apache.shardingsphere.encrypt.distsql.parser.statement.CreateEncryptRuleStatement;
import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.CreateReadwriteSplittingRuleStatement;
@@ -110,8 +110,8 @@ public final class CreateRuleStatementAssert {
CreateDefaultShardingStrategyStatementAssert.assertIs(assertContext, (CreateDefaultShardingStrategyStatement) actual, (CreateDefaultShardingStrategyStatementTestCase) expected);
} else if (actual instanceof CreateDefaultShadowAlgorithmStatement) {
CreateDefaultShadowAlgorithmStatementAssert.assertIs(assertContext, (CreateDefaultShadowAlgorithmStatement) actual, (CreateDefaultShadowAlgorithmStatementTestCase) expected);
- } else if (actual instanceof CreateDefaultSingleTableRuleStatement) {
- CreateDefaultSingleTableRuleStatementAssert.assertIs(assertContext, (CreateDefaultSingleTableRuleStatement) actual, (CreateDefaultSingleTableRuleStatementTestCase) expected);
+ } else if (actual instanceof SetDefaultSingleTableStorageUnitStatement) {
+ CreateDefaultSingleTableRuleStatementAssert.assertIs(assertContext, (SetDefaultSingleTableStorageUnitStatement) actual, (CreateDefaultSingleTableRuleStatementTestCase) expected);
} else if (actual instanceof CreateShardingKeyGeneratorStatement) {
CreateShardingKeyGeneratorStatementAssert.assertIs(assertContext, (CreateShardingKeyGeneratorStatement) actual, (CreateShardingKeyGeneratorStatementTestCase) expected);
} else if (actual instanceof CreateShardingAuditorStatement) {
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateDefaultSingleTableRuleStatementAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateDefaultSingleTableRuleStatementAssert.java
index 5bdff875c63..1e586216b79 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateDefaultSingleTableRuleStatementAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateDefaultSingleTableRuleStatementAssert.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statemen
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateDefaultSingleTableRuleStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.SetDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateDefaultSingleTableRuleStatementTestCase;
@@ -41,7 +41,7 @@ public final class CreateDefaultSingleTableRuleStatementAssert {
* @param actual actual create default single table rule statement
* @param expected expected create default single table rule statement test case
*/
- public static void assertIs(final SQLCaseAssertContext assertContext, final CreateDefaultSingleTableRuleStatement actual,
+ public static void assertIs(final SQLCaseAssertContext assertContext, final SetDefaultSingleTableStorageUnitStatement actual,
final CreateDefaultSingleTableRuleStatementTestCase expected) {
if (null == expected) {
assertNull(assertContext.getText("Actual statement should not exist."), actual);
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/DropResourceStatementAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/DropResourceStatementAssert.java
index c5b7d88d3ea..c73c992bce3 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/DropResourceStatementAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/drop/DropResourceStatementAssert.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statemen
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropResourceStatement;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropResourceStatementTestCase;
@@ -40,7 +40,7 @@ public final class DropResourceStatementAssert {
* @param actual actual drop resource statement
* @param expected expected drop resource statement test case
*/
- public static void assertIs(final SQLCaseAssertContext assertContext, final DropResourceStatement actual, final DropResourceStatementTestCase expected) {
+ public static void assertIs(final SQLCaseAssertContext assertContext, final UnregisterStorageUnitStatement actual, final DropResourceStatementTestCase expected) {
if (null == expected.getDataSources()) {
assertNull(assertContext.getText("Actual resource should not exist."), actual);
} else {
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
index c36e23e2c11..90a6a0ef106 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
@@ -295,11 +295,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.ral.LabelInstanceStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.PrepareDistSQLStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.RefreshTableMetadataStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.SetDistVariableStatementTestCase;
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.SetDistVariableStatementTestCase;
-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.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.ShowInstanceInfoStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowInstanceListStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowMigrationListStatementTestCase;
@@ -312,7 +313,6 @@ 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.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;
-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.UnlabelInstanceStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.AddMigrationSourceResourceStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.CheckMigrationStatementTestCase;
@@ -321,8 +321,8 @@ 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.migration.DropPipelineProcessConfigurationStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.MigrateTableStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.RollbackMigrationStatementTestCase;
-import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.ShowMigrationCheckStatusStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.ShowMigrationCheckAlgorithmsStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.ShowMigrationCheckStatusStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.ShowMigrationSourceResourcesStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.ShowMigrationStatusStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.StartMigrationStatementTestCase;
@@ -332,7 +332,6 @@ 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.AlterDatabaseDiscoveryHeartbeatStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterDatabaseDiscoveryTypeStatementTestCase;
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.AlterDefaultSingleTableRuleStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterEncryptRuleStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterReadwriteSplittingRuleStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterResourceStatementTestCase;
@@ -368,7 +367,6 @@ 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.DropDataBaseDiscoveryRuleStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropDataBaseDiscoveryTypeStatementTestCase;
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.DropDefaultSingleTableRuleStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropEncryptRuleStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropReadwriteSplittingRuleStatementTestCase;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.drop.DropResourceStatementTestCase;
@@ -1242,10 +1240,10 @@ public final class SQLParserTestCases {
private final List<CreateDefaultSingleTableRuleStatementTestCase> createDefaultSingleTableRuleTestCases = new LinkedList<>();
@XmlElement(name = "alter-default-single-table")
- private final List<AlterDefaultSingleTableRuleStatementTestCase> alterDefaultSingleTableRuleTestCases = new LinkedList<>();
+ private final List<CreateDefaultSingleTableRuleStatementTestCase> alterDefaultSingleTableRuleTestCases = new LinkedList<>();
@XmlElement(name = "drop-default-single-table")
- private final List<DropDefaultSingleTableRuleStatementTestCase> dropDefaultSingleTableRuleTestCases = new LinkedList<>();
+ private final List<CreateDefaultSingleTableRuleStatementTestCase> dropDefaultSingleTableRuleTestCases = new LinkedList<>();
@XmlElement(name = "show-open-tables")
private final List<ShowOpenTablesStatementTestCase> showOpenTablesTestCases = new LinkedList<>();
diff --git a/test/parser/src/main/resources/case/rql/show.xml b/test/parser/src/main/resources/case/rql/show.xml
index 45f490ef1c3..c475745a9dc 100644
--- a/test/parser/src/main/resources/case/rql/show.xml
+++ b/test/parser/src/main/resources/case/rql/show.xml
@@ -88,7 +88,7 @@
</show-single-table>
<show-single-table-rules sql-case-id="show-single-table-rules">
- <database name="single_table_db" start-index="29" stop-index="43" />
+ <database name="single_table_db" start-index="44" stop-index="58" />
</show-single-table-rules>
<show-sharding-table-nodes sql-case-id="show-sharding-table-nodes" table="t_order">
diff --git a/test/parser/src/main/resources/sql/supported/rdl/alter.xml b/test/parser/src/main/resources/sql/supported/rdl/alter.xml
index 0c86069fe14..70ba9646995 100644
--- a/test/parser/src/main/resources/sql/supported/rdl/alter.xml
+++ b/test/parser/src/main/resources/sql/supported/rdl/alter.xml
@@ -17,15 +17,15 @@
-->
<sql-cases>
- <distsql-case id="alter-resource-simple-single-without-password" value="ALTER RESOURCE ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT');" />
- <distsql-case id="alter-resource-simple-single-with-password" value="ALTER RESOURCE ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456');" />
- <distsql-case id="alter-resource-simple-multiple" value="ALTER RESOURCE ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456'), ds_1(HOST='127.0.0.1',PORT=3306,DB='test1',USER='ROOT',PASSWORD='123456');" />
- <distsql-case id="alter-resource-url-single-without-password" value="ALTER RESOURCE ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT');" />
- <distsql-case id="alter-resource-url-single-with-password" value="ALTER RESOURCE ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456');" />
- <distsql-case id="alter-resource-url-multiple" value="ALTER RESOURCE ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456'), ds_1(URL='jdbc:mysql://127.0.0.1:3306/test1',USER='ROOT',PASSWORD='123456');" />
- <distsql-case id="alter-resource-single-with-properties" value="ALTER RESOURCE ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'));" />
- <distsql-case id="alter-resource-url-single-with-empty-properties" value="ALTER RESOURCE ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PROPERTIES())" />
- <distsql-case id="alter-resource-url-single-with-properties" value="ALTER RESOURCE ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'))" />
+ <distsql-case id="alter-resource-simple-single-without-password" value="ALTER STORAGE UNIT ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT');" />
+ <distsql-case id="alter-resource-simple-single-with-password" value="ALTER STORAGE UNIT ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456');" />
+ <distsql-case id="alter-resource-simple-multiple" value="ALTER STORAGE UNIT ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456'), ds_1(HOST='127.0.0.1',PORT=3306,DB='test1',USER='ROOT',PASSWORD='123456');" />
+ <distsql-case id="alter-resource-url-single-without-password" value="ALTER STORAGE UNIT ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT');" />
+ <distsql-case id="alter-resource-url-single-with-password" value="ALTER STORAGE UNIT ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456');" />
+ <distsql-case id="alter-resource-url-multiple" value="ALTER STORAGE UNIT ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456'), ds_1(URL='jdbc:mysql://127.0.0.1:3306/test1',USER='ROOT',PASSWORD='123456');" />
+ <distsql-case id="alter-resource-single-with-properties" value="ALTER STORAGE UNIT ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'));" />
+ <distsql-case id="alter-resource-url-single-with-empty-properties" value="ALTER STORAGE UNIT ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PROPERTIES())" />
+ <distsql-case id="alter-resource-url-single-with-properties" value="ALTER STORAGE UNIT ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'))" />
<distsql-case id="alter-sharding-auto-table-rule" value="ALTER SHARDING TABLE RULE t_order (RESOURCES(ms_group_0,ms_group_1), SHARDING_COLUMN=order_id, TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')),KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
<distsql-case id="alter-sharding-auto-table-rule-with-inline-expression" value="ALTER SHARDING TABLE RULE t_order (RESOURCES('ms_group_${0..1}'), SHARDING_COLUMN=order_id, TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')),KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
<distsql-case id="alter-sharding-binding-table-rules" value="ALTER SHARDING BINDING TABLE RULES (t_order,t_order_item), (t_1,t_2)" />
@@ -43,7 +43,7 @@
<distsql-case id="alter-sharding-table-rule" value="ALTER SHARDING TABLE RULE t_order (DATANODES('ms_group_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column = order_id,sharding_algorithm = database_inline),TABLE_STRATEGY(TYPE='standard',sharding_column = user_id,sharding_algorithm = table_inline),KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
<distsql-case id="alter-sharding-table-rule-complex" value="ALTER SHARDING TABLE RULE t_order (DATANODES('ms_group_${0..1}'),DATABASE_STRATEGY(TYPE='complex',sharding_columns = order_id,user_id, sharding_algorithm = database_inline),TABLE_STRATEGY(TYPE='standard',sharding_column = user_id,sharding_algorithm = table_inline),KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
<distsql-case id="alter-sharding-algorithm" value="ALTER SHARDING ALGORITHM algorithm_name(TYPE(NAME='inline',PROPERTIES('algorithm-expression' = 't_order_${order_id % 2}')))" />
- <distsql-case id="alter-default-single-table" value="ALTER DEFAULT SINGLE TABLE RULE RESOURCE = ds_0" />
+ <distsql-case id="alter-default-single-table" value="SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_0" />
<distsql-case id="alter-sharding-key-generator" value="ALTER SHARDING KEY GENERATOR uuid_key_generator(TYPE(NAME='uuid'))" />
<distsql-case id="alter-sharding-auditor" value="ALTER SHARDING AUDITOR sharding_key_required_auditor(TYPE(NAME='DML_SHARDING_CONDITIONS'))" />
<distsql-case id="alter-default-sharding-strategy" value="ALTER DEFAULT SHARDING TABLE STRATEGY(TYPE='standard', SHARDING_COLUMN=order_id, SHARDING_ALGORITHM=algorithms_name)" />
diff --git a/test/parser/src/main/resources/sql/supported/rdl/create.xml b/test/parser/src/main/resources/sql/supported/rdl/create.xml
index 5026d0015a2..f345e9d7c90 100644
--- a/test/parser/src/main/resources/sql/supported/rdl/create.xml
+++ b/test/parser/src/main/resources/sql/supported/rdl/create.xml
@@ -17,15 +17,15 @@
-->
<sql-cases>
- <distsql-case id="add-resource-simple-single-without-password" value="ADD RESOURCE ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT');" />
- <distsql-case id="add-resource-simple-single-with-password" value="ADD RESOURCE ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456');" />
- <distsql-case id="add-resource-simple-multiple" value="ADD RESOURCE ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456'), ds_1(HOST='127.0.0.1',PORT=3306,DB='test1',USER='ROOT',PASSWORD='123456');" />
- <distsql-case id="add-resource-url-single-without-password" value="ADD RESOURCE ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT');" />
- <distsql-case id="add-resource-url-single-with-password" value="ADD RESOURCE ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456');" />
- <distsql-case id="add-resource-url-multiple" value="ADD RESOURCE ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456'), ds_1(URL='jdbc:mysql://127.0.0.1:3306/test1',USER='ROOT',PASSWORD='123456');" />
- <distsql-case id="add-resource-single-with-properties" value="ADD RESOURCE ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'));" />
- <distsql-case id="add-resource-url-single-with-empty-properties" value="ADD RESOURCE ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PROPERTIES())" />
- <distsql-case id="add-resource-url-single-with-properties" value="ADD RESOURCE ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'))" />
+ <distsql-case id="add-resource-simple-single-without-password" value="REGISTER STORAGE UNIT ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT');" />
+ <distsql-case id="add-resource-simple-single-with-password" value="REGISTER STORAGE UNIT ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456');" />
+ <distsql-case id="add-resource-simple-multiple" value="REGISTER STORAGE UNIT ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456'), ds_1(HOST='127.0.0.1',PORT=3306,DB='test1',USER='ROOT',PASSWORD='123456');" />
+ <distsql-case id="add-resource-url-single-without-password" value="REGISTER STORAGE UNIT ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT');" />
+ <distsql-case id="add-resource-url-single-with-password" value="REGISTER STORAGE UNIT ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456');" />
+ <distsql-case id="add-resource-url-multiple" value="REGISTER STORAGE UNIT ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456'), ds_1(URL='jdbc:mysql://127.0.0.1:3306/test1',USER='ROOT',PASSWORD='123456');" />
+ <distsql-case id="add-resource-single-with-properties" value="REGISTER STORAGE UNIT ds_0(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'));" />
+ <distsql-case id="add-resource-url-single-with-empty-properties" value="REGISTER STORAGE UNIT ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PROPERTIES())" />
+ <distsql-case id="add-resource-url-single-with-properties" value="REGISTER STORAGE UNIT ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'))" />
<distsql-case id="create-sharding-auto-table-rule" value="CREATE SHARDING TABLE RULE t_order (RESOURCES(ms_group_0,ms_group_1), SHARDING_COLUMN=order_id,TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
<distsql-case id="create-sharding-auto-table-rule-with-inline-expression" value="CREATE SHARDING TABLE RULE t_order (RESOURCES('ms_group_${0..1}'), SHARDING_COLUMN=order_id,TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
<distsql-case id="create-sharding-binding-table-rule" value="CREATE SHARDING BINDING TABLE RULES (t_order,t_order_item), (t_1,t_2)" />
@@ -49,9 +49,9 @@
<distsql-case id="create-sharding-table-rule-complex" value="CREATE SHARDING TABLE RULE t_order (DATANODES('ms_group_${0..1}'),DATABASE_STRATEGY(TYPE='complex',sharding_columns = order_id,user_id,sharding_algorithm = database_inline),TABLE_STRATEGY(TYPE='standard',sharding_column = user_id,sharding_algorithm = table_inline),KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake'))),t_order_item (DATANODES('ms_group_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column = o [...]
<distsql-case id="create-sharding-table-rule-with-auto-create-algorithm" value="CREATE SHARDING TABLE RULE t_order (DATANODES('ms_group_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column = order_id,sharding_algorithm (TYPE(NAME='inline',PROPERTIES('algorithm-expression'='ms_group_${order_id% 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column = user_id,sharding_algorithm = table_inline),KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
<distsql-case id="create-shadow-algorithm" value="CREATE SHADOW ALGORITHM (simple_hint_algorithm, TYPE(NAME='HINT', PROPERTIES('shadow'='true', 'foo'='bar')))" />
- <distsql-case id="create-default-single-table" value="CREATE DEFAULT SINGLE TABLE RULE RESOURCE = ds_0" />
+ <distsql-case id="create-default-single-table" value="SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_0" />
- <distsql-case id="add-resource-with-quota" value="ADD RESOURCE `ds_0`(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT');" />
+ <distsql-case id="add-resource-with-quota" value="REGISTER STORAGE UNIT `ds_0`(HOST='127.0.0.1',PORT=3306,DB='test0',USER='ROOT');" />
<distsql-case id="create-sharding-auto-table-rule-with-quota" value="CREATE SHARDING TABLE RULE `t_order` (RESOURCES(ms_group_0,ms_group_1), SHARDING_COLUMN=order_id,TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" />
<distsql-case id="create-sharding-binding-table-rule-with-quota" value="CREATE SHARDING BINDING TABLE RULES (`t_order`,`t_order_item`), (t_1,t_2)" />
<distsql-case id="create-sharding-broadcast-table-rule-with-quota" value="CREATE SHARDING BROADCAST TABLE RULES(`t_1`,`t_2`)" />
diff --git a/test/parser/src/main/resources/sql/supported/rdl/drop.xml b/test/parser/src/main/resources/sql/supported/rdl/drop.xml
index d47e084c09e..f7467f123f2 100644
--- a/test/parser/src/main/resources/sql/supported/rdl/drop.xml
+++ b/test/parser/src/main/resources/sql/supported/rdl/drop.xml
@@ -17,9 +17,9 @@
-->
<sql-cases>
- <distsql-case id="drop-resource" value="DROP RESOURCE ds_0,ds_1" />
- <distsql-case id="drop-resource-if-exists" value="DROP RESOURCE IF EXISTS ds_0,ds_1" />
- <distsql-case id="drop-resource-ignore-single-tables" value="DROP RESOURCE ds_0,ds_1 ignore single tables;" />
+ <distsql-case id="drop-resource" value="UNREGISTER STORAGE UNIT ds_0,ds_1" />
+ <distsql-case id="drop-resource-if-exists" value="UNREGISTER STORAGE UNIT IF EXISTS ds_0,ds_1" />
+ <distsql-case id="drop-resource-ignore-single-tables" value="UNREGISTER STORAGE UNIT ds_0,ds_1 ignore single tables;" />
<distsql-case id="drop-sharding-table-rule" value="DROP SHARDING TABLE RULE t_order,t_order_item" />
<distsql-case id="drop-sharding-table-rule-if-exists" value="DROP SHARDING TABLE RULE IF EXISTS t_order,t_order_item" />
<distsql-case id="drop-sharding-binding-table-rules" value="DROP SHARDING BINDING TABLE RULES" />
@@ -43,8 +43,7 @@
<distsql-case id="drop-shadow-algorithm" value="DROP SHADOW algorithm shadow_algorithm_1,shadow_algorithm_2" />
<distsql-case id="drop-default-shadow-algorithm-if-exists" value="DROP DEFAULT SHADOW ALGORITHM IF EXISTS" />
<distsql-case id="drop-shadow-algorithm-if-exists" value="DROP SHADOW ALGORITHM IF EXISTS shadow_algorithm_1,shadow_algorithm_2" />
- <distsql-case id="drop-default-single-table" value="DROP DEFAULT SINGLE TABLE RULE" />
- <distsql-case id="drop-default-single-table-if-exists" value="DROP DEFAULT SINGLE TABLE RULE IF EXISTS" />
+ <distsql-case id="drop-default-single-table" value="SET DEFAULT SINGLE TABLE STORAGE UNIT = RANDOM" />
<distsql-case id="drop-sharding-key-generator" value="DROP SHARDING KEY GENERATOR uuid_key_generator" />
<distsql-case id="drop-sharding-key-generator-if-exists" value="DROP SHARDING KEY GENERATOR IF EXISTS uuid_key_generator" />
<distsql-case id="drop-sharding-auditor" value="DROP SHARDING AUDITOR sharding_key_required_auditor" />
diff --git a/test/parser/src/main/resources/sql/supported/rql/show.xml b/test/parser/src/main/resources/sql/supported/rql/show.xml
index c13b0f26838..ece43ff08bb 100644
--- a/test/parser/src/main/resources/sql/supported/rql/show.xml
+++ b/test/parser/src/main/resources/sql/supported/rql/show.xml
@@ -34,7 +34,7 @@
<distsql-case id="show-shadow-table-rules" value="SHOW SHADOW TABLE RULES FROM shadow_db" />
<distsql-case id="show-shadow-algorithms" value="SHOW SHADOW ALGORITHMS FROM shadow_db" />
<distsql-case id="show-single-table" value="SHOW SINGLE TABLE t_order FROM single_table_db" />
- <distsql-case id="show-single-table-rules" value="SHOW SINGLE TABLE RULES FROM single_table_db" />
+ <distsql-case id="show-single-table-rules" value="SHOW DEFAULT SINGLE TABLE STORAGE UNIT FROM single_table_db" />
<distsql-case id="show-sharding-table-nodes" value="SHOW SHARDING TABLE NODES t_order FROM sharding_db" />
<distsql-case id="show-sharding-key-generators" value="SHOW SHARDING KEY GENERATORS FROM sharding_db" />
<distsql-case id="show-default-sharding-strategy" value="SHOW DEFAULT SHARDING STRATEGY FROM sharding_db" />