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