This is an automated email from the ASF dual-hosted git repository.

zhaojinchao 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 b77cc3bdc32 Refactor ResourceDefinitionException (#30699)
b77cc3bdc32 is described below

commit b77cc3bdc324305162f088bd7bfaeeaa993009b3
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Mar 30 18:47:41 2024 +0800

    Refactor ResourceDefinitionException (#30699)
    
    * Refactor ResourceDefinitionException
    
    * Refactor ResourceDefinitionException
    
    * Refactor ResourceDefinitionException
    
    * Refactor InUsedStorageUnitException
    
    * Refactor InUsedStorageUnitException
---
 .../user-manual/error-code/sql-error-code.cn.md     | 21 ++++++++-------------
 .../user-manual/error-code/sql-error-code.en.md     | 21 ++++++++-------------
 .../InvalidStorageUnitStatusException.java          |  2 +-
 .../MissingRequiredReadStorageUnitException.java    |  2 +-
 .../DuplicateStorageUnitExceptionDefinition.java    |  2 +-
 .../storageunit/EmptyStorageUnitException.java      |  2 +-
 ...ception.java => InUsedStorageUnitException.java} |  9 +++++----
 .../storageunit/InvalidStorageUnitsException.java   |  2 +-
 .../MissingRequiredStorageUnitsException.java       |  2 +-
 .../StorageUnitNotExistedException.java             | 10 +++++-----
 .../rdl/resource/UnregisterStorageUnitExecutor.java |  6 +++---
 .../resource/UnregisterStorageUnitExecutorTest.java |  8 ++++----
 .../category/ResourceDefinitionException.java       |  7 ++-----
 .../proxy/backend/connector/DatabaseConnector.java  |  2 +-
 .../data/impl/UnicastDatabaseBackendHandler.java    |  2 +-
 .../admin/executor/UnicastResourceShowExecutor.java |  2 +-
 16 files changed, 44 insertions(+), 56 deletions(-)

diff --git a/docs/document/content/user-manual/error-code/sql-error-code.cn.md 
b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
index e7e604cf31b..03ad9a6c634 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.cn.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
@@ -14,7 +14,6 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
 
 | SQL State | Vendor Code | 错误信息                                               
                            |
 
|-----------|-------------|--------------------------------------------------------------------------------|
-| 42000     | 10000       | There is no storage unit in database \`%s\`.       
                            |
 | 08000     | 10001       | The URL \`%s\` is not recognized, please refer to 
the pattern \`%s\`.          |
 | 42000     | 10002       | Can not support 3-tier structure for actual data 
node \`%s\` with JDBC \`%s\`. |
 | HY004     | 10003       | Invalid format for actual data node \`%s\`.        
                            |
@@ -33,6 +32,14 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
 | 44000     | 10093       | %s algorithms '%s' in database '%s' are still in 
used.                         |
 | 44000     | 10094       | Invalid %s algorithm configuration '%s'.           
                            |
 | HY000     | 10099       | Algorithm '%s.%s' execute failed, reason is: %s.   
                            |
+| 44000     | 10100       | Can not process invalid storage units, error 
messages are: %s                  |
+| 44000     | 10101       | Storage units \`%s\` do not exist in database 
\`%s\`.                          |
+| 44000     | 10102       | There is no storage unit in the database \`%s\`.   
                            |
+| 44000     | 10103       | Storage unit '%s' still used by '%s'.              
                            |
+| 44000     | 10104       | Duplicate storage unit names '%s'.                 
                            |
+| 44000     | 10105       | Invalid storage unit status, error message is: %s. 
                            |
+| 44000     | 10106       | Read storage unit \`%s\` does not exist in rule 
\`%s\`.                        |
+| 42000     | 10107       | There is no storage unit in database \`%s\`.       
                            |
 
 ### 数据
 
@@ -140,18 +147,6 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
 | HY000     | 18201       | CDC server exception, reason is: %s.               
                               |
 | HY000     | 18202       | CDC login failed, reason is: %s                    
                               |
 
-### 资源定义
-
-| SQL State | Vendor Code | 错误信息                                               
         |
-|-----------|-------------|-------------------------------------------------------------|
-| 44000     | 19000       | Can not process invalid storage units, error 
message is: %s |
-| 44000     | 19001       | Storage units \`%s\` do not exist in database 
\`%s\`.       |
-| 44000     | 19002       | There is no storage unit in the database \`%s\`.   
         |
-| 44000     | 19003       | Storage units \`%s\` is still used by \`%s\`.      
         |
-| 44000     | 19004       | Duplicate storage unit names \`%s\`.               
         |
-| 44000     | 19005       | Invalid storage unit status, error message is: %s. 
         |
-| 44000     | 19006       | Read storage unit \`%s\` does not exist in rule 
\`%s\`.     |
-
 ### 规则定义
 
 | SQL State | Vendor Code | 错误信息                                               
   |
diff --git a/docs/document/content/user-manual/error-code/sql-error-code.en.md 
b/docs/document/content/user-manual/error-code/sql-error-code.en.md
index a62063b4ea8..11db959311a 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.en.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.en.md
@@ -14,7 +14,6 @@ SQL error codes provide by standard `SQL State`, `Vendor 
Code` and `Reason`, whi
 
 | SQL State | Vendor Code | Reason                                             
                            |
 
|-----------|-------------|--------------------------------------------------------------------------------|
-| 42000     | 10000       | There is no storage unit in database \`%s\`.       
                            |
 | 08000     | 10001       | The URL \`%s\` is not recognized, please refer to 
the pattern \`%s\`.          |
 | 42000     | 10002       | Can not support 3-tier structure for actual data 
node \`%s\` with JDBC \`%s\`. |
 | HY004     | 10003       | Invalid format for actual data node \`%s\`.        
                            |
@@ -37,6 +36,14 @@ SQL error codes provide by standard `SQL State`, `Vendor 
Code` and `Reason`, whi
 | 44000     | 10093       | %s algorithms '%s' in database '%s' are still in 
used.                         |
 | 44000     | 10094       | Invalid %s algorithm configuration '%s'.           
                            |
 | HY000     | 10099       | Algorithm '%s.%s' execute failed, reason is: %s.   
                            |
+| 44000     | 10100       | Can not process invalid storage units, error 
messages are: %s                  |
+| 44000     | 10101       | Storage units \`%s\` do not exist in database 
\`%s\`.                          |
+| 44000     | 10102       | There is no storage unit in the database \`%s\`.   
                            |
+| 44000     | 10103       | Storage unit '%s' still used by '%s'.              
                            |
+| 44000     | 10104       | Duplicate storage unit names '%s'.                 
                            |
+| 44000     | 10105       | Invalid storage unit status, error message is: %s. 
                            |
+| 44000     | 10106       | Read storage unit \`%s\` does not exist in rule 
\`%s\`.                        |
+| 42000     | 10107       | There is no storage unit in database \`%s\`.       
                            |
 
 ### Data
 
@@ -144,18 +151,6 @@ SQL error codes provide by standard `SQL State`, `Vendor 
Code` and `Reason`, whi
 | HY000     | 18201       | CDC server exception, reason is: %s.               
                               |
 | HY000     | 18202       | CDC login failed, reason is: %s                    
                               |
 
-### Resource Definition
-
-| SQL State | Vendor Code | Reason                                             
         |
-|-----------|-------------|-------------------------------------------------------------|
-| 44000     | 19000       | Can not process invalid storage units, error 
message is: %s |
-| 44000     | 19001       | Storage units \`%s\` do not exist in database 
\`%s\`.       |
-| 44000     | 19002       | There is no storage unit in the database \`%s\`.   
         |
-| 44000     | 19003       | Storage units \`%s\` is still used by \`%s\`.      
         |
-| 44000     | 19004       | Duplicate storage unit names \`%s\`.               
         |
-| 44000     | 19005       | Invalid storage unit status, error message is: %s. 
         |
-| 44000     | 19006       | Read storage unit \`%s\` does not exist in rule 
\`%s\`.     |
-
 ### Rule Definition
 
 | SQL State | Vendor Code | Reason                                             
   |
diff --git 
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/exception/InvalidStorageUnitStatusException.java
 
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/exception/InvalidStorageUnitStatusException.java
index 27294d537c6..a723cf2e7ce 100644
--- 
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/exception/InvalidStorageUnitStatusException.java
+++ 
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/exception/InvalidStorageUnitStatusException.java
@@ -28,6 +28,6 @@ public final class InvalidStorageUnitStatusException extends 
StorageUnitDefiniti
     private static final long serialVersionUID = 4029749233439176539L;
     
     public InvalidStorageUnitStatusException(final String errorMessages) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 5, "Invalid storage unit 
status, error message is: %s.", errorMessages);
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 105, "Invalid storage unit 
status, error message is: %s.", errorMessages);
     }
 }
diff --git 
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/exception/MissingRequiredReadStorageUnitException.java
 
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/exception/MissingRequiredReadStorageUnitException.java
index 64ba4765f4b..4aab97c2e78 100644
--- 
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/exception/MissingRequiredReadStorageUnitException.java
+++ 
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/exception/MissingRequiredReadStorageUnitException.java
@@ -28,6 +28,6 @@ public final class MissingRequiredReadStorageUnitException 
extends StorageUnitDe
     private static final long serialVersionUID = -4252553422332603648L;
     
     public MissingRequiredReadStorageUnitException(final String ruleName, 
final String storageUnitName) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 6, "Read storage unit `%s` 
does not exist in rule `%s`.", storageUnitName, ruleName);
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 106, "Read storage unit 
`%s` does not exist in rule `%s`.", storageUnitName, ruleName);
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/DuplicateStorageUnitExceptionDefinition.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/DuplicateStorageUnitExceptionDefinition.java
index 0fe2ceac116..1ad734c2230 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/DuplicateStorageUnitExceptionDefinition.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/DuplicateStorageUnitExceptionDefinition.java
@@ -30,6 +30,6 @@ public final class DuplicateStorageUnitExceptionDefinition 
extends ResourceDefin
     private static final long serialVersionUID = 2103793827572264148L;
     
     public DuplicateStorageUnitExceptionDefinition(final Collection<String> 
storageUnitNames) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 4, "Duplicate storage unit 
names `%s`.", storageUnitNames);
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 104, "Duplicate storage 
unit names '%s'.", storageUnitNames);
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/EmptyStorageUnitException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/EmptyStorageUnitException.java
index 1d657b5ddd3..a7334d6f879 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/EmptyStorageUnitException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/EmptyStorageUnitException.java
@@ -28,6 +28,6 @@ public final class EmptyStorageUnitException extends 
ResourceDefinitionException
     private static final long serialVersionUID = 1704331180489268L;
     
     public EmptyStorageUnitException(final String databaseName) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 2, "There is no storage 
unit in the database `%s`.", databaseName);
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 102, "There is no storage 
unit in the database `%s`.", databaseName);
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/StorageUnitInUsedException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/InUsedStorageUnitException.java
similarity index 77%
rename from 
infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/StorageUnitInUsedException.java
rename to 
infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/InUsedStorageUnitException.java
index 169317db122..2b231305e79 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/StorageUnitInUsedException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/InUsedStorageUnitException.java
@@ -22,15 +22,16 @@ import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.c
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 
 import java.util.Collection;
+import java.util.stream.Collectors;
 
 /**
- * Storage unit in used exception.
+ * In used storage unit exception.
  */
-public final class StorageUnitInUsedException extends 
ResourceDefinitionException {
+public final class InUsedStorageUnitException extends 
ResourceDefinitionException {
     
     private static final long serialVersionUID = -3427324685070457375L;
     
-    public StorageUnitInUsedException(final String storageUnitName, final 
Collection<Class<? extends ShardingSphereRule>> ruleClasses) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 3, "Storage unit `%s` is 
still used by `%s`.", storageUnitName, ruleClasses);
+    public InUsedStorageUnitException(final String storageUnitName, final 
Collection<Class<? extends ShardingSphereRule>> ruleClasses) {
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 103, "Storage unit '%s' 
still used by '%s'.", storageUnitName, 
ruleClasses.stream().map(Class::getSimpleName).collect(Collectors.joining(", 
")));
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/InvalidStorageUnitsException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/InvalidStorageUnitsException.java
index 189567b68a4..248eb742f8d 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/InvalidStorageUnitsException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/InvalidStorageUnitsException.java
@@ -30,6 +30,6 @@ public final class InvalidStorageUnitsException extends 
ResourceDefinitionExcept
     private static final long serialVersionUID = 7029641448948791509L;
     
     public InvalidStorageUnitsException(final Collection<String> 
errorMessages) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 0, "Can not process 
invalid storage units, error message is: %s", errorMessages);
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 100, "Can not process 
invalid storage units, error messages are: %s", errorMessages);
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/MissingRequiredStorageUnitsException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/MissingRequiredStorageUnitsException.java
index b956ccf335a..3474a6b9f61 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/MissingRequiredStorageUnitsException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/MissingRequiredStorageUnitsException.java
@@ -30,6 +30,6 @@ public final class MissingRequiredStorageUnitsException 
extends ResourceDefiniti
     private static final long serialVersionUID = 1704331180489268L;
     
     public MissingRequiredStorageUnitsException(final String databaseName, 
final Collection<String> storageUnitNames) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 1, "Storage units `%s` do 
not exist in database `%s`.", storageUnitNames, databaseName);
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 101, "Storage units `%s` 
do not exist in database `%s`.", storageUnitNames, databaseName);
     }
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/exception/StorageUnitNotExistedException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/StorageUnitNotExistedException.java
similarity index 75%
rename from 
proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/exception/StorageUnitNotExistedException.java
rename to 
infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/StorageUnitNotExistedException.java
index 923ce029eb7..a107a9b59c0 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/exception/StorageUnitNotExistedException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/storageunit/StorageUnitNotExistedException.java
@@ -15,23 +15,23 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.proxy.backend.exception;
+package org.apache.shardingsphere.infra.exception.storageunit;
 
-import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.MetaDataSQLException;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
+import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.ResourceDefinitionException;
 
 /**
  * Storage unit not existed exception.
  */
-public final class StorageUnitNotExistedException extends MetaDataSQLException 
{
+public final class StorageUnitNotExistedException extends 
ResourceDefinitionException {
     
     private static final long serialVersionUID = 4146100333670404924L;
     
     public StorageUnitNotExistedException() {
-        super(XOpenSQLState.SYNTAX_ERROR, 0, "There is no storage unit in any 
database.");
+        super(XOpenSQLState.SYNTAX_ERROR, 107, "There is no storage unit in 
any database.");
     }
     
     public StorageUnitNotExistedException(final String databaseName) {
-        super(XOpenSQLState.SYNTAX_ERROR, 0, "There is no storage unit in 
database `%s`.", databaseName);
+        super(XOpenSQLState.SYNTAX_ERROR, 107, "There is no storage unit in 
database `%s`.", databaseName);
     }
 }
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
index 076387d0f9e..bfd5867c68e 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutor.java
@@ -22,7 +22,7 @@ import lombok.extern.slf4j.Slf4j;
 import 
org.apache.shardingsphere.distsql.handler.aware.DistSQLExecutorDatabaseAware;
 import 
org.apache.shardingsphere.infra.exception.storageunit.InvalidStorageUnitsException;
 import 
org.apache.shardingsphere.infra.exception.storageunit.MissingRequiredStorageUnitsException;
-import 
org.apache.shardingsphere.infra.exception.storageunit.StorageUnitInUsedException;
+import 
org.apache.shardingsphere.infra.exception.storageunit.InUsedStorageUnitException;
 import 
org.apache.shardingsphere.distsql.handler.engine.update.DistSQLUpdateExecutor;
 import 
org.apache.shardingsphere.distsql.handler.engine.update.rdl.resource.StorageUnitDefinitionProcessor;
 import 
org.apache.shardingsphere.distsql.statement.rdl.resource.unit.type.UnregisterStorageUnitStatement;
@@ -80,7 +80,7 @@ public final class UnregisterStorageUnitExecutor implements 
DistSQLUpdateExecuto
         }
         Collection<Class<ShardingSphereRule>> ignoreShardingSphereRules = 
getIgnoreShardingSphereRules(sqlStatement);
         String firstResource = inUsedStorageUnitNames.iterator().next();
-        
ShardingSpherePreconditions.checkState(!ignoreShardingSphereRules.isEmpty(), () 
-> new StorageUnitInUsedException(firstResource, 
inUsedStorageUnits.get(firstResource)));
+        
ShardingSpherePreconditions.checkState(!ignoreShardingSphereRules.isEmpty(), () 
-> new InUsedStorageUnitException(firstResource, 
inUsedStorageUnits.get(firstResource)));
         checkInUsedIgnoreTables(new HashSet<>(inUsedStorageUnitNames), 
inUsedStorageUnits, ignoreShardingSphereRules);
     }
     
@@ -100,7 +100,7 @@ public final class UnregisterStorageUnitExecutor implements 
DistSQLUpdateExecuto
         for (String each : inUsedResourceNames) {
             Collection<Class<? extends ShardingSphereRule>> inUsedRules = 
inUsedStorageUnits.get(each);
             ignoreShardingSphereRules.forEach(inUsedRules::remove);
-            ShardingSpherePreconditions.checkState(inUsedRules.isEmpty(), () 
-> new StorageUnitInUsedException(each, inUsedRules));
+            ShardingSpherePreconditions.checkState(inUsedRules.isEmpty(), () 
-> new InUsedStorageUnitException(each, inUsedRules));
         }
     }
     
diff --git 
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutorTest.java
 
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutorTest.java
index 2ae997356ac..0f98b2a5d54 100644
--- 
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutorTest.java
+++ 
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/UnregisterStorageUnitExecutorTest.java
@@ -21,7 +21,7 @@ import 
org.apache.shardingsphere.distsql.handler.fixture.DistSQLHandlerFixtureRu
 import 
org.apache.shardingsphere.distsql.statement.rdl.resource.unit.type.UnregisterStorageUnitStatement;
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
 import 
org.apache.shardingsphere.infra.exception.storageunit.MissingRequiredStorageUnitsException;
-import 
org.apache.shardingsphere.infra.exception.storageunit.StorageUnitInUsedException;
+import 
org.apache.shardingsphere.infra.exception.storageunit.InUsedStorageUnitException;
 import org.apache.shardingsphere.infra.instance.mode.ModeContextManager;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
@@ -112,13 +112,13 @@ class UnregisterStorageUnitExecutorTest {
         
when(ruleAttribute.getDataSourceMapper()).thenReturn(Collections.singletonMap("",
 Collections.singleton("foo_ds")));
         when(rule.getAttributes()).thenReturn(new 
RuleAttributes(ruleAttribute));
         when(database.getRuleMetaData()).thenReturn(new 
RuleMetaData(Collections.singleton(rule)));
-        assertThrows(StorageUnitInUsedException.class, () -> 
executor.executeUpdate(new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false, false), 
mock(ContextManager.class)));
+        assertThrows(InUsedStorageUnitException.class, () -> 
executor.executeUpdate(new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false, false), 
mock(ContextManager.class)));
     }
     
     @Test
     void assertExecuteUpdateWithStorageUnitInUsedWithoutIgnoredTables() {
         when(database.getRuleMetaData()).thenReturn(new 
RuleMetaData(Collections.singleton(new DistSQLHandlerFixtureRule())));
-        assertThrows(StorageUnitInUsedException.class, () -> 
executor.executeUpdate(new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false, false), 
mock(ContextManager.class)));
+        assertThrows(InUsedStorageUnitException.class, () -> 
executor.executeUpdate(new 
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false, false), 
mock(ContextManager.class)));
     }
     
     @Test
@@ -143,6 +143,6 @@ class UnregisterStorageUnitExecutorTest {
         
when(ruleAttribute.getDataSourceMapper()).thenReturn(Collections.singletonMap("",
 Collections.singleton("foo_ds")));
         when(rule.getAttributes()).thenReturn(new 
RuleAttributes(ruleAttribute));
         when(database.getRuleMetaData()).thenReturn(new 
RuleMetaData(Collections.singleton(rule)));
-        assertThrows(StorageUnitInUsedException.class, () -> 
executor.executeUpdate(new UnregisterStorageUnitStatement(true, 
Collections.singleton("foo_ds"), true, false), contextManager));
+        assertThrows(InUsedStorageUnitException.class, () -> 
executor.executeUpdate(new UnregisterStorageUnitStatement(true, 
Collections.singleton("foo_ds"), true, false), contextManager));
     }
 }
diff --git 
a/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/external/sql/type/kernel/category/ResourceDefinitionException.java
 
b/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/external/sql/type/kernel/category/ResourceDefinitionException.java
index 8361644302d..ea592fa560f 100644
--- 
a/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/external/sql/type/kernel/category/ResourceDefinitionException.java
+++ 
b/infra/exception/core/src/main/java/org/apache/shardingsphere/infra/exception/core/external/sql/type/kernel/category/ResourceDefinitionException.java
@@ -18,18 +18,15 @@
 package 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category;
 
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.SQLState;
-import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.KernelSQLException;
 
 /**
  * Resource definition exception.
  */
-public abstract class ResourceDefinitionException extends KernelSQLException {
+public abstract class ResourceDefinitionException extends MetaDataSQLException 
{
     
     private static final long serialVersionUID = -7111524353233598083L;
     
-    private static final int KERNEL_CODE = 9;
-    
     protected ResourceDefinitionException(final SQLState sqlState, final int 
errorCode, final String reason, final Object... messageArgs) {
-        super(sqlState, KERNEL_CODE, errorCode, reason, messageArgs);
+        super(sqlState, errorCode, reason, messageArgs);
     }
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
index cca3ed07b4d..606bca8b2b2 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
@@ -56,7 +56,7 @@ import 
org.apache.shardingsphere.proxy.backend.connector.jdbc.executor.callback.
 import 
org.apache.shardingsphere.proxy.backend.connector.jdbc.statement.JDBCBackendStatement;
 import 
org.apache.shardingsphere.proxy.backend.connector.jdbc.transaction.BackendTransactionManager;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import 
org.apache.shardingsphere.proxy.backend.exception.StorageUnitNotExistedException;
+import 
org.apache.shardingsphere.infra.exception.storageunit.StorageUnitNotExistedException;
 import 
org.apache.shardingsphere.proxy.backend.handler.data.DatabaseBackendHandler;
 import org.apache.shardingsphere.proxy.backend.response.data.QueryResponseCell;
 import org.apache.shardingsphere.proxy.backend.response.data.QueryResponseRow;
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/data/impl/UnicastDatabaseBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/data/impl/UnicastDatabaseBackendHandler.java
index b29f6c5fde3..a8b146c4fcc 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/data/impl/UnicastDatabaseBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/data/impl/UnicastDatabaseBackendHandler.java
@@ -26,7 +26,7 @@ import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePrecondition
 import 
org.apache.shardingsphere.proxy.backend.connector.DatabaseConnectorFactory;
 import org.apache.shardingsphere.proxy.backend.connector.DatabaseConnector;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import 
org.apache.shardingsphere.proxy.backend.exception.StorageUnitNotExistedException;
+import 
org.apache.shardingsphere.infra.exception.storageunit.StorageUnitNotExistedException;
 import 
org.apache.shardingsphere.proxy.backend.handler.data.DatabaseBackendHandler;
 import org.apache.shardingsphere.proxy.backend.response.data.QueryResponseRow;
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
diff --git 
a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UnicastResourceShowExecutor.java
 
b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UnicastResourceShowExecutor.java
index 0d5ed8f6d08..7739188d5a0 100644
--- 
a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UnicastResourceShowExecutor.java
+++ 
b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UnicastResourceShowExecutor.java
@@ -37,7 +37,7 @@ import 
org.apache.shardingsphere.infra.session.query.QueryContext;
 import org.apache.shardingsphere.proxy.backend.connector.DatabaseConnector;
 import 
org.apache.shardingsphere.proxy.backend.connector.DatabaseConnectorFactory;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import 
org.apache.shardingsphere.proxy.backend.exception.StorageUnitNotExistedException;
+import 
org.apache.shardingsphere.infra.exception.storageunit.StorageUnitNotExistedException;
 import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminQueryExecutor;
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import 
org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader;

Reply via email to