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 b5774345605 Add SingleDefinitionException (#30731)
b5774345605 is described below

commit b5774345605955127dfa78cea7d6a11e940b1da7
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Apr 1 18:29:55 2024 +0800

    Add SingleDefinitionException (#30731)
---
 .../user-manual/error-code/sql-error-code.cn.md    | 61 +++++++++++-----------
 .../user-manual/error-code/sql-error-code.en.md    | 61 +++++++++++-----------
 .../exception/AlgorithmDefinitionException.java    |  2 +-
 .../resource/ResourceDefinitionException.java      |  2 +-
 .../exception/rule/RuleDefinitionException.java    |  2 +-
 .../single/datanode/SingleTableDataNodeLoader.java |  2 +-
 .../SingleRuleConfigurationDecorator.java          |  2 +-
 .../DropNotEmptySchemaException.java               |  7 ++-
 .../InvalidSingleRuleConfigurationException.java   |  7 ++-
 .../metadata/SingleDefinitionException.java        | 16 +++---
 .../SingleTableNotFoundException.java              |  7 ++-
 .../SingleTablesLoadingException.java              |  7 ++-
 .../route/engine/SingleStandardRouteEngine.java    |  2 +-
 .../ddl/SingleDropSchemaMetaDataValidator.java     |  2 +-
 .../ddl/SingleDropSchemaMetaDataValidatorTest.java |  2 +-
 .../handler/update/UnloadSingleTableExecutor.java  |  2 +-
 16 files changed, 91 insertions(+), 93 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 9a37cd0b7cc..3ac5180f863 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
@@ -12,36 +12,37 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
 
 ### 元数据
 
-| SQL State | Vendor Code | 错误信息                                               
                        |
-|-----------|-------------|----------------------------------------------------------------------------|
-| HY000     | 10000       | Can not support 3-tier structure for actual data 
node '%s' with JDBC '%s'. |
-| HY004     | 10001       | Invalid format for actual data node '%s'.          
                        |
-| 42S02     | 10002       | Schema '%s' does not exist.                        
                        |
-| 42S02     | 10003       | Table or view '%s' does not exist.                 
                        |
-| 42S02     | 10004       | Unknown column '%s' in '%s'.                       
                        |
-| HY000     | 10005       | Column '%s' in %s is ambiguous.                    
                        |
-| 42S02     | 10021       | Single table '%s' does not exist.                  
                        |
-| HY000     | 10022       | Can not load table with database name '%s' and 
data source name '%s'.      |
-| 0A000     | 10030       | Can not drop schema '%s' because of contains 
tables.                       |
-| HY000     | 10100       | Can not %s storage units '%s'.                     
                        |
-| 42S02     | 10101       | There is no storage unit in database '%s'.         
                        |
-| 44000     | 10102       | Storage units '%s' do not exist in database '%s'.  
                        |
-| 44000     | 10103       | Storage unit '%s' still used by '%s'.              
                        |
-| 42S01     | 10104       | Duplicate storage unit names '%s'.                 
                        |
-| 08000     | 10110       | Storage units can not connect, error messages are: 
%s.                     |
-| 0A000     | 10111       | Can not alter connection info in storage units: 
'%s'.                      |
-| 44000     | 10120       | Invalid storage unit status, error message is: %s. 
                        |
-| 44000     | 10200       | Invalid '%s' rule '%s', error message is: %s       
                        |
-| 42S02     | 10201       | There is no rule in database '%s'.                 
                        |
-| 42S02     | 10202       | %s rules '%s' do not exist in database '%s'.       
                        |
-| 44000     | 10203       | %s rules '%s' in database '%s' are still in used.  
                        |
-| 42S01     | 10204       | Duplicate %s rule names '%s' in database '%s'.     
                        |
-| 44000     | 10300       | Algorithm '%s.'%s' initialization failed, reason 
is: %s.                   |
-| 44000     | 10301       | '%s' algorithm on %s is required.                  
                        |
-| 42S02     | 10302       | '%s' algorithm '%s' on %s is unregistered.         
                        |
-| 44000     | 10303       | %s algorithms '%s' in database '%s' are still in 
used.                     |
-| 44000     | 10304       | Invalid %s algorithm configuration '%s'.           
                        |
-| HY000     | 10350       | Algorithm '%s.%s' execute failed, reason is: %s.   
                        |
+| SQL State | Vendor Code | 错误信息                                               
                                 |
+|-----------|-------------|-------------------------------------------------------------------------------------|
+| HY000     | 10000       | Can not support 3-tier structure for actual data 
node '%s' with JDBC '%s'.          |
+| HY004     | 10001       | Invalid format for actual data node '%s'.          
                                 |
+| 42S02     | 10002       | Schema '%s' does not exist.                        
                                 |
+| 42S02     | 10003       | Table or view '%s' does not exist.                 
                                 |
+| 42S02     | 10004       | Unknown column '%s' in '%s'.                       
                                 |
+| HY000     | 10005       | Column '%s' in %s is ambiguous.                    
                                 |
+| HY000     | 10100       | Can not %s storage units '%s'.                     
                                 |
+| 42S02     | 10101       | There is no storage unit in database '%s'.         
                                 |
+| 44000     | 10102       | Storage units '%s' do not exist in database '%s'.  
                                 |
+| 44000     | 10103       | Storage unit '%s' still used by '%s'.              
                                 |
+| 42S01     | 10104       | Duplicate storage unit names '%s'.                 
                                 |
+| 08000     | 10110       | Storage units can not connect, error messages are: 
%s.                              |
+| 0A000     | 10111       | Can not alter connection info in storage units: 
'%s'.                               |
+| 44000     | 10120       | Invalid storage unit status, error message is: %s. 
                                 |
+| 44000     | 10200       | Invalid '%s' rule '%s', error message is: %s       
                                 |
+| 42S02     | 10201       | There is no rule in database '%s'.                 
                                 |
+| 42S02     | 10202       | %s rules '%s' do not exist in database '%s'.       
                                 |
+| 44000     | 10203       | %s rules '%s' in database '%s' are still in used.  
                                 |
+| 42S01     | 10204       | Duplicate %s rule names '%s' in database '%s'.     
                                 |
+| 44000     | 10300       | Algorithm '%s.'%s' initialization failed, reason 
is: %s.                            |
+| 44000     | 10301       | '%s' algorithm on %s is required.                  
                                 |
+| 42S02     | 10302       | '%s' algorithm '%s' on %s is unregistered.         
                                 |
+| 44000     | 10303       | %s algorithms '%s' in database '%s' are still in 
used.                              |
+| 44000     | 10304       | Invalid %s algorithm configuration '%s'.           
                                 |
+| HY000     | 10350       | Algorithm '%s.%s' execute failed, reason is: %s.   
                                 |
+| 44000     | 10400       | Invalid single rule configuration, reason is: %s.  
                                 |
+| 42S02     | 10401       | Single table '%s' does not exist.                  
                                 |
+| HY000     | 10402       | Can not load table with database name '%s' and 
data source name '%s', reason is: %s |
+| 0A000     | 10403       | Can not drop schema '%s' because of contains 
tables.                                |
 
 ### 数据
 
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 ee149fb367d..2d1df3f61bf 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
@@ -12,36 +12,37 @@ SQL error codes provide by standard `SQL State`, `Vendor 
Code` and `Reason`, whi
 
 ### Meta data
 
-| SQL State | Vendor Code | Reason                                             
                        |
-|-----------|-------------|----------------------------------------------------------------------------|
-| HY000     | 10000       | Can not support 3-tier structure for actual data 
node '%s' with JDBC '%s'. |
-| HY004     | 10001       | Invalid format for actual data node '%s'.          
                        |
-| 42S02     | 10002       | Schema '%s' does not exist.                        
                        |
-| 42S02     | 10003       | Table or view '%s' does not exist.                 
                        |
-| 42S02     | 10004       | Unknown column '%s' in '%s'.                       
                        |
-| HY000     | 10005       | Column '%s' in %s is ambiguous.                    
                        |
-| 42S02     | 10021       | Single table '%s' does not exist.                  
                        |
-| HY000     | 10022       | Can not load table with database name '%s' and 
data source name '%s'.      |
-| 0A000     | 10030       | Can not drop schema '%s' because of contains 
tables.                       |
-| HY000     | 10100       | Can not %s storage units '%s'.                     
                        |
-| 42S02     | 10101       | There is no storage unit in database '%s'.         
                        |
-| 44000     | 10102       | Storage units '%s' do not exist in database '%s'.  
                        |
-| 44000     | 10103       | Storage unit '%s' still used by '%s'.              
                        |
-| 42S01     | 10104       | Duplicate storage unit names '%s'.                 
                        |
-| 08000     | 10110       | Storage units can not connect, error messages are: 
%s.                     |
-| 0A000     | 10111       | Can not alter connection info in storage units: 
'%s'.                      |
-| 44000     | 10120       | Invalid storage unit status, error message is: %s. 
                        |
-| 44000     | 10200       | Invalid '%s' rule '%s', error message is: %s       
                        |
-| 42S02     | 10201       | There is no rule in database '%s'.                 
                        |
-| 42S02     | 10202       | %s rules '%s' do not exist in database '%s'.       
                        |
-| 44000     | 10203       | %s rules '%s' in database '%s' are still in used.  
                        |
-| 42S01     | 10204       | Duplicate %s rule names '%s' in database '%s'.     
                        |
-| 44000     | 10300       | Algorithm '%s.'%s' initialization failed, reason 
is: %s.                   |
-| 44000     | 10301       | '%s' algorithm on %s is required.                  
                        |
-| 42S02     | 10302       | '%s' algorithm '%s' on %s is unregistered.         
                        |
-| 44000     | 10303       | %s algorithms '%s' in database '%s' are still in 
used.                     |
-| 44000     | 10304       | Invalid %s algorithm configuration '%s'.           
                        |
-| HY000     | 10350       | Algorithm '%s.%s' execute failed, reason is: %s.   
                        |
+| SQL State | Vendor Code | Reason                                             
                                 |
+|-----------|-------------|-------------------------------------------------------------------------------------|
+| HY000     | 10000       | Can not support 3-tier structure for actual data 
node '%s' with JDBC '%s'.          |
+| HY004     | 10001       | Invalid format for actual data node '%s'.          
                                 |
+| 42S02     | 10002       | Schema '%s' does not exist.                        
                                 |
+| 42S02     | 10003       | Table or view '%s' does not exist.                 
                                 |
+| 42S02     | 10004       | Unknown column '%s' in '%s'.                       
                                 |
+| HY000     | 10005       | Column '%s' in %s is ambiguous.                    
                                 |
+| HY000     | 10100       | Can not %s storage units '%s'.                     
                                 |
+| 42S02     | 10101       | There is no storage unit in database '%s'.         
                                 |
+| 44000     | 10102       | Storage units '%s' do not exist in database '%s'.  
                                 |
+| 44000     | 10103       | Storage unit '%s' still used by '%s'.              
                                 |
+| 42S01     | 10104       | Duplicate storage unit names '%s'.                 
                                 |
+| 08000     | 10110       | Storage units can not connect, error messages are: 
%s.                              |
+| 0A000     | 10111       | Can not alter connection info in storage units: 
'%s'.                               |
+| 44000     | 10120       | Invalid storage unit status, error message is: %s. 
                                 |
+| 44000     | 10200       | Invalid '%s' rule '%s', error message is: %s       
                                 |
+| 42S02     | 10201       | There is no rule in database '%s'.                 
                                 |
+| 42S02     | 10202       | %s rules '%s' do not exist in database '%s'.       
                                 |
+| 44000     | 10203       | %s rules '%s' in database '%s' are still in used.  
                                 |
+| 42S01     | 10204       | Duplicate %s rule names '%s' in database '%s'.     
                                 |
+| 44000     | 10300       | Algorithm '%s.'%s' initialization failed, reason 
is: %s.                            |
+| 44000     | 10301       | '%s' algorithm on %s is required.                  
                                 |
+| 42S02     | 10302       | '%s' algorithm '%s' on %s is unregistered.         
                                 |
+| 44000     | 10303       | %s algorithms '%s' in database '%s' are still in 
used.                              |
+| 44000     | 10304       | Invalid %s algorithm configuration '%s'.           
                                 |
+| HY000     | 10350       | Algorithm '%s.%s' execute failed, reason is: %s.   
                                 |
+| 44000     | 10400       | Invalid single rule configuration, reason is: %s.  
                                 |
+| 42S02     | 10401       | Single table '%s' does not exist.                  
                                 |
+| HY000     | 10402       | Can not load table with database name '%s' and 
data source name '%s', reason is: %s |
+| 0A000     | 10403       | Can not drop schema '%s' because of contains 
tables.                                |
 
 ### Data
 
diff --git 
a/infra/algorithm/core/src/main/java/org/apache/shardingsphere/infra/algorithm/core/exception/AlgorithmDefinitionException.java
 
b/infra/algorithm/core/src/main/java/org/apache/shardingsphere/infra/algorithm/core/exception/AlgorithmDefinitionException.java
index 2ef530a483e..f4e1f97699c 100644
--- 
a/infra/algorithm/core/src/main/java/org/apache/shardingsphere/infra/algorithm/core/exception/AlgorithmDefinitionException.java
+++ 
b/infra/algorithm/core/src/main/java/org/apache/shardingsphere/infra/algorithm/core/exception/AlgorithmDefinitionException.java
@@ -35,7 +35,7 @@ public abstract class AlgorithmDefinitionException extends 
MetaDataSQLException
     }
     
     private static int getErrorCode(final int errorCode) {
-        Preconditions.checkArgument(errorCode >= 0 && errorCode < 100, "The 
value range of error code should be [0, 1000).");
+        Preconditions.checkArgument(errorCode >= 0 && errorCode < 100, "The 
value range of error code should be [0, 100).");
         return ALGORITHM_CODE * 100 + errorCode;
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/resource/ResourceDefinitionException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/resource/ResourceDefinitionException.java
index 948e4457135..52dadbb3333 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/resource/ResourceDefinitionException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/resource/ResourceDefinitionException.java
@@ -39,7 +39,7 @@ public abstract class ResourceDefinitionException extends 
MetaDataSQLException {
     }
     
     private static int getErrorCode(final int errorCode) {
-        Preconditions.checkArgument(errorCode >= 0 && errorCode < 100, "The 
value range of error code should be [0, 1000).");
+        Preconditions.checkArgument(errorCode >= 0 && errorCode < 100, "The 
value range of error code should be [0, 100).");
         return RESOURCE_CODE * 100 + errorCode;
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/rule/RuleDefinitionException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/rule/RuleDefinitionException.java
index 8354ef615d5..b312d58f0c7 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/rule/RuleDefinitionException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/rule/RuleDefinitionException.java
@@ -35,7 +35,7 @@ public abstract class RuleDefinitionException extends 
MetaDataSQLException {
     }
     
     private static int getErrorCode(final int errorCode) {
-        Preconditions.checkArgument(errorCode >= 0 && errorCode < 100, "The 
value range of error code should be [0, 1000).");
+        Preconditions.checkArgument(errorCode >= 0 && errorCode < 100, "The 
value range of error code should be [0, 100).");
         return RULE_CODE * 100 + errorCode;
     }
 }
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/datanode/SingleTableDataNodeLoader.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/datanode/SingleTableDataNodeLoader.java
index 42500e70f37..8cd743d2e5e 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/datanode/SingleTableDataNodeLoader.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/datanode/SingleTableDataNodeLoader.java
@@ -25,7 +25,7 @@ import 
org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.datanode.DataNode;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.single.api.constant.SingleTableConstants;
-import org.apache.shardingsphere.single.exception.SingleTablesLoadingException;
+import 
org.apache.shardingsphere.single.exception.metadata.SingleTablesLoadingException;
 import org.apache.shardingsphere.single.util.SingleTableLoadUtils;
 
 import javax.sql.DataSource;
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decorator/SingleRuleConfigurationDecorator.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decorator/SingleRuleConfigurationDecorator.java
index fd82bbcc35b..9afb9742b4a 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decorator/SingleRuleConfigurationDecorator.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decorator/SingleRuleConfigurationDecorator.java
@@ -28,7 +28,7 @@ import 
org.apache.shardingsphere.infra.state.datasource.DataSourceStateManager;
 import org.apache.shardingsphere.single.api.config.SingleRuleConfiguration;
 import org.apache.shardingsphere.single.api.constant.SingleTableConstants;
 import org.apache.shardingsphere.single.datanode.SingleTableDataNodeLoader;
-import 
org.apache.shardingsphere.single.exception.InvalidSingleRuleConfigurationException;
+import 
org.apache.shardingsphere.single.exception.metadata.InvalidSingleRuleConfigurationException;
 import org.apache.shardingsphere.single.rule.SingleRule;
 import org.apache.shardingsphere.single.util.SingleTableLoadUtils;
 
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/DropNotEmptySchemaException.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/DropNotEmptySchemaException.java
similarity index 75%
rename from 
kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/DropNotEmptySchemaException.java
rename to 
kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/DropNotEmptySchemaException.java
index c8d74d8b6cc..c4facce25c6 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/DropNotEmptySchemaException.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/DropNotEmptySchemaException.java
@@ -15,19 +15,18 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.single.exception;
+package org.apache.shardingsphere.single.exception.metadata;
 
-import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.MetaDataSQLException;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
 
 /**
  * Drop not empty schema exception.
  */
-public final class DropNotEmptySchemaException extends MetaDataSQLException {
+public final class DropNotEmptySchemaException extends 
SingleDefinitionException {
     
     private static final long serialVersionUID = 5285619119572894557L;
     
     public DropNotEmptySchemaException(final String schemaName) {
-        super(XOpenSQLState.FEATURE_NOT_SUPPORTED, 30, "Can not drop schema 
'%s' because of contains tables.", schemaName);
+        super(XOpenSQLState.FEATURE_NOT_SUPPORTED, 3, "Can not drop schema 
'%s' because of contains tables.", schemaName);
     }
 }
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/InvalidSingleRuleConfigurationException.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/InvalidSingleRuleConfigurationException.java
similarity index 79%
rename from 
kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/InvalidSingleRuleConfigurationException.java
rename to 
kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/InvalidSingleRuleConfigurationException.java
index 993363b9dce..583f2c576f6 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/InvalidSingleRuleConfigurationException.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/InvalidSingleRuleConfigurationException.java
@@ -15,19 +15,18 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.single.exception;
+package org.apache.shardingsphere.single.exception.metadata;
 
-import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.MetaDataSQLException;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
 
 /**
  * Invalid single rule configuration exception.
  */
-public final class InvalidSingleRuleConfigurationException extends 
MetaDataSQLException {
+public final class InvalidSingleRuleConfigurationException extends 
SingleDefinitionException {
     
     private static final long serialVersionUID = 1337703808376580240L;
     
     public InvalidSingleRuleConfigurationException(final String message) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 22, "Invalid single rule 
configuration, reason is: %s.", message);
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 0, "Invalid single rule 
configuration, reason is: %s.", message);
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/rule/RuleDefinitionException.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/SingleDefinitionException.java
similarity index 70%
copy from 
infra/common/src/main/java/org/apache/shardingsphere/infra/exception/rule/RuleDefinitionException.java
copy to 
kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/SingleDefinitionException.java
index 8354ef615d5..50f3894c63c 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/rule/RuleDefinitionException.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/SingleDefinitionException.java
@@ -15,27 +15,27 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.exception.rule;
+package org.apache.shardingsphere.single.exception.metadata;
 
 import com.google.common.base.Preconditions;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.SQLState;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.MetaDataSQLException;
 
 /**
- * Rule definition exception.
+ * Single definition exception.
  */
-public abstract class RuleDefinitionException extends MetaDataSQLException {
+public abstract class SingleDefinitionException extends MetaDataSQLException {
     
-    private static final long serialVersionUID = -6414242067345718028L;
+    private static final long serialVersionUID = -1511719427208747948L;
     
-    private static final int RULE_CODE = 2;
+    private static final int SINGLE_CODE = 4;
     
-    protected RuleDefinitionException(final SQLState sqlState, final int 
errorCode, final String reason, final Object... messageArgs) {
+    protected SingleDefinitionException(final SQLState sqlState, final int 
errorCode, final String reason, final Object... messageArgs) {
         super(sqlState, getErrorCode(errorCode), reason, messageArgs);
     }
     
     private static int getErrorCode(final int errorCode) {
-        Preconditions.checkArgument(errorCode >= 0 && errorCode < 100, "The 
value range of error code should be [0, 1000).");
-        return RULE_CODE * 100 + errorCode;
+        Preconditions.checkArgument(errorCode >= 0 && errorCode < 100, "The 
value range of error code should be [0, 100).");
+        return SINGLE_CODE * 100 + errorCode;
     }
 }
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/SingleTableNotFoundException.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/SingleTableNotFoundException.java
similarity index 76%
rename from 
kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/SingleTableNotFoundException.java
rename to 
kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/SingleTableNotFoundException.java
index a302f0baedc..212c073868d 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/SingleTableNotFoundException.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/SingleTableNotFoundException.java
@@ -15,19 +15,18 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.single.exception;
+package org.apache.shardingsphere.single.exception.metadata;
 
-import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.MetaDataSQLException;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
 
 /**
  * Single table not found exception.
  */
-public final class SingleTableNotFoundException extends MetaDataSQLException {
+public final class SingleTableNotFoundException extends 
SingleDefinitionException {
     
     private static final long serialVersionUID = 3498790429190415298L;
     
     public SingleTableNotFoundException(final String tableName) {
-        super(XOpenSQLState.NOT_FOUND, 21, "Single table '%s' does not 
exist.", tableName);
+        super(XOpenSQLState.NOT_FOUND, 1, "Single table '%s' does not exist.", 
tableName);
     }
 }
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/SingleTablesLoadingException.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/SingleTablesLoadingException.java
similarity index 73%
rename from 
kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/SingleTablesLoadingException.java
rename to 
kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/SingleTablesLoadingException.java
index 662d5911950..4bbbc2cb9a4 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/SingleTablesLoadingException.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/metadata/SingleTablesLoadingException.java
@@ -15,9 +15,8 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.single.exception;
+package org.apache.shardingsphere.single.exception.metadata;
 
-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 java.sql.SQLException;
@@ -25,11 +24,11 @@ import java.sql.SQLException;
 /**
  * Single tables loading exception.
  */
-public final class SingleTablesLoadingException extends MetaDataSQLException {
+public final class SingleTablesLoadingException extends 
SingleDefinitionException {
     
     private static final long serialVersionUID = 698261896187918188L;
     
     public SingleTablesLoadingException(final String databaseName, final 
String dataSourceName, final SQLException cause) {
-        super(XOpenSQLState.GENERAL_ERROR, 22, "Can not load table with 
database name '%s' and data source name '%s', reason is: %s", databaseName, 
dataSourceName, cause.getMessage());
+        super(XOpenSQLState.GENERAL_ERROR, 2, "Can not load table with 
database name '%s' and data source name '%s', reason is: %s", databaseName, 
dataSourceName, cause.getMessage());
     }
 }
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/engine/SingleStandardRouteEngine.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/engine/SingleStandardRouteEngine.java
index f62365ed3cc..ed8effbf305 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/engine/SingleStandardRouteEngine.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/engine/SingleStandardRouteEngine.java
@@ -27,7 +27,7 @@ import 
org.apache.shardingsphere.infra.route.context.RouteUnit;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.generic.UnsupportedSQLOperationException;
 import 
org.apache.shardingsphere.infra.rule.attribute.datanode.MutableDataNodeRuleAttribute;
-import org.apache.shardingsphere.single.exception.SingleTableNotFoundException;
+import 
org.apache.shardingsphere.single.exception.metadata.SingleTableNotFoundException;
 import org.apache.shardingsphere.single.rule.SingleRule;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 import 
org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateTableStatement;
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/validator/ddl/SingleDropSchemaMetaDataValidator.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/validator/ddl/SingleDropSchemaMetaDataValidator.java
index 45695d1e20f..c4482cdb107 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/validator/ddl/SingleDropSchemaMetaDataValidator.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/validator/ddl/SingleDropSchemaMetaDataValidator.java
@@ -22,7 +22,7 @@ import 
org.apache.shardingsphere.infra.exception.SchemaNotFoundException;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
-import org.apache.shardingsphere.single.exception.DropNotEmptySchemaException;
+import 
org.apache.shardingsphere.single.exception.metadata.DropNotEmptySchemaException;
 import 
org.apache.shardingsphere.single.route.validator.SingleMetaDataValidator;
 import org.apache.shardingsphere.single.rule.SingleRule;
 import 
org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropSchemaStatement;
diff --git 
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/validator/ddl/SingleDropSchemaMetaDataValidatorTest.java
 
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/validator/ddl/SingleDropSchemaMetaDataValidatorTest.java
index 667bd5b8ea9..cfdcbd09d9f 100644
--- 
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/validator/ddl/SingleDropSchemaMetaDataValidatorTest.java
+++ 
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/validator/ddl/SingleDropSchemaMetaDataValidatorTest.java
@@ -23,7 +23,7 @@ import 
org.apache.shardingsphere.infra.exception.SchemaNotFoundException;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import org.apache.shardingsphere.single.exception.DropNotEmptySchemaException;
+import 
org.apache.shardingsphere.single.exception.metadata.DropNotEmptySchemaException;
 import org.apache.shardingsphere.single.rule.SingleRule;
 import 
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
 import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLDropSchemaStatement;
diff --git 
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/UnloadSingleTableExecutor.java
 
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/UnloadSingleTableExecutor.java
index 087e59b0af1..7eb6b06f9e2 100644
--- 
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/UnloadSingleTableExecutor.java
+++ 
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/UnloadSingleTableExecutor.java
@@ -33,7 +33,7 @@ import 
org.apache.shardingsphere.infra.rule.attribute.datanode.DataNodeRuleAttri
 import 
org.apache.shardingsphere.infra.rule.attribute.table.TableMapperRuleAttribute;
 import org.apache.shardingsphere.single.api.config.SingleRuleConfiguration;
 import 
org.apache.shardingsphere.single.distsql.statement.rdl.UnloadSingleTableStatement;
-import org.apache.shardingsphere.single.exception.SingleTableNotFoundException;
+import 
org.apache.shardingsphere.single.exception.metadata.SingleTableNotFoundException;
 import org.apache.shardingsphere.single.rule.SingleRule;
 
 import java.util.Collection;


Reply via email to