This is an automated email from the ASF dual-hosted git repository.
panjuan 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 82fb0b8 Refactor exception for alter & drop db discovery rule (#10431)
82fb0b8 is described below
commit 82fb0b84bbe1578823318836b344c0b6702d9aa1
Author: Haoran Meng <[email protected]>
AuthorDate: Sat May 22 13:51:11 2021 +0800
Refactor exception for alter & drop db discovery rule (#10431)
Co-authored-by: menghaoranss <[email protected]>
---
.../db/protocol/error/CommonErrorCode.java | 4 +--
...iscoveryRuleDataSourcesNotExistedException.java | 35 ------------------
...DatabaseDiscoveryRulesNotExistedException.java} | 8 +++--
.../AlterDatabaseDiscoveryRuleBackendHandler.java | 42 +++++++++++++---------
.../DropDatabaseDiscoveryRuleBackendHandler.java | 37 +++++++++++--------
...terDatabaseDiscoveryRuleBackendHandlerTest.java | 9 +++--
...ropDatabaseDiscoveryRuleBackendHandlerTest.java | 9 +++--
.../frontend/mysql/err/MySQLErrPacketFactory.java | 11 +++---
8 files changed, 68 insertions(+), 87 deletions(-)
diff --git
a/shardingsphere-db-protocol/shardingsphere-db-protocol-core/src/main/java/org/apache/shardingsphere/db/protocol/error/CommonErrorCode.java
b/shardingsphere-db-protocol/shardingsphere-db-protocol-core/src/main/java/org/apache/shardingsphere/db/protocol/error/CommonErrorCode.java
index 134768e..f2a759d 100644
---
a/shardingsphere-db-protocol/shardingsphere-db-protocol-core/src/main/java/org/apache/shardingsphere/db/protocol/error/CommonErrorCode.java
+++
b/shardingsphere-db-protocol/shardingsphere-db-protocol-core/src/main/java/org/apache/shardingsphere/db/protocol/error/CommonErrorCode.java
@@ -65,9 +65,7 @@ public enum CommonErrorCode implements SQLErrorCode {
INVALID_DATABASE_DISCOVERY_TYPES(1119, "C1119", "Invalid database
discovery types %s."),
- DATABASE_DISCOVERY_RULE_NOT_EXIST(1120, "C1120", "Database discovery rule
not exist in schema %s."),
-
- DATABASE_DISCOVERY_RULE_DATASOURCE_NOT_EXIST(1121, "C1121", "Database
discovery rules %s do not exist."),
+ DATABASE_DISCOVERY_RULES_NOT_EXIST(1120, "C1120", "Database discovery
rules %s do not exist in schema %s."),
ENCRYPT_RULE_EXIST(1122, "C1122", "Encrypt rule already exists in schema
%s."),
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/DatabaseDiscoveryRuleDataSourcesNotExistedException.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/DatabaseDiscoveryRuleDataSourcesNotExistedException.java
deleted file mode 100644
index 4585552..0000000
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/DatabaseDiscoveryRuleDataSourcesNotExistedException.java
+++ /dev/null
@@ -1,35 +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.exception;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-
-import java.util.Collection;
-
-/**
- * Database discovery rule data sources not existed exception.
- */
-@RequiredArgsConstructor
-@Getter
-public final class DatabaseDiscoveryRuleDataSourcesNotExistedException extends
BackendException {
-
- private static final long serialVersionUID = -5200865025455932005L;
-
- private final Collection<String> ruleNames;
-}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/DatabaseDiscoveryRuleNotExistedException.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/DatabaseDiscoveryRulesNotExistedException.java
similarity index 83%
rename from
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/DatabaseDiscoveryRuleNotExistedException.java
rename to
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/DatabaseDiscoveryRulesNotExistedException.java
index c726a4d..329c34b 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/DatabaseDiscoveryRuleNotExistedException.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/DatabaseDiscoveryRulesNotExistedException.java
@@ -20,14 +20,18 @@ package org.apache.shardingsphere.proxy.backend.exception;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import java.util.Collection;
+
/**
- * Database discovery rule not existed exception.
+ * Database discovery rules not existed exception.
*/
@RequiredArgsConstructor
@Getter
-public final class DatabaseDiscoveryRuleNotExistedException extends
BackendException {
+public final class DatabaseDiscoveryRulesNotExistedException extends
BackendException {
private static final long serialVersionUID = 1293361372683913161L;
private final String schemaName;
+
+ private final Collection<String> ruleNames;
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandler.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandler.java
index 40fde43..a90478f 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandler.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandler.java
@@ -31,8 +31,7 @@ import
org.apache.shardingsphere.infra.spi.typed.TypedSPIRegistry;
import
org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapperEngine;
import
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRuleDataSourcesNotExistedException;
-import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRuleNotExistedException;
+import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRulesNotExistedException;
import
org.apache.shardingsphere.proxy.backend.exception.InvalidDatabaseDiscoveryTypesException;
import
org.apache.shardingsphere.proxy.backend.exception.ResourceNotExistedException;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
@@ -59,30 +58,41 @@ public final class AlterDatabaseDiscoveryRuleBackendHandler
extends SchemaRequir
@Override
public ResponseHeader execute(final String schemaName, final
AlterDatabaseDiscoveryRuleStatement statement) {
+ Collection<String> alteredRuleNames = getAlteredRuleNames(statement);
+ DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfiguration
= getDatabaseDiscoveryRuleConfiguration(schemaName, alteredRuleNames);
+ check(schemaName, statement, databaseDiscoveryRuleConfiguration,
alteredRuleNames);
+ YamlDatabaseDiscoveryRuleConfiguration
yamlDatabaseDiscoveryRuleConfiguration =
alter(databaseDiscoveryRuleConfiguration, statement);
+ Collection<RuleConfiguration> rules = new
YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(Collections.singleton(yamlDatabaseDiscoveryRuleConfiguration));
+ post(schemaName, rules);
+ return new UpdateResponseHeader(statement);
+ }
+
+ private Collection<String> getAlteredRuleNames(final
AlterDatabaseDiscoveryRuleStatement statement) {
+ return
statement.getDatabaseDiscoveryRules().stream().map(DatabaseDiscoveryRuleSegment::getName).collect(Collectors.toList());
+ }
+
+ private DatabaseDiscoveryRuleConfiguration
getDatabaseDiscoveryRuleConfiguration(final String schemaName, final
Collection<String> alteredRuleNames) {
Optional<DatabaseDiscoveryRuleConfiguration> ruleConfig =
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().stream()
.filter(each -> each instanceof
DatabaseDiscoveryRuleConfiguration).map(each ->
(DatabaseDiscoveryRuleConfiguration) each).findFirst();
if (!ruleConfig.isPresent()) {
- throw new DatabaseDiscoveryRuleNotExistedException(schemaName);
+ throw new DatabaseDiscoveryRulesNotExistedException(schemaName,
alteredRuleNames);
}
- check(schemaName, statement, ruleConfig.get());
- YamlDatabaseDiscoveryRuleConfiguration config =
alter(ruleConfig.get(), statement);
- Collection<RuleConfiguration> rules = new
YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(Collections.singleton(config));
- post(schemaName, rules);
- return new UpdateResponseHeader(statement);
+ return ruleConfig.get();
}
- private void check(final String schemaName, final
AlterDatabaseDiscoveryRuleStatement sqlStatement, final
DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfiguration) {
- checkAlteredDataSources(databaseDiscoveryRuleConfiguration,
sqlStatement);
+ private void check(final String schemaName, final
AlterDatabaseDiscoveryRuleStatement sqlStatement,
+ final DatabaseDiscoveryRuleConfiguration
databaseDiscoveryRuleConfiguration, final Collection<String> alteredRuleNames) {
+ checkAlteredRules(schemaName, databaseDiscoveryRuleConfiguration,
alteredRuleNames);
checkResources(schemaName, sqlStatement);
checkDiscoveryType(sqlStatement);
}
- private void checkAlteredDataSources(final
DatabaseDiscoveryRuleConfiguration ruleConfig, final
AlterDatabaseDiscoveryRuleStatement statement) {
- Set<String> existDataSourceNames =
ruleConfig.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getName).collect(Collectors.toSet());
- Collection<String> notExistDataSourceNames =
statement.getDatabaseDiscoveryRules().stream().map(DatabaseDiscoveryRuleSegment::getName)
- .filter(each ->
!existDataSourceNames.contains(each)).collect(Collectors.toList());
- if (!notExistDataSourceNames.isEmpty()) {
- throw new
DatabaseDiscoveryRuleDataSourcesNotExistedException(notExistDataSourceNames);
+ private void checkAlteredRules(final String schemaName, final
DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfiguration, final
Collection<String> alteredRuleNames) {
+ Set<String> existRuleNames =
databaseDiscoveryRuleConfiguration.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getName).collect(Collectors.toSet());
+ Collection<String> notExistRuleNames = alteredRuleNames.stream()
+ .filter(each ->
!existRuleNames.contains(each)).collect(Collectors.toList());
+ if (!notExistRuleNames.isEmpty()) {
+ throw new DatabaseDiscoveryRulesNotExistedException(schemaName,
notExistRuleNames);
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandler.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandler.java
index 6ae6972..31d4e9f 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandler.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandler.java
@@ -27,8 +27,7 @@ import
org.apache.shardingsphere.infra.eventbus.ShardingSphereEventBus;
import
org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapperEngine;
import
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRuleDataSourcesNotExistedException;
-import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRuleNotExistedException;
+import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRulesNotExistedException;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
import
org.apache.shardingsphere.proxy.backend.text.SchemaRequiredBackendHandler;
@@ -49,26 +48,36 @@ public final class DropDatabaseDiscoveryRuleBackendHandler
extends SchemaRequire
@Override
public ResponseHeader execute(final String schemaName, final
DropDatabaseDiscoveryRuleStatement sqlStatement) {
+ DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfiguration
= getDatabaseDiscoveryRuleConfiguration(schemaName,
sqlStatement.getRuleNames());
+ check(schemaName, databaseDiscoveryRuleConfiguration, sqlStatement);
+ YamlDatabaseDiscoveryRuleConfiguration
yamlDatabaseDiscoveryRuleConfiguration =
getYamlDatabaseDiscoveryRuleConfiguration(databaseDiscoveryRuleConfiguration);
+ drop(yamlDatabaseDiscoveryRuleConfiguration, sqlStatement);
+ post(schemaName, new YamlRuleConfigurationSwapperEngine()
+
.swapToRuleConfigurations(yamlDatabaseDiscoveryRuleConfiguration.getDataSources()
+ .isEmpty() ? Collections.emptyList() :
Collections.singletonList(yamlDatabaseDiscoveryRuleConfiguration)));
+ return new UpdateResponseHeader(sqlStatement);
+ }
+
+ private DatabaseDiscoveryRuleConfiguration
getDatabaseDiscoveryRuleConfiguration(final String schemaName, final
Collection<String> droppedRuleNames) {
Optional<DatabaseDiscoveryRuleConfiguration> ruleConfig =
ProxyContext.getInstance().getMetaData(schemaName).getRuleMetaData().getConfigurations().stream()
.filter(each -> each instanceof
DatabaseDiscoveryRuleConfiguration).map(each ->
(DatabaseDiscoveryRuleConfiguration) each).findFirst();
if (!ruleConfig.isPresent()) {
- throw new DatabaseDiscoveryRuleNotExistedException(schemaName);
+ throw new DatabaseDiscoveryRulesNotExistedException(schemaName,
droppedRuleNames);
}
- check(ruleConfig.get(), sqlStatement);
- YamlDatabaseDiscoveryRuleConfiguration yamlConfig = new
YamlRuleConfigurationSwapperEngine()
-
.swapToYamlRuleConfigurations(Collections.singletonList(ruleConfig.get())).stream()
+ return ruleConfig.get();
+ }
+
+ private YamlDatabaseDiscoveryRuleConfiguration
getYamlDatabaseDiscoveryRuleConfiguration(final
DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfiguration) {
+ return new YamlRuleConfigurationSwapperEngine()
+
.swapToYamlRuleConfigurations(Collections.singletonList(databaseDiscoveryRuleConfiguration)).stream()
.map(each -> (YamlDatabaseDiscoveryRuleConfiguration)
each).findFirst().get();
- drop(yamlConfig, sqlStatement);
- post(schemaName, new YamlRuleConfigurationSwapperEngine()
-
.swapToRuleConfigurations(yamlConfig.getDataSources().isEmpty() ?
Collections.emptyList() : Collections.singletonList(yamlConfig)));
- return new UpdateResponseHeader(sqlStatement);
}
- private void check(final DatabaseDiscoveryRuleConfiguration ruleConfig,
final DropDatabaseDiscoveryRuleStatement sqlStatement) {
- Collection<String> databaseDiscoveryDataSourceNames =
ruleConfig.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getName).collect(Collectors.toList());
- Collection<String> notExistedRuleNames =
sqlStatement.getRuleNames().stream().filter(each ->
!databaseDiscoveryDataSourceNames.contains(each)).collect(Collectors.toList());
+ private void check(final String schemaName, final
DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfiguration, final
DropDatabaseDiscoveryRuleStatement sqlStatement) {
+ Collection<String> existRuleNames =
databaseDiscoveryRuleConfiguration.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getName).collect(Collectors.toList());
+ Collection<String> notExistedRuleNames =
sqlStatement.getRuleNames().stream().filter(each ->
!existRuleNames.contains(each)).collect(Collectors.toList());
if (!notExistedRuleNames.isEmpty()) {
- throw new
DatabaseDiscoveryRuleDataSourcesNotExistedException(notExistedRuleNames);
+ throw new DatabaseDiscoveryRulesNotExistedException(schemaName,
notExistedRuleNames);
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandlerTest.java
index fa6abb3..05b81a4 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterDatabaseDiscoveryRuleBackendHandlerTest.java
@@ -30,8 +30,7 @@ import
org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
import
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRuleDataSourcesNotExistedException;
-import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRuleNotExistedException;
+import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRulesNotExistedException;
import
org.apache.shardingsphere.proxy.backend.exception.InvalidDatabaseDiscoveryTypesException;
import
org.apache.shardingsphere.proxy.backend.exception.ResourceNotExistedException;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
@@ -113,14 +112,14 @@ public final class
AlterDatabaseDiscoveryRuleBackendHandlerTest {
assertTrue(responseHeader instanceof UpdateResponseHeader);
}
- @Test(expected = DatabaseDiscoveryRuleNotExistedException.class)
+ @Test(expected = DatabaseDiscoveryRulesNotExistedException.class)
public void assertExecuteWithNotExistDatabaseDiscoveryRule() {
when(ruleMetaData.getConfigurations()).thenReturn(Collections.emptyList());
handler.execute("test", sqlStatement);
}
- @Test(expected = DatabaseDiscoveryRuleDataSourcesNotExistedException.class)
- public void assertExecuteWithNoAlteredDatabaseDiscoveryRuleDataSources() {
+ @Test(expected = DatabaseDiscoveryRulesNotExistedException.class)
+ public void assertExecuteWithNoAlteredDatabaseDiscoveryRule() {
DatabaseDiscoveryRuleSegment databaseDiscoveryRuleSegment = new
DatabaseDiscoveryRuleSegment();
databaseDiscoveryRuleSegment.setName("ha_group");
databaseDiscoveryRuleSegment.setDataSources(Arrays.asList("ds_0",
"ds_1"));
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandlerTest.java
index db3e195..ec2c0f8 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/DropDatabaseDiscoveryRuleBackendHandlerTest.java
@@ -27,8 +27,7 @@ import
org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
import
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRuleDataSourcesNotExistedException;
-import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRuleNotExistedException;
+import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRulesNotExistedException;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
import org.apache.shardingsphere.transaction.context.TransactionContexts;
@@ -99,14 +98,14 @@ public final class
DropDatabaseDiscoveryRuleBackendHandlerTest {
assertTrue(responseHeader instanceof UpdateResponseHeader);
}
- @Test(expected = DatabaseDiscoveryRuleNotExistedException.class)
+ @Test(expected = DatabaseDiscoveryRulesNotExistedException.class)
public void assertExecuteWithNotExistDatabaseDiscoveryRule() {
when(ruleMetaData.getConfigurations()).thenReturn(Collections.emptyList());
handler.execute("test", sqlStatement);
}
- @Test(expected = DatabaseDiscoveryRuleDataSourcesNotExistedException.class)
- public void assertExecuteWithNoDroppedDatabaseDiscoveryRuleDataSources() {
+ @Test(expected = DatabaseDiscoveryRulesNotExistedException.class)
+ public void assertExecuteWithNoDroppedDatabaseDiscoveryRules() {
when(sqlStatement.getRuleNames()).thenReturn(Collections.singletonList("ha_group"));
when(ruleMetaData.getConfigurations()).thenReturn(Collections.singletonList(new
DatabaseDiscoveryRuleConfiguration(Collections.emptyList(),
Maps.newHashMap())));
handler.execute("test", sqlStatement);
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrPacketFactory.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrPacketFactory.java
index 594ac41..36d584b 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrPacketFactory.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrPacketFactory.java
@@ -27,9 +27,8 @@ import
org.apache.shardingsphere.proxy.backend.exception.AddReadwriteSplittingRu
import org.apache.shardingsphere.proxy.backend.exception.CircuitBreakException;
import
org.apache.shardingsphere.proxy.backend.exception.DBCreateExistsException;
import org.apache.shardingsphere.proxy.backend.exception.DBDropExistsException;
-import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRuleDataSourcesNotExistedException;
import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRuleExistsException;
-import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRuleNotExistedException;
+import
org.apache.shardingsphere.proxy.backend.exception.DatabaseDiscoveryRulesNotExistedException;
import
org.apache.shardingsphere.proxy.backend.exception.DuplicateResourceException;
import
org.apache.shardingsphere.proxy.backend.exception.DuplicateTablesException;
import
org.apache.shardingsphere.proxy.backend.exception.EncryptRuleExistsException;
@@ -192,11 +191,9 @@ public final class MySQLErrPacketFactory {
if (cause instanceof InvalidDatabaseDiscoveryTypesException) {
return new MySQLErrPacket(1,
CommonErrorCode.INVALID_DATABASE_DISCOVERY_TYPES,
((InvalidDatabaseDiscoveryTypesException) cause).getDatabaseDiscoveryTypes());
}
- if (cause instanceof DatabaseDiscoveryRuleNotExistedException) {
- return new MySQLErrPacket(1,
CommonErrorCode.DATABASE_DISCOVERY_RULE_NOT_EXIST,
((DatabaseDiscoveryRuleNotExistedException) cause).getSchemaName());
- }
- if (cause instanceof
DatabaseDiscoveryRuleDataSourcesNotExistedException) {
- return new MySQLErrPacket(1,
CommonErrorCode.DATABASE_DISCOVERY_RULE_DATASOURCE_NOT_EXIST,
((DatabaseDiscoveryRuleDataSourcesNotExistedException) cause).getRuleNames());
+ if (cause instanceof DatabaseDiscoveryRulesNotExistedException) {
+ return new MySQLErrPacket(1,
CommonErrorCode.DATABASE_DISCOVERY_RULES_NOT_EXIST,
((DatabaseDiscoveryRulesNotExistedException) cause).getRuleNames(),
+ ((DatabaseDiscoveryRulesNotExistedException)
cause).getSchemaName());
}
if (cause instanceof EncryptRuleExistsException) {
return new MySQLErrPacket(1, CommonErrorCode.ENCRYPT_RULE_EXIST,
((EncryptRuleExistsException) cause).getSchemaName());