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 e89faf83cff Refactor KernelSQLException and impls (#20916)
e89faf83cff is described below
commit e89faf83cffee6d75615e2e1f3b3b0add64647f7
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Sep 11 13:28:45 2022 +0800
Refactor KernelSQLException and impls (#20916)
---
.../user-manual/error-code/sql-error-code.cn.md | 68 +++++++++++-----------
.../user-manual/error-code/sql-error-code.en.md | 68 +++++++++++-----------
.../infra/check/SQLCheckException.java | 4 +-
.../metadata/UnrecognizedDatabaseURLException.java | 4 +-
...tException.java => ConnectionSQLException.java} | 14 +++--
...sFormatException.java => DataSQLException.java} | 14 +++--
.../exception/InvalidDataNodesFormatException.java | 5 +-
...matException.java => MetaDataSQLException.java} | 14 +++--
.../OverallConnectionNotEnoughException.java | 5 +-
...ormatException.java => SyntaxSQLException.java} | 14 +++--
...eLockedException.java => LockSQLException.java} | 14 +++--
.../exception/TableLockWaitTimeoutException.java | 5 +-
.../infra/lock/exception/TableLockedException.java | 5 +-
...nsupportedActualDataNodeStructureException.java | 4 +-
...DatetimeConfigurationFileNotFoundException.java | 6 +-
.../exception/DatetimeLoadingException.java | 6 +-
.../UnsupportedDataTypeConversionException.java | 6 +-
...nsupportedStreamCharsetConversionException.java | 4 +-
.../sql/type/kernel/KernelSQLException.java | 8 ++-
.../sql/type/kernel/KernelSQLExceptionTest.java | 49 ++++++++++++++++
.../driver/DriverRegisterException.java | 6 +-
.../exception/ColumnIndexOutOfRangeException.java | 6 +-
.../exception/ColumnLabelNotFoundException.java | 6 +-
.../jdbc/exception/ConnectionClosedException.java | 6 +-
.../driver/jdbc/exception/EmptySQLException.java | 6 +-
.../JDBCTransactionAcrossDatabasesException.java | 6 +-
.../jdbc/exception/ResultSetClosedException.java | 6 +-
.../exception/CreateTableSQLGenerateException.java | 5 +-
.../exception/PipelineJobNotFoundException.java | 5 +-
...ateException.java => PipelineSQLException.java} | 14 +++--
.../exception/DropNotEmptySchemaException.java | 6 +-
.../exception/SchemaNotFoundException.java | 6 +-
.../exception/SingleTableNotFoundException.java | 6 +-
.../exception/SingleTablesLoadingException.java | 6 +-
.../UnsupportedDropCascadeTableException.java | 6 +-
.../OptimizationSQLNodeConvertException.java | 4 +-
.../SwitchTypeInTransactionException.java | 5 +-
...Exception.java => TransactionSQLException.java} | 14 +++--
.../jta/datasource/swapper/DataSourceSwapper.java | 1 +
.../XADataSourceInitializeException.java | 8 +--
.../XATransactionNestedBeginException.java} | 12 ++--
...gnedException.java => ClusterSQLException.java} | 14 +++--
.../exception/WorkIdAssignedException.java | 5 +-
.../proxy/backend/exception/FileIOException.java | 6 +-
.../backend/exception/InvalidValueException.java | 6 +-
.../exception/ResourceNotExistedException.java | 6 +-
.../backend/exception/RuleNotExistedException.java | 6 +-
.../exception/UnsupportedVariableException.java | 6 +-
.../handler/transaction/TransactionXAHandler.java | 4 +-
.../frontend/exception/CircuitBreakException.java | 4 +-
.../mysql/err/MySQLErrPacketFactoryTest.java | 2 +-
.../sql/parser/exception/SQLParsingException.java | 4 +-
52 files changed, 293 insertions(+), 227 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 279f9ae0fc2..e2d72cc48f3 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
@@ -10,43 +10,43 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
| SQL State | Vendor Code | 错误信息 |
| --------- | ----------- | ------ |
-| 01000 | 10000 | Circuit break open, the request has been ignored |
| 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\` |
| 42000 | 10003 | Unsupported SQL node conversion for SQL statement
\`%s\` |
-| HY004 | 10004 | Unsupported conversion data type \`%s\` for value
\`%s\` |
-| HY004 | 10005 | Unsupported conversion stream charset \`%s\` |
-| HY004 | 10006 | SQL String can not be NULL or empty |
-| 08000 | 10007 | Can not get %d connections one time, partition
succeed connection(%d) have released. Please consider increasing the
\`maxPoolSize\` of the data sources or decreasing the
\`max-connections-size-per-query\` in properties |
-| HY004 | 10100 | Can not register driver, reason is: %s |
-| HY000 | 10300 | Could not support variable \`%s\` |
-| HY004 | 10301 | Invalid value \`%s\` |
-| HV008 | 10302 | Column index \`%d\` is out of range |
-| 42S02 | 10303 | Can not find column label \`%s\` |
-| HY004 | 10400 | Invalid format for actual data node \`%s\` |
-| 08000 | 10500 | Connection has been closed |
-| 08000 | 10501 | Result set has been closed |
-| 42000 | 11000 | You have an error in your SQL syntax: %s |
-| 42000 | 11002 | Resource does not exist |
-| 42000 | 11003 | Rule does not exist |
-| HY000 | 11004 | File access failed, reason is: %s |
-| 25000 | 11320 | Switch transaction type failed, please terminate
the current transaction |
-| 25000 | 11321 | JDBC does not support operations across multiple
logical databases in transaction |
-| 25000 | 11322 | Failed to create \`%s\` XA data source |
-| 25000 | 11323 | Can not start new XA transaction in a active
transaction |
-| 44000 | 13000 | SQL check failed, error message: %s |
-| HY000 | 14000 | The table \`%s\` of schema \`%s\` is locked |
-| HY000 | 14001 | The table \`%s\` of schema \`%s\` lock wait
timeout of %s ms exceeded |
-| HY000 | 14010 | Can not find \`%s\` file for datetime initialize |
-| HY000 | 14011 | Load datetime from database failed, reason: %s |
-| HY000 | 15000 | Work ID assigned failed, which can not exceed 1024
|
-| HY000 | 16000 | Can not find pipeline job \`%s\` |
-| HY000 | 16001 | Failed to get DDL for table \`%s\` |
-| 42S02 | 17000 | Single table \`%s\` does not exist |
-| 42S02 | 17001 | Schema \`%s\` does not exist |
-| HY000 | 17002 | Can not load table with database name \`%s\` and
data source name \`%s\` |
-| 0A000 | 17003 | Can not drop schema \`%s\` because of contains
tables |
-| 0A000 | 17010 | DROP TABLE ... CASCADE is not supported |
+| 42000 | 10012 | Resource does not exist |
+| 42000 | 10013 | Rule does not exist |
+| HY004 | 10014 | Invalid format for actual data node \`%s\` |
+| 42S02 | 10020 | Single table \`%s\` does not exist |
+| 42S02 | 10021 | Schema \`%s\` does not exist |
+| HY000 | 10022 | Can not load table with database name \`%s\` and
data source name \`%s\` |
+| 0A000 | 10023 | Can not drop schema \`%s\` because of contains
tables |
+| HY004 | 11001 | Invalid value \`%s\` |
+| HY004 | 11005 | Unsupported conversion stream charset \`%s\` |
+| HY004 | 11006 | Unsupported conversion data type \`%s\` for value
\`%s\` |
+| 42000 | 12000 | You have an error in your SQL syntax: %s |
+| HV008 | 12002 | Column index \`%d\` is out of range |
+| 42S02 | 12003 | Can not find column label \`%s\` |
+| 0A000 | 12004 | DROP TABLE ... CASCADE is not supported |
+| HY000 | 12005 | Could not support variable \`%s\` |
+| HY004 | 12010 | SQL String can not be NULL or empty |
+| 01000 | 13000 | Circuit break open, the request has been ignored |
+| 08000 | 13001 | Can not get %d connections one time, partition
succeed connection(%d) have released. Please consider increasing the
\`maxPoolSize\` of the data sources or decreasing the
\`max-connections-size-per-query\` in properties |
+| 08000 | 13002 | Connection has been closed |
+| 08000 | 13003 | Result set has been closed |
+| HY000 | 13004 | Load datetime from database failed, reason: %s |
+| HY004 | 13010 | Can not register driver, reason is: %s |
+| 25000 | 14000 | Switch transaction type failed, please terminate
the current transaction |
+| 25000 | 14001 | Can not start new XA transaction in a active
transaction |
+| 25000 | 14002 | Failed to create \`%s\` XA data source |
+| 25000 | 14003 | JDBC does not support operations across multiple
logical databases in transaction |
+| HY000 | 15000 | The table \`%s\` of schema \`%s\` is locked |
+| HY000 | 15001 | The table \`%s\` of schema \`%s\` lock wait
timeout of \`%s\` milliseconds exceeded |
+| 44000 | 16000 | SQL check failed, error message: %s |
+| HY000 | 17000 | Work ID assigned failed, which can not exceed 1024
|
+| HY000 | 17001 | Can not find \`%s\` file for datetime initialize |
+| HY000 | 17002 | File access failed, reason is: %s |
+| HY000 | 18000 | Can not find pipeline job \`%s\` |
+| HY000 | 18001 | Failed to get DDL for table \`%s\` |
| HY000 | 20000 | Sharding algorithm class \`%s\` should be
implement \`%s\` |
| 44000 | 20001 | Can not get uniformed table structure for logic
table \`%s\`, it has different meta data of actual tables are as follows: %s |
| 42S02 | 20002 | Can not get route result, please check your
sharding rule configuration |
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 b8cc35fe547..a930668bacf 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
@@ -10,43 +10,43 @@ SQL error codes provide by standard `SQL State`, `Vendor
Code` and `Reason`, whi
| SQL State | Vendor Code | Reason |
| --------- | ----------- | ------ |
-| 01000 | 10000 | Circuit break open, the request has been ignored |
| 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\` |
| 42000 | 10003 | Unsupported SQL node conversion for SQL statement
\`%s\` |
-| HY004 | 10004 | Unsupported conversion data type \`%s\` for value
\`%s\` |
-| HY004 | 10005 | Unsupported conversion stream charset \`%s\` |
-| HY004 | 10006 | SQL String can not be NULL or empty |
-| 08000 | 10007 | Can not get %d connections one time, partition
succeed connection(%d) have released. Please consider increasing the
\`maxPoolSize\` of the data sources or decreasing the
\`max-connections-size-per-query\` in properties |
-| HY004 | 10100 | Can not register driver, reason is: %s |
-| HY000 | 10300 | Could not support variable \`%s\` |
-| HY004 | 10301 | Invalid value \`%s\` |
-| HV008 | 10302 | Column index \`%d\` is out of range |
-| 42S02 | 10303 | Can not find column label \`%s\` |
-| HY004 | 10400 | Invalid format for actual data node \`%s\` |
-| 08000 | 10500 | Connection has been closed |
-| 08000 | 10501 | Result set has been closed |
-| 42000 | 11000 | You have an error in your SQL syntax: %s |
-| 42000 | 11002 | Resource does not exist |
-| 42000 | 11003 | Rule does not exist |
-| HY000 | 11004 | File access failed, reason is: %s |
-| 25000 | 11320 | Switch transaction type failed, please terminate
the current transaction |
-| 25000 | 11321 | JDBC does not support operations across multiple
logical databases in transaction |
-| 25000 | 11322 | Failed to create \`%s\` XA data source |
-| 25000 | 11323 | Can not start new XA transaction in a active
transaction |
-| 44000 | 13000 | SQL check failed, error message: %s |
-| HY000 | 14000 | The table \`%s\` of schema \`%s\` is locked |
-| HY000 | 14001 | The table \`%s\` of schema \`%s\` lock wait
timeout of %s ms exceeded |
-| HY000 | 14010 | Can not find \`%s\` file for datetime initialize |
-| HY000 | 14011 | Load datetime from database failed, reason: %s |
-| HY000 | 15000 | Work ID assigned failed, which can not exceed 1024
|
-| HY000 | 16000 | Can not find pipeline job \`%s\` |
-| HY000 | 16001 | Failed to get DDL for table \`%s\` |
-| 42S02 | 17000 | Single table \`%s\` does not exist |
-| 42S02 | 17001 | Schema \`%s\` does not exist |
-| HY000 | 17002 | Can not load table with database name \`%s\` and
data source name \`%s\` |
-| 0A000 | 17003 | Can not drop schema \`%s\` because of contains
tables |
-| 0A000 | 17010 | DROP TABLE ... CASCADE is not supported |
+| 42000 | 10012 | Resource does not exist |
+| 42000 | 10013 | Rule does not exist |
+| HY004 | 10014 | Invalid format for actual data node \`%s\` |
+| 42S02 | 10020 | Single table \`%s\` does not exist |
+| 42S02 | 10021 | Schema \`%s\` does not exist |
+| HY000 | 10022 | Can not load table with database name \`%s\` and
data source name \`%s\` |
+| 0A000 | 10023 | Can not drop schema \`%s\` because of contains
tables |
+| HY004 | 11001 | Invalid value \`%s\` |
+| HY004 | 11005 | Unsupported conversion stream charset \`%s\` |
+| HY004 | 11006 | Unsupported conversion data type \`%s\` for value
\`%s\` |
+| 42000 | 12000 | You have an error in your SQL syntax: %s |
+| HV008 | 12002 | Column index \`%d\` is out of range |
+| 42S02 | 12003 | Can not find column label \`%s\` |
+| 0A000 | 12004 | DROP TABLE ... CASCADE is not supported |
+| HY000 | 12005 | Could not support variable \`%s\` |
+| HY004 | 12010 | SQL String can not be NULL or empty |
+| 01000 | 13000 | Circuit break open, the request has been ignored |
+| 08000 | 13001 | Can not get %d connections one time, partition
succeed connection(%d) have released. Please consider increasing the
\`maxPoolSize\` of the data sources or decreasing the
\`max-connections-size-per-query\` in properties |
+| 08000 | 13002 | Connection has been closed |
+| 08000 | 13003 | Result set has been closed |
+| HY000 | 13004 | Load datetime from database failed, reason: %s |
+| HY004 | 13010 | Can not register driver, reason is: %s |
+| 25000 | 14000 | Switch transaction type failed, please terminate
the current transaction |
+| 25000 | 14001 | Can not start new XA transaction in a active
transaction |
+| 25000 | 14002 | Failed to create \`%s\` XA data source |
+| 25000 | 14003 | JDBC does not support operations across multiple
logical databases in transaction |
+| HY000 | 15000 | The table \`%s\` of schema \`%s\` is locked |
+| HY000 | 15001 | The table \`%s\` of schema \`%s\` lock wait
timeout of \`%s\` milliseconds exceeded |
+| 44000 | 16000 | SQL check failed, error message: %s |
+| HY000 | 17000 | Work ID assigned failed, which can not exceed 1024
|
+| HY000 | 17001 | Can not find \`%s\` file for datetime initialize |
+| HY000 | 17002 | File access failed, reason is: %s |
+| HY000 | 18000 | Can not find pipeline job \`%s\` |
+| HY000 | 18001 | Failed to get DDL for table \`%s\` |
| HY000 | 20000 | Sharding algorithm class \`%s\` should be
implement \`%s\` |
| 44000 | 20001 | Can not get uniformed table structure for logic
table \`%s\`, it has different meta data of actual tables are as follows: %s |
| 42S02 | 20002 | Can not get route result, please check your
sharding rule configuration |
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/check/SQLCheckException.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/check/SQLCheckException.java
index 225aa7d21ba..c35035b83c5 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/check/SQLCheckException.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/check/SQLCheckException.java
@@ -27,7 +27,9 @@ public final class SQLCheckException extends
KernelSQLException {
private static final long serialVersionUID = 4183020614721058122L;
+ private static final int KERNEL_CODE = 6;
+
public SQLCheckException(final String errorMessage) {
- super(XOpenSQLState.CHECK_OPTION_VIOLATION, 3000, "SQL check failed,
error message: %s", errorMessage);
+ super(XOpenSQLState.CHECK_OPTION_VIOLATION, KERNEL_CODE, 0, "SQL check
failed, error message: %s", errorMessage);
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/metadata/UnrecognizedDatabaseURLException.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/metadata/UnrecognizedDatabaseURLException.java
index 4898af3d38b..535716721cc 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/metadata/UnrecognizedDatabaseURLException.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/metadata/UnrecognizedDatabaseURLException.java
@@ -17,13 +17,13 @@
package org.apache.shardingsphere.infra.database.metadata;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.MetaDataSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Unrecognized database URL exception.
*/
-public final class UnrecognizedDatabaseURLException extends KernelSQLException
{
+public final class UnrecognizedDatabaseURLException extends
MetaDataSQLException {
private static final long serialVersionUID = -1551117178863766353L;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/ConnectionSQLException.java
similarity index 69%
copy from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
copy to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/ConnectionSQLException.java
index 71b3c3c2767..6f84e85e7b9 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/ConnectionSQLException.java
@@ -17,17 +17,19 @@
package org.apache.shardingsphere.infra.exception;
+import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.SQLState;
import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
- * Invalid data nodes format exception.
+ * Connection SQL exception.
*/
-public final class InvalidDataNodesFormatException extends KernelSQLException {
+public abstract class ConnectionSQLException extends KernelSQLException {
- private static final long serialVersionUID = 192279170808654743L;
+ private static final long serialVersionUID = -8121891030054008537L;
- public InvalidDataNodesFormatException(final String dataNode) {
- super(XOpenSQLState.INVALID_DATA_TYPE, 400, "Invalid format for actual
data node `%s`", dataNode);
+ private static final int KERNEL_CODE = 3;
+
+ public ConnectionSQLException(final SQLState sqlState, final int
errorCode, final String reason, final Object... messageArguments) {
+ super(sqlState, KERNEL_CODE, errorCode, reason, messageArguments);
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/DataSQLException.java
similarity index 70%
copy from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
copy to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/DataSQLException.java
index 71b3c3c2767..a5d776eb639 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/DataSQLException.java
@@ -17,17 +17,19 @@
package org.apache.shardingsphere.infra.exception;
+import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.SQLState;
import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
- * Invalid data nodes format exception.
+ * Data SQL exception.
*/
-public final class InvalidDataNodesFormatException extends KernelSQLException {
+public abstract class DataSQLException extends KernelSQLException {
- private static final long serialVersionUID = 192279170808654743L;
+ private static final long serialVersionUID = -3442297815489000345L;
- public InvalidDataNodesFormatException(final String dataNode) {
- super(XOpenSQLState.INVALID_DATA_TYPE, 400, "Invalid format for actual
data node `%s`", dataNode);
+ private static final int KERNEL_CODE = 1;
+
+ public DataSQLException(final SQLState sqlState, final int errorCode,
final String reason, final Object... messageArguments) {
+ super(sqlState, KERNEL_CODE, errorCode, reason, messageArguments);
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
index 71b3c3c2767..5369fdd7b53 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
@@ -17,17 +17,16 @@
package org.apache.shardingsphere.infra.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Invalid data nodes format exception.
*/
-public final class InvalidDataNodesFormatException extends KernelSQLException {
+public final class InvalidDataNodesFormatException extends
MetaDataSQLException {
private static final long serialVersionUID = 192279170808654743L;
public InvalidDataNodesFormatException(final String dataNode) {
- super(XOpenSQLState.INVALID_DATA_TYPE, 400, "Invalid format for actual
data node `%s`", dataNode);
+ super(XOpenSQLState.INVALID_DATA_TYPE, 14, "Invalid format for actual
data node `%s`", dataNode);
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/MetaDataSQLException.java
similarity index 69%
copy from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
copy to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/MetaDataSQLException.java
index 71b3c3c2767..130c503ea09 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/MetaDataSQLException.java
@@ -17,17 +17,19 @@
package org.apache.shardingsphere.infra.exception;
+import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.SQLState;
import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
- * Invalid data nodes format exception.
+ * Meta data SQL exception.
*/
-public final class InvalidDataNodesFormatException extends KernelSQLException {
+public abstract class MetaDataSQLException extends KernelSQLException {
- private static final long serialVersionUID = 192279170808654743L;
+ private static final long serialVersionUID = 884884613851959565L;
- public InvalidDataNodesFormatException(final String dataNode) {
- super(XOpenSQLState.INVALID_DATA_TYPE, 400, "Invalid format for actual
data node `%s`", dataNode);
+ private static final int KERNEL_CODE = 0;
+
+ public MetaDataSQLException(final SQLState sqlState, final int errorCode,
final String reason, final Object... messageArguments) {
+ super(sqlState, KERNEL_CODE, errorCode, reason, messageArguments);
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/OverallConnectionNotEnoughException.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/OverallConnectionNotEnoughException.java
index ecc77c04abd..4d74007de8a 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/OverallConnectionNotEnoughException.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/OverallConnectionNotEnoughException.java
@@ -17,18 +17,17 @@
package org.apache.shardingsphere.infra.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Overall connection not enough exception.
*/
-public final class OverallConnectionNotEnoughException extends
KernelSQLException {
+public final class OverallConnectionNotEnoughException extends
ConnectionSQLException {
private static final long serialVersionUID = -1297088138042287804L;
public OverallConnectionNotEnoughException(final int desiredSize, final
int actualSize) {
- super(XOpenSQLState.CONNECTION_EXCEPTION, 7, "Can not get %d
connections one time, partition succeed connection(%d) have released. "
+ super(XOpenSQLState.CONNECTION_EXCEPTION, 1, "Can not get %d
connections one time, partition succeed connection(%d) have released. "
+ "Please consider increasing the `maxPoolSize` of the data
sources or decreasing the `max-connections-size-per-query` in properties",
desiredSize, actualSize);
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/SyntaxSQLException.java
similarity index 70%
copy from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
copy to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/SyntaxSQLException.java
index 71b3c3c2767..6f046dc4528 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/InvalidDataNodesFormatException.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/SyntaxSQLException.java
@@ -17,17 +17,19 @@
package org.apache.shardingsphere.infra.exception;
+import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.SQLState;
import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
- * Invalid data nodes format exception.
+ * Syntax SQL exception.
*/
-public final class InvalidDataNodesFormatException extends KernelSQLException {
+public abstract class SyntaxSQLException extends KernelSQLException {
- private static final long serialVersionUID = 192279170808654743L;
+ private static final long serialVersionUID = -895529952047297716L;
- public InvalidDataNodesFormatException(final String dataNode) {
- super(XOpenSQLState.INVALID_DATA_TYPE, 400, "Invalid format for actual
data node `%s`", dataNode);
+ private static final int KERNEL_CODE = 2;
+
+ public SyntaxSQLException(final SQLState sqlState, final int errorCode,
final String reason, final Object... messageArguments) {
+ super(sqlState, KERNEL_CODE, errorCode, reason, messageArguments);
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/exception/TableLockedException.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/exception/LockSQLException.java
similarity index 69%
copy from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/exception/TableLockedException.java
copy to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/exception/LockSQLException.java
index 8b0490c01f6..530e7c9a62a 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/exception/TableLockedException.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/exception/LockSQLException.java
@@ -17,17 +17,19 @@
package org.apache.shardingsphere.infra.lock.exception;
+import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.SQLState;
import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
- * Table locked exception.
+ * Lock SQL exception.
*/
-public final class TableLockedException extends KernelSQLException {
+public abstract class LockSQLException extends KernelSQLException {
- private static final long serialVersionUID = 2622020743612706932L;
+ private static final long serialVersionUID = 7889797502163128147L;
- public TableLockedException(final String databaseName, final String
schemaName, final String tableNames) {
- super(XOpenSQLState.GENERAL_ERROR, 4000, "The table `%s` of schema
`%s` is locked in database `%s`", tableNames, schemaName, databaseName);
+ private static final int KERNEL_CODE = 5;
+
+ public LockSQLException(final SQLState sqlState, final int errorCode,
final String reason, final Object... messageArguments) {
+ super(sqlState, KERNEL_CODE, errorCode, reason, messageArguments);
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/exception/TableLockWaitTimeoutException.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/exception/TableLockWaitTimeoutException.java
index 412de1507a8..44efedbe1ff 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/exception/TableLockWaitTimeoutException.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/exception/TableLockWaitTimeoutException.java
@@ -17,17 +17,16 @@
package org.apache.shardingsphere.infra.lock.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Table lock wait timeout exception.
*/
-public final class TableLockWaitTimeoutException extends KernelSQLException {
+public final class TableLockWaitTimeoutException extends LockSQLException {
private static final long serialVersionUID = 2599713085782288003L;
public TableLockWaitTimeoutException(final String schemaName, final String
tableName, final long timeoutMilliseconds) {
- super(XOpenSQLState.GENERAL_ERROR, 4001, "The table `%s` of schema
`%s` lock wait timeout of %s ms exceeded", tableName, schemaName,
String.valueOf(timeoutMilliseconds));
+ super(XOpenSQLState.GENERAL_ERROR, 1, "The table `%s` of schema `%s`
lock wait timeout of `%s` milliseconds exceeded", tableName, schemaName,
String.valueOf(timeoutMilliseconds));
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/exception/TableLockedException.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/exception/TableLockedException.java
index 8b0490c01f6..f877283a9b7 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/exception/TableLockedException.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/exception/TableLockedException.java
@@ -17,17 +17,16 @@
package org.apache.shardingsphere.infra.lock.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Table locked exception.
*/
-public final class TableLockedException extends KernelSQLException {
+public final class TableLockedException extends LockSQLException {
private static final long serialVersionUID = 2622020743612706932L;
public TableLockedException(final String databaseName, final String
schemaName, final String tableNames) {
- super(XOpenSQLState.GENERAL_ERROR, 4000, "The table `%s` of schema
`%s` is locked in database `%s`", tableNames, schemaName, databaseName);
+ super(XOpenSQLState.GENERAL_ERROR, 0, "The table `%s` of schema `%s`
is locked in database `%s`", tableNames, schemaName, databaseName);
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/exception/UnsupportedActualDataNodeStructureException.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/exception/UnsupportedActualDataNodeStructureException.java
index 5a0db5592a2..412a2d81e57 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/exception/UnsupportedActualDataNodeStructureException.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/exception/UnsupportedActualDataNodeStructureException.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.infra.metadata.database.schema.exception;
import org.apache.shardingsphere.infra.datanode.DataNode;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.MetaDataSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
import java.util.Collection;
@@ -26,7 +26,7 @@ import java.util.Collection;
/**
* Unsupported actual data node structure exception.
*/
-public final class UnsupportedActualDataNodeStructureException extends
KernelSQLException {
+public final class UnsupportedActualDataNodeStructureException extends
MetaDataSQLException {
private static final long serialVersionUID = -8921823916974492519L;
diff --git
a/shardingsphere-infra/shardingsphere-infra-datetime/shardingsphere-infra-datetime-type/shardingsphere-database-datetime/src/main/java/org/apache/shardingsphere/datetime/database/exception/DatetimeConfigurationFileNotFoundException.java
b/shardingsphere-infra/shardingsphere-infra-datetime/shardingsphere-infra-datetime-type/shardingsphere-database-datetime/src/main/java/org/apache/shardingsphere/datetime/database/exception/DatetimeConfigurationFileNotFoundException.java
index 36ecfaa85de..546a530f62f 100644
---
a/shardingsphere-infra/shardingsphere-infra-datetime/shardingsphere-infra-datetime-type/shardingsphere-database-datetime/src/main/java/org/apache/shardingsphere/datetime/database/exception/DatetimeConfigurationFileNotFoundException.java
+++
b/shardingsphere-infra/shardingsphere-infra-datetime/shardingsphere-infra-datetime-type/shardingsphere-database-datetime/src/main/java/org/apache/shardingsphere/datetime/database/exception/DatetimeConfigurationFileNotFoundException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.datetime.database.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
+import
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.workerid.exception.ClusterSQLException;
/**
* Datetime configuration file not found exception.
*/
-public final class DatetimeConfigurationFileNotFoundException extends
KernelSQLException {
+public final class DatetimeConfigurationFileNotFoundException extends
ClusterSQLException {
private static final long serialVersionUID = 4820838154441059833L;
public DatetimeConfigurationFileNotFoundException(final String
configurationFile) {
- super(XOpenSQLState.GENERAL_ERROR, 4010, "Can not find `%s` file for
datetime initialize", configurationFile);
+ super(XOpenSQLState.GENERAL_ERROR, 2, "Can not find `%s` file for
datetime initialize", configurationFile);
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-datetime/shardingsphere-infra-datetime-type/shardingsphere-database-datetime/src/main/java/org/apache/shardingsphere/datetime/database/exception/DatetimeLoadingException.java
b/shardingsphere-infra/shardingsphere-infra-datetime/shardingsphere-infra-datetime-type/shardingsphere-database-datetime/src/main/java/org/apache/shardingsphere/datetime/database/exception/DatetimeLoadingException.java
index 7447c4448c4..77fd46f23db 100644
---
a/shardingsphere-infra/shardingsphere-infra-datetime/shardingsphere-infra-datetime-type/shardingsphere-database-datetime/src/main/java/org/apache/shardingsphere/datetime/database/exception/DatetimeLoadingException.java
+++
b/shardingsphere-infra/shardingsphere-infra-datetime/shardingsphere-infra-datetime-type/shardingsphere-database-datetime/src/main/java/org/apache/shardingsphere/datetime/database/exception/DatetimeLoadingException.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.datetime.database.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.ConnectionSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
import java.sql.SQLException;
@@ -25,11 +25,11 @@ import java.sql.SQLException;
/**
* Datetime loading exception.
*/
-public final class DatetimeLoadingException extends KernelSQLException {
+public final class DatetimeLoadingException extends ConnectionSQLException {
private static final long serialVersionUID = 7844267165522132993L;
public DatetimeLoadingException(final SQLException cause) {
- super(XOpenSQLState.GENERAL_ERROR, 4011, "Load datetime from database
failed, reason: %s", cause.getMessage());
+ super(XOpenSQLState.GENERAL_ERROR, 4, "Load datetime from database
failed, reason: %s", cause.getMessage());
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/exception/UnsupportedDataTypeConversionException.java
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/exception/UnsupportedDataTypeConversionException.java
index 9a02c10e8ca..1b8c3ab28af 100644
---
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/exception/UnsupportedDataTypeConversionException.java
+++
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/exception/UnsupportedDataTypeConversionException.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.infra.executor.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.DataSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
import java.util.Objects;
@@ -25,11 +25,11 @@ import java.util.Objects;
/**
* Unsupported data type conversion exception.
*/
-public final class UnsupportedDataTypeConversionException extends
KernelSQLException {
+public final class UnsupportedDataTypeConversionException extends
DataSQLException {
private static final long serialVersionUID = 4808672149254705863L;
public UnsupportedDataTypeConversionException(final Class<?> convertType,
final Object value) {
- super(XOpenSQLState.INVALID_DATA_TYPE, 4, "Unsupported conversion data
type `%s` for value `%s`", convertType.getName(), Objects.toString(value));
+ super(XOpenSQLState.INVALID_DATA_TYPE, 6, "Unsupported conversion data
type `%s` for value `%s`", convertType.getName(), Objects.toString(value));
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/exception/UnsupportedStreamCharsetConversionException.java
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/exception/UnsupportedStreamCharsetConversionException.java
index a16d66e20e1..9a9e45d5e81 100644
---
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/exception/UnsupportedStreamCharsetConversionException.java
+++
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/exception/UnsupportedStreamCharsetConversionException.java
@@ -17,13 +17,13 @@
package org.apache.shardingsphere.infra.executor.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.DataSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Unsupported stream charset conversion exception.
*/
-public final class UnsupportedStreamCharsetConversionException extends
KernelSQLException {
+public final class UnsupportedStreamCharsetConversionException extends
DataSQLException {
private static final long serialVersionUID = 4577091201937095156L;
diff --git
a/shardingsphere-infra/shardingsphere-infra-util/src/main/java/org/apache/shardingsphere/infra/util/exception/external/sql/type/kernel/KernelSQLException.java
b/shardingsphere-infra/shardingsphere-infra-util/src/main/java/org/apache/shardingsphere/infra/util/exception/external/sql/type/kernel/KernelSQLException.java
index 8dd25395f1f..9992414d030 100644
---
a/shardingsphere-infra/shardingsphere-infra-util/src/main/java/org/apache/shardingsphere/infra/util/exception/external/sql/type/kernel/KernelSQLException.java
+++
b/shardingsphere-infra/shardingsphere-infra-util/src/main/java/org/apache/shardingsphere/infra/util/exception/external/sql/type/kernel/KernelSQLException.java
@@ -29,7 +29,11 @@ public abstract class KernelSQLException extends
ShardingSphereSQLException {
private static final int TYPE_OFFSET = 1;
- public KernelSQLException(final SQLState sqlState, final int errorCode,
final String reason, final Object... messageArguments) {
- super(sqlState, TYPE_OFFSET, errorCode, reason, messageArguments);
+ public KernelSQLException(final SQLState sqlState, final int kernelCode,
final int errorCode, final String reason, final Object... messageArguments) {
+ super(sqlState, TYPE_OFFSET, generateErrorCode(kernelCode, errorCode),
reason, messageArguments);
+ }
+
+ private static int generateErrorCode(final int kernelCode, final int
errorCode) {
+ return (kernelCode < 10 ? kernelCode * 1000 : kernelCode * 100) +
errorCode;
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-util/src/test/java/org/apache/shardingsphere/infra/util/exception/external/sql/type/kernel/KernelSQLExceptionTest.java
b/shardingsphere-infra/shardingsphere-infra-util/src/test/java/org/apache/shardingsphere/infra/util/exception/external/sql/type/kernel/KernelSQLExceptionTest.java
new file mode 100644
index 00000000000..dac6f4c837f
--- /dev/null
+++
b/shardingsphere-infra/shardingsphere-infra-util/src/test/java/org/apache/shardingsphere/infra/util/exception/external/sql/type/kernel/KernelSQLExceptionTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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.infra.util.exception.external.sql.type.kernel;
+
+import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
+import org.junit.Test;
+
+import java.sql.SQLException;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+public final class KernelSQLExceptionTest {
+
+ @SuppressWarnings("serial")
+ @Test
+ public void
assertNewKernelSQLExceptionSQLExceptionWithSingleDigitalForKernelCode() {
+ SQLException actual = new
KernelSQLException(XOpenSQLState.GENERAL_ERROR, 1, 1, "reason") {
+ }.toSQLException();
+ assertThat(actual.getSQLState(),
is(XOpenSQLState.GENERAL_ERROR.getValue()));
+ assertThat(actual.getErrorCode(), is(11001));
+ assertThat(actual.getMessage(), is("reason"));
+ }
+
+ @SuppressWarnings("serial")
+ @Test
+ public void
assertNewKernelSQLExceptionSQLExceptionWithDoubleDigitalForKernelCode() {
+ SQLException actual = new
KernelSQLException(XOpenSQLState.GENERAL_ERROR, 99, 10, "reason") {
+ }.toSQLException();
+ assertThat(actual.getSQLState(),
is(XOpenSQLState.GENERAL_ERROR.getValue()));
+ assertThat(actual.getErrorCode(), is(19910));
+ assertThat(actual.getMessage(), is("reason"));
+ }
+}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/DriverRegisterException.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/DriverRegisterException.java
index d257b9fd464..d73018db73c 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/DriverRegisterException.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/DriverRegisterException.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.driver;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.ConnectionSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
import java.sql.SQLException;
@@ -25,11 +25,11 @@ import java.sql.SQLException;
/**
* Driver register exception.
*/
-public final class DriverRegisterException extends KernelSQLException {
+public final class DriverRegisterException extends ConnectionSQLException {
private static final long serialVersionUID = -8091239932993280564L;
public DriverRegisterException(final SQLException cause) {
- super(XOpenSQLState.GENERAL_ERROR, 100, "Can not register driver,
reason is: %s", cause.getMessage());
+ super(XOpenSQLState.GENERAL_ERROR, 10, "Can not register driver,
reason is: %s", cause.getMessage());
}
}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ColumnIndexOutOfRangeException.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ColumnIndexOutOfRangeException.java
index 07a3d049a4f..41617a78b7a 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ColumnIndexOutOfRangeException.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ColumnIndexOutOfRangeException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.driver.jdbc.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.SyntaxSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Column index out of range exception.
*/
-public final class ColumnIndexOutOfRangeException extends KernelSQLException {
+public final class ColumnIndexOutOfRangeException extends SyntaxSQLException {
private static final long serialVersionUID = 3599337605134702447L;
public ColumnIndexOutOfRangeException(final int columnIndex) {
- super(XOpenSQLState.INVALID_COLUMN_NUMBER, 302, "Column index `%d` is
out of range", columnIndex);
+ super(XOpenSQLState.INVALID_COLUMN_NUMBER, 2, "Column index `%d` is
out of range", columnIndex);
}
}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ColumnLabelNotFoundException.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ColumnLabelNotFoundException.java
index 04617cfde51..c2ea9a61804 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ColumnLabelNotFoundException.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ColumnLabelNotFoundException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.driver.jdbc.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.SyntaxSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Column label not found exception.
*/
-public final class ColumnLabelNotFoundException extends KernelSQLException {
+public final class ColumnLabelNotFoundException extends SyntaxSQLException {
private static final long serialVersionUID = -4634399403612501335L;
public ColumnLabelNotFoundException(final String columnLabel) {
- super(XOpenSQLState.NOT_FOUND, 303, "Can not find column label `%s`",
columnLabel);
+ super(XOpenSQLState.NOT_FOUND, 3, "Can not find column label `%s`",
columnLabel);
}
}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ConnectionClosedException.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ConnectionClosedException.java
index eae50d4a0f6..803dc65dd8a 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ConnectionClosedException.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ConnectionClosedException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.driver.jdbc.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.ConnectionSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Connection closed exception.
*/
-public final class ConnectionClosedException extends KernelSQLException {
+public final class ConnectionClosedException extends ConnectionSQLException {
private static final long serialVersionUID = 8667898851939815681L;
public ConnectionClosedException() {
- super(XOpenSQLState.CONNECTION_EXCEPTION, 500, "Connection has been
closed");
+ super(XOpenSQLState.CONNECTION_EXCEPTION, 2, "Connection has been
closed");
}
}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/EmptySQLException.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/EmptySQLException.java
index f3a4538492e..986c0334325 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/EmptySQLException.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/EmptySQLException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.driver.jdbc.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.SyntaxSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Empty SQL exception.
*/
-public final class EmptySQLException extends KernelSQLException {
+public final class EmptySQLException extends SyntaxSQLException {
private static final long serialVersionUID = -5723825491720138339L;
public EmptySQLException() {
- super(XOpenSQLState.GENERAL_ERROR, 6, "SQL String can not be NULL or
empty");
+ super(XOpenSQLState.GENERAL_ERROR, 10, "SQL String can not be NULL or
empty");
}
}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/JDBCTransactionAcrossDatabasesException.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/JDBCTransactionAcrossDatabasesException.java
index 4746667eb4f..24a80a061d1 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/JDBCTransactionAcrossDatabasesException.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/JDBCTransactionAcrossDatabasesException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.driver.jdbc.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
+import org.apache.shardingsphere.transaction.exception.TransactionSQLException;
/**
* JDBC transaction across databases exception.
*/
-public final class JDBCTransactionAcrossDatabasesException extends
KernelSQLException {
+public final class JDBCTransactionAcrossDatabasesException extends
TransactionSQLException {
private static final long serialVersionUID = 3294968323117604702L;
public JDBCTransactionAcrossDatabasesException() {
- super(XOpenSQLState.INVALID_TRANSACTION_STATE, 1321, "JDBC does not
support operations across multiple logical databases in transaction");
+ super(XOpenSQLState.INVALID_TRANSACTION_STATE, 3, "JDBC does not
support operations across multiple logical databases in transaction");
}
}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ResultSetClosedException.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ResultSetClosedException.java
index e75a3a6c604..997f5b9590a 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ResultSetClosedException.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/ResultSetClosedException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.driver.jdbc.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.ConnectionSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Result set closed exception.
*/
-public final class ResultSetClosedException extends KernelSQLException {
+public final class ResultSetClosedException extends ConnectionSQLException {
private static final long serialVersionUID = 3931974854134322934L;
public ResultSetClosedException() {
- super(XOpenSQLState.CONNECTION_EXCEPTION, 501, "Result set has been
closed");
+ super(XOpenSQLState.CONNECTION_EXCEPTION, 3, "Result set has been
closed");
}
}
diff --git
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/exception/CreateTableSQLGenerateException.java
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/exception/CreateTableSQLGenerateException.java
index 50f0c0a9290..e5fe14a5e74 100644
---
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/exception/CreateTableSQLGenerateException.java
+++
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/exception/CreateTableSQLGenerateException.java
@@ -17,17 +17,16 @@
package org.apache.shardingsphere.data.pipeline.core.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Create table SQL generate exception.
*/
-public final class CreateTableSQLGenerateException extends KernelSQLException {
+public final class CreateTableSQLGenerateException extends
PipelineSQLException {
private static final long serialVersionUID = -219467568498936298L;
public CreateTableSQLGenerateException(final String tableName) {
- super(XOpenSQLState.GENERAL_ERROR, 6001, "Failed to get DDL for table
`%s`", tableName);
+ super(XOpenSQLState.GENERAL_ERROR, 1, "Failed to get DDL for table
`%s`", tableName);
}
}
diff --git
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/exception/PipelineJobNotFoundException.java
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/exception/PipelineJobNotFoundException.java
index 5954c2ec030..0471f374841 100644
---
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/exception/PipelineJobNotFoundException.java
+++
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/exception/PipelineJobNotFoundException.java
@@ -17,17 +17,16 @@
package org.apache.shardingsphere.data.pipeline.core.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Pipeline job not found exception.
*/
-public final class PipelineJobNotFoundException extends KernelSQLException {
+public final class PipelineJobNotFoundException extends PipelineSQLException {
private static final long serialVersionUID = -903289953649758722L;
public PipelineJobNotFoundException(final String jobId) {
- super(XOpenSQLState.GENERAL_ERROR, 6000, "Can not find pipeline job
`%s`", jobId);
+ super(XOpenSQLState.GENERAL_ERROR, 0, "Can not find pipeline job
`%s`", jobId);
}
}
diff --git
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/exception/CreateTableSQLGenerateException.java
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/exception/PipelineSQLException.java
similarity index 70%
copy from
shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/exception/CreateTableSQLGenerateException.java
copy to
shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/exception/PipelineSQLException.java
index 50f0c0a9290..0126ee4c20c 100644
---
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/exception/CreateTableSQLGenerateException.java
+++
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/exception/PipelineSQLException.java
@@ -17,17 +17,19 @@
package org.apache.shardingsphere.data.pipeline.core.exception;
+import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.SQLState;
import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
- * Create table SQL generate exception.
+ * Pipeline SQL exception.
*/
-public final class CreateTableSQLGenerateException extends KernelSQLException {
+public abstract class PipelineSQLException extends KernelSQLException {
- private static final long serialVersionUID = -219467568498936298L;
+ private static final long serialVersionUID = 139616805450096292L;
- public CreateTableSQLGenerateException(final String tableName) {
- super(XOpenSQLState.GENERAL_ERROR, 6001, "Failed to get DDL for table
`%s`", tableName);
+ private static final int KERNEL_CODE = 8;
+
+ public PipelineSQLException(final SQLState sqlState, final int errorCode,
final String reason, final Object... messageArguments) {
+ super(sqlState, KERNEL_CODE, errorCode, reason, messageArguments);
}
}
diff --git
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/DropNotEmptySchemaException.java
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/DropNotEmptySchemaException.java
index d0acc8ff46e..3f76d58d491 100644
---
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/DropNotEmptySchemaException.java
+++
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/DropNotEmptySchemaException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.singletable.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.MetaDataSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Drop not empty schema exception.
*/
-public final class DropNotEmptySchemaException extends KernelSQLException {
+public final class DropNotEmptySchemaException extends MetaDataSQLException {
private static final long serialVersionUID = 5285619119572894557L;
public DropNotEmptySchemaException(final String schemaName) {
- super(XOpenSQLState.FEATURE_NOT_SUPPORTED, 7003, "Can not drop schema
`%s` because of contains tables", schemaName);
+ super(XOpenSQLState.FEATURE_NOT_SUPPORTED, 23, "Can not drop schema
`%s` because of contains tables", schemaName);
}
}
diff --git
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/SchemaNotFoundException.java
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/SchemaNotFoundException.java
index 86efd89808d..5c2825b22b3 100644
---
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/SchemaNotFoundException.java
+++
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/SchemaNotFoundException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.singletable.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.MetaDataSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Schema not found exception.
*/
-public final class SchemaNotFoundException extends KernelSQLException {
+public final class SchemaNotFoundException extends MetaDataSQLException {
private static final long serialVersionUID = 2722045034640737328L;
public SchemaNotFoundException(final String schemaName) {
- super(XOpenSQLState.NOT_FOUND, 7001, "Schema `%s` does not exist",
schemaName);
+ super(XOpenSQLState.NOT_FOUND, 21, "Schema `%s` does not exist",
schemaName);
}
}
diff --git
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/SingleTableNotFoundException.java
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/SingleTableNotFoundException.java
index 056df55e54a..2d8705d9595 100644
---
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/SingleTableNotFoundException.java
+++
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/SingleTableNotFoundException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.singletable.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.MetaDataSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Single table not found exception.
*/
-public final class SingleTableNotFoundException extends KernelSQLException {
+public final class SingleTableNotFoundException extends MetaDataSQLException {
private static final long serialVersionUID = 3498790429190415298L;
public SingleTableNotFoundException(final String tableName) {
- super(XOpenSQLState.NOT_FOUND, 7000, "Single table `%s` does not
exist", tableName);
+ super(XOpenSQLState.NOT_FOUND, 20, "Single table `%s` does not exist",
tableName);
}
}
diff --git
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/SingleTablesLoadingException.java
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/SingleTablesLoadingException.java
index f1c10b7e0c1..1b1af3dccc6 100644
---
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/SingleTablesLoadingException.java
+++
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/SingleTablesLoadingException.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.singletable.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.MetaDataSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
import java.sql.SQLException;
@@ -25,11 +25,11 @@ import java.sql.SQLException;
/**
* Single tables loading exception.
*/
-public final class SingleTablesLoadingException extends KernelSQLException {
+public final class SingleTablesLoadingException extends MetaDataSQLException {
private static final long serialVersionUID = 698261896187918188L;
public SingleTablesLoadingException(final String databaseName, final
String dataSourceName, final SQLException cause) {
- super(XOpenSQLState.GENERAL_ERROR, 7002, "Can not load table with
database name `%s` and data source name `%s`, reason is: %s", databaseName,
dataSourceName, cause.getMessage());
+ 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());
}
}
diff --git
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/UnsupportedDropCascadeTableException.java
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/UnsupportedDropCascadeTableException.java
index dc61e696ab6..9b0803f188a 100644
---
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/UnsupportedDropCascadeTableException.java
+++
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/main/java/org/apache/shardingsphere/singletable/exception/UnsupportedDropCascadeTableException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.singletable.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.SyntaxSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Unsupported drop cascade table exception.
*/
-public final class UnsupportedDropCascadeTableException extends
KernelSQLException {
+public final class UnsupportedDropCascadeTableException extends
SyntaxSQLException {
private static final long serialVersionUID = -5995575055241171117L;
public UnsupportedDropCascadeTableException() {
- super(XOpenSQLState.FEATURE_NOT_SUPPORTED, 7010, "DROP TABLE ...
CASCADE is not supported");
+ super(XOpenSQLState.FEATURE_NOT_SUPPORTED, 4, "DROP TABLE ... CASCADE
is not supported");
}
}
diff --git
a/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/exception/OptimizationSQLNodeConvertException.java
b/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/exception/OptimizationSQLNodeConvertException.java
index 892a58ed479..8edae77de35 100644
---
a/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/exception/OptimizationSQLNodeConvertException.java
+++
b/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/exception/OptimizationSQLNodeConvertException.java
@@ -17,14 +17,14 @@
package org.apache.shardingsphere.sqlfederation.optimizer.converter.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.MetaDataSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
/**
* Optimization SQL node convert exception.
*/
-public final class OptimizationSQLNodeConvertException extends
KernelSQLException {
+public final class OptimizationSQLNodeConvertException extends
MetaDataSQLException {
private static final long serialVersionUID = -5486229929620713984L;
diff --git
a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/exception/SwitchTypeInTransactionException.java
b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/exception/SwitchTypeInTransactionException.java
index fe5a3a2c54a..d613b8a12d0 100644
---
a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/exception/SwitchTypeInTransactionException.java
+++
b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/exception/SwitchTypeInTransactionException.java
@@ -17,17 +17,16 @@
package org.apache.shardingsphere.transaction.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Switch type in transaction exception.
*/
-public final class SwitchTypeInTransactionException extends KernelSQLException
{
+public final class SwitchTypeInTransactionException extends
TransactionSQLException {
private static final long serialVersionUID = 5333976223578960845L;
public SwitchTypeInTransactionException() {
- super(XOpenSQLState.INVALID_TRANSACTION_STATE, 1320, "Switch
transaction type failed, please terminate the current transaction");
+ super(XOpenSQLState.INVALID_TRANSACTION_STATE, 0, "Switch transaction
type failed, please terminate the current transaction");
}
}
diff --git
a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/exception/StartNestedXATransactionException.java
b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/exception/TransactionSQLException.java
similarity index 69%
copy from
shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/exception/StartNestedXATransactionException.java
copy to
shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/exception/TransactionSQLException.java
index 00f1f19ae4d..50cfad1f4cb 100644
---
a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/exception/StartNestedXATransactionException.java
+++
b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/exception/TransactionSQLException.java
@@ -17,17 +17,19 @@
package org.apache.shardingsphere.transaction.exception;
+import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.SQLState;
import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
- * Start nested XA transaction exception.
+ * Transaction SQL exception.
*/
-public final class StartNestedXATransactionException extends
KernelSQLException {
+public abstract class TransactionSQLException extends KernelSQLException {
- private static final long serialVersionUID = 7761100591709104351L;
+ private static final long serialVersionUID = 1340041110360641483L;
- public StartNestedXATransactionException() {
- super(XOpenSQLState.INVALID_TRANSACTION_STATE, 1323, "Can not start
new XA transaction in a active transaction");
+ private static final int KERNEL_CODE = 4;
+
+ public TransactionSQLException(final SQLState sqlState, final int
errorCode, final String reason, final Object... messageArguments) {
+ super(sqlState, KERNEL_CODE, errorCode, reason, messageArguments);
}
}
diff --git
a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/swapper/DataSourceSwapper.java
b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/swapper/DataSou
[...]
index c414fb8fd81..9eb38ab2fe3 100644
---
a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/swapper/DataSourceSwapper.java
+++
b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/swapper/DataSourceSwapper.java
@@ -21,6 +21,7 @@ import com.google.common.base.CaseFormat;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import
org.apache.shardingsphere.transaction.xa.jta.datasource.properties.XADataSourceDefinition;
+import
org.apache.shardingsphere.transaction.xa.jta.exception.XADataSourceInitializeException;
import javax.sql.DataSource;
import javax.sql.XADataSource;
diff --git
a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/swapper/XADataSourceInitializeException.java
b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XA
[...]
similarity index 76%
rename from
shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/swapper/XADataSourceInitializeException.java
rename to
shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XADataSourceInitializeException.java
index 6dfcb2c145c..d37cd7d76b9 100644
---
a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/swapper/XADataSourceInitializeException.java
+++
b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XADataSourceInitializeException.java
@@ -15,20 +15,20 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.transaction.xa.jta.datasource.swapper;
+package org.apache.shardingsphere.transaction.xa.jta.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
+import org.apache.shardingsphere.transaction.exception.TransactionSQLException;
import
org.apache.shardingsphere.transaction.xa.jta.datasource.properties.XADataSourceDefinition;
/**
* XA data source initialize exception.
*/
-public final class XADataSourceInitializeException extends KernelSQLException {
+public final class XADataSourceInitializeException extends
TransactionSQLException {
private static final long serialVersionUID = -4515239569528215614L;
public XADataSourceInitializeException(final XADataSourceDefinition
xaDataSourceDefinition) {
- super(XOpenSQLState.INVALID_TRANSACTION_STATE, 1322, "Failed to create
`%s` XA data source", xaDataSourceDefinition.getType());
+ super(XOpenSQLState.INVALID_TRANSACTION_STATE, 2, "Failed to create
`%s` XA data source", xaDataSourceDefinition.getType());
}
}
diff --git
a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/exception/StartNestedXATransactionException.java
b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionNestedBeginException.java
similarity index 68%
rename from
shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/exception/StartNestedXATransactionException.java
rename to
shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionNestedBeginException.java
index 00f1f19ae4d..a8111d3258f 100644
---
a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/exception/StartNestedXATransactionException.java
+++
b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionNestedBeginException.java
@@ -15,19 +15,19 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.transaction.exception;
+package org.apache.shardingsphere.transaction.xa.jta.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
+import org.apache.shardingsphere.transaction.exception.TransactionSQLException;
/**
- * Start nested XA transaction exception.
+ * XA transaction nested begin exception.
*/
-public final class StartNestedXATransactionException extends
KernelSQLException {
+public final class XATransactionNestedBeginException extends
TransactionSQLException {
private static final long serialVersionUID = 7761100591709104351L;
- public StartNestedXATransactionException() {
- super(XOpenSQLState.INVALID_TRANSACTION_STATE, 1323, "Can not start
new XA transaction in a active transaction");
+ public XATransactionNestedBeginException() {
+ super(XOpenSQLState.INVALID_TRANSACTION_STATE, 1, "Can not start new
XA transaction in a active transaction");
}
}
diff --git
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/workerid/exception/WorkIdAssignedException.java
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/workerid/exception/ClusterSQLException.java
similarity index 70%
copy from
shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/workerid/exception/WorkIdAssignedException.java
copy to
shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/workerid/exception/ClusterSQLException.java
index c3021839cf2..37b4d09e62e 100644
---
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/workerid/exception/WorkIdAssignedException.java
+++
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/workerid/exception/ClusterSQLException.java
@@ -17,17 +17,19 @@
package
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.workerid.exception;
+import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.SQLState;
import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
- * Work id assigned exception.
+ * Cluster SQL exception.
*/
-public final class WorkIdAssignedException extends KernelSQLException {
+public abstract class ClusterSQLException extends KernelSQLException {
- private static final long serialVersionUID = 4782736481041926266L;
+ private static final long serialVersionUID = -2839102961922546497L;
- public WorkIdAssignedException() {
- super(XOpenSQLState.GENERAL_ERROR, 5000, "Work ID assigned failed,
which can not exceed 1024");
+ private static final int KERNEL_CODE = 7;
+
+ public ClusterSQLException(final SQLState sqlState, final int errorCode,
final String reason, final Object... messageArguments) {
+ super(sqlState, KERNEL_CODE, errorCode, reason, messageArguments);
}
}
diff --git
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/workerid/exception/WorkIdAssignedException.java
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/workerid/exception/WorkIdAssignedException.java
index c3021839cf2..a284e44887c 100644
---
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/workerid/exception/WorkIdAssignedException.java
+++
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/workerid/exception/WorkIdAssignedException.java
@@ -17,17 +17,16 @@
package
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.workerid.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Work id assigned exception.
*/
-public final class WorkIdAssignedException extends KernelSQLException {
+public final class WorkIdAssignedException extends ClusterSQLException {
private static final long serialVersionUID = 4782736481041926266L;
public WorkIdAssignedException() {
- super(XOpenSQLState.GENERAL_ERROR, 5000, "Work ID assigned failed,
which can not exceed 1024");
+ super(XOpenSQLState.GENERAL_ERROR, 0, "Work ID assigned failed, which
can not exceed 1024");
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/FileIOException.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/FileIOException.java
index 2596dbfd5d6..a12a5a995d5 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/FileIOException.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/FileIOException.java
@@ -17,19 +17,19 @@
package org.apache.shardingsphere.proxy.backend.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
+import
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.workerid.exception.ClusterSQLException;
import java.io.IOException;
/**
* File IO exception.
*/
-public final class FileIOException extends KernelSQLException {
+public final class FileIOException extends ClusterSQLException {
private static final long serialVersionUID = 1104839422339487793L;
public FileIOException(final IOException cause) {
- super(XOpenSQLState.GENERAL_ERROR, 1004, "File access failed, reason
is: %s", cause.getMessage());
+ super(XOpenSQLState.GENERAL_ERROR, 2, "File access failed, reason is:
%s", cause.getMessage());
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/InvalidValueException.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/InvalidValueException.java
index 970a6583307..dd6b621b49b 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/InvalidValueException.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/InvalidValueException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.proxy.backend.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.DataSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Invalid value exception.
*/
-public final class InvalidValueException extends KernelSQLException {
+public final class InvalidValueException extends DataSQLException {
private static final long serialVersionUID = 1840341880422454371L;
public InvalidValueException(final String value) {
- super(XOpenSQLState.INVALID_DATA_TYPE, 301, "Invalid value `%s`",
value);
+ super(XOpenSQLState.INVALID_DATA_TYPE, 1, "Invalid value `%s`", value);
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/ResourceNotExistedException.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/ResourceNotExistedException.java
index 2acac9fc32a..4e67c921620 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/ResourceNotExistedException.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/ResourceNotExistedException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.proxy.backend.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.MetaDataSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Resource does not exist exception.
*/
-public final class ResourceNotExistedException extends KernelSQLException {
+public final class ResourceNotExistedException extends MetaDataSQLException {
private static final long serialVersionUID = 4146100333670404924L;
public ResourceNotExistedException() {
- super(XOpenSQLState.SYNTAX_ERROR, 1002, "Resource does not exist");
+ super(XOpenSQLState.SYNTAX_ERROR, 12, "Resource does not exist");
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/RuleNotExistedException.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/RuleNotExistedException.java
index 22f323288f1..1f53e7639e1 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/RuleNotExistedException.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/RuleNotExistedException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.proxy.backend.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.MetaDataSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Rule does not exist exception.
*/
-public final class RuleNotExistedException extends KernelSQLException {
+public final class RuleNotExistedException extends MetaDataSQLException {
private static final long serialVersionUID = -4150905802300104824L;
public RuleNotExistedException() {
- super(XOpenSQLState.SYNTAX_ERROR, 1003, "Rule does not exist");
+ super(XOpenSQLState.SYNTAX_ERROR, 13, "Rule does not exist");
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/UnsupportedVariableException.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/UnsupportedVariableException.java
index e2c8cd3ae9a..c0b543304ad 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/UnsupportedVariableException.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/exception/UnsupportedVariableException.java
@@ -17,17 +17,17 @@
package org.apache.shardingsphere.proxy.backend.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.SyntaxSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Unsupported variable exception.
*/
-public final class UnsupportedVariableException extends KernelSQLException {
+public final class UnsupportedVariableException extends SyntaxSQLException {
private static final long serialVersionUID = 1955281568807066737L;
public UnsupportedVariableException(final String variable) {
- super(XOpenSQLState.GENERAL_ERROR, 301, "Could not support variable
`%s`", variable);
+ super(XOpenSQLState.GENERAL_ERROR, 5, "Could not support variable
`%s`", variable);
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionXAHandler.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionXAHandler.java
index d584f1256b9..9e51083b833 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionXAHandler.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionXAHandler.java
@@ -29,7 +29,7 @@ import
org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.TCLStatement;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.XAStatement;
-import
org.apache.shardingsphere.transaction.exception.StartNestedXATransactionException;
+import
org.apache.shardingsphere.transaction.xa.jta.exception.XATransactionNestedBeginException;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
@@ -74,7 +74,7 @@ public final class TransactionXAHandler implements
ProxyBackendHandler {
* we have to let session occupy the thread when doing xa
transaction. according to
https://dev.mysql.com/doc/refman/5.7/en/xa-states.html XA and local
transactions are mutually
* exclusive
*/
-
ShardingSpherePreconditions.checkState(!connectionSession.getTransactionStatus().isInTransaction(),
new StartNestedXATransactionException());
+
ShardingSpherePreconditions.checkState(!connectionSession.getTransactionStatus().isInTransaction(),
new XATransactionNestedBeginException());
ResponseHeader header = backendHandler.execute();
connectionSession.getConnectionContext().getTransactionConnectionContext().setInTransaction(true);
return header;
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/exception/CircuitBreakException.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/exception/CircuitBreakException.java
index 985c8c947ad..4c6ab166198 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/exception/CircuitBreakException.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/exception/CircuitBreakException.java
@@ -17,13 +17,13 @@
package org.apache.shardingsphere.proxy.frontend.exception;
-import
org.apache.shardingsphere.infra.util.exception.external.sql.type.kernel.KernelSQLException;
+import org.apache.shardingsphere.infra.exception.ConnectionSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
* Circuit break exception.
*/
-public final class CircuitBreakException extends KernelSQLException {
+public final class CircuitBreakException extends ConnectionSQLException {
private static final long serialVersionUID = 6339672680026286798L;
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrPacketFactoryTest.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrPacketFactoryTest.java
index b71c822fcd6..1580026cbea 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrPacketFactoryTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrPacketFactoryTest.java
@@ -53,7 +53,7 @@ public final class MySQLErrPacketFactoryTest {
public void assertNewInstanceWithShardingSphereSQLException() {
MySQLErrPacket actual = MySQLErrPacketFactory.newInstance(new
CircuitBreakException());
assertThat(actual.getSequenceId(), is(1));
- assertThat(actual.getErrorCode(), is(10000));
+ assertThat(actual.getErrorCode(), is(13000));
assertThat(actual.getSqlState(),
is(XOpenSQLState.GENERAL_WARNING.getValue()));
assertThat(actual.getErrorMessage(), is("Circuit break open, the
request has been ignored"));
}
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLParsingException.java
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLParsingException.java
index d6dd33a678b..bfdb9a2511e 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLParsingException.java
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLParsingException.java
@@ -27,7 +27,9 @@ public final class SQLParsingException extends
KernelSQLException {
private static final long serialVersionUID = -6408790652103666096L;
+ private static final int KERNEL_CODE = 2;
+
public SQLParsingException(final String sql) {
- super(XOpenSQLState.SYNTAX_ERROR, 1000, "You have an error in your SQL
syntax: %s", sql);
+ super(XOpenSQLState.SYNTAX_ERROR, KERNEL_CODE, 0, "You have an error
in your SQL syntax: %s", sql);
}
}