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());

Reply via email to