This is an automated email from the ASF dual-hosted git repository.
wuweijie 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 4798f7d4dde Add ParseSQLException (#30763)
4798f7d4dde is described below
commit 4798f7d4dde252292d037e8c6ac07f4fde70fb0f
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Apr 4 00:03:34 2024 +0800
Add ParseSQLException (#30763)
---
.../user-manual/error-code/sql-error-code.cn.md | 6 +++---
.../user-manual/error-code/sql-error-code.en.md | 6 +++---
.../infra/exception/syntax/EmptySQLException.java | 2 +-
...LParsingException.java => ParseSQLException.java} | 20 ++++++++++++++------
.../sql/parser/exception/SQLASTVisitorException.java | 3 +--
.../sql/parser/exception/SQLParsingException.java | 3 +--
6 files changed, 23 insertions(+), 17 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 6ec92098229..1a365ba831e 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
@@ -54,14 +54,14 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
| SQL State | Vendor Code | 错误信息 |
|-----------|-------------|------------------------------------------|
-| 42000 | 12000 | You have an error in your SQL syntax: %s |
-| 42000 | 12001 | Can not accept SQL type '%s'. |
-| 42000 | 12002 | SQL String can not be NULL or empty. |
+| 42000 | 12000 | SQL String can not be NULL or empty. |
| 42000 | 12010 | Can not support variable '%s'. |
| HV008 | 12020 | Column index '%d' is out of range. |
| 42S02 | 12021 | Can not find column label '%s'. |
| HY000 | 12022 | Column '%s' in %s is ambiguous. |
| 0A000 | 12100 | DROP TABLE ... CASCADE is not supported. |
+| 42000 | 12100 | You have an error in your SQL syntax: %s |
+| 42000 | 12101 | Can not accept SQL type '%s'. |
| 42000 | 12200 | SQL audit failed, error message: %s. |
| 42000 | 12201 | Hint datasource '%s' does not exist. |
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 61773bf6ef5..cbce522b4f4 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
@@ -54,14 +54,14 @@ SQL error codes provide by standard `SQL State`, `Vendor
Code` and `Reason`, whi
| SQL State | Vendor Code | Reason |
|-----------|-------------|------------------------------------------|
-| 42000 | 12000 | You have an error in your SQL syntax: %s |
-| 42000 | 12001 | Can not accept SQL type '%s'. |
-| 42000 | 12002 | SQL String can not be NULL or empty. |
+| 42000 | 12000 | SQL String can not be NULL or empty. |
| 42000 | 12010 | Can not support variable '%s'. |
| HV008 | 12020 | Column index '%d' is out of range. |
| 42S02 | 12021 | Can not find column label '%s'. |
| HY000 | 12022 | Column '%s' in %s is ambiguous. |
| 0A000 | 12100 | DROP TABLE ... CASCADE is not supported. |
+| 42000 | 12100 | You have an error in your SQL syntax: %s |
+| 42000 | 12101 | Can not accept SQL type '%s'. |
| 42000 | 12200 | SQL audit failed, error message: %s. |
| 42000 | 12201 | Hint datasource '%s' does not exist. |
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/EmptySQLException.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/EmptySQLException.java
index 40baba60100..8afdf2d5cad 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/EmptySQLException.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/EmptySQLException.java
@@ -28,6 +28,6 @@ public final class EmptySQLException extends
SyntaxSQLException {
private static final long serialVersionUID = -5723825491720138339L;
public EmptySQLException() {
- super(XOpenSQLState.SYNTAX_ERROR, 2, "SQL String can not be NULL or
empty.");
+ super(XOpenSQLState.SYNTAX_ERROR, 0, "SQL String can not be NULL or
empty.");
}
}
diff --git
a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLParsingException.java
b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/ParseSQLException.java
similarity index 59%
copy from
parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLParsingException.java
copy to
parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/ParseSQLException.java
index 004158e21dd..48bc4232e94 100644
---
a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLParsingException.java
+++
b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/ParseSQLException.java
@@ -17,17 +17,25 @@
package org.apache.shardingsphere.sql.parser.exception;
-import
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
+import com.google.common.base.Preconditions;
+import
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.SQLState;
import
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.SyntaxSQLException;
/**
- * SQL parsing exception.
+ * Parse SQL exception.
*/
-public final class SQLParsingException extends SyntaxSQLException {
+public abstract class ParseSQLException extends SyntaxSQLException {
- private static final long serialVersionUID = -6408790652103666096L;
+ private static final long serialVersionUID = 1922421612933745823L;
- public SQLParsingException(final String sql) {
- super(XOpenSQLState.SYNTAX_ERROR, 0, "You have an error in your SQL
syntax: %s", sql);
+ private static final int PARSE_CODE = 1;
+
+ protected ParseSQLException(final SQLState sqlState, final int errorCode,
final String reason, final Object... messageArgs) {
+ super(sqlState, getErrorCode(errorCode), reason, messageArgs);
+ }
+
+ private static int getErrorCode(final int errorCode) {
+ Preconditions.checkArgument(errorCode >= 0 && errorCode < 100, "The
value range of error code should be [0, 100).");
+ return PARSE_CODE * 100 + errorCode;
}
}
diff --git
a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLASTVisitorException.java
b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLASTVisitorException.java
index 3dfcc2c0b43..0fbfadbc447 100644
---
a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLASTVisitorException.java
+++
b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLASTVisitorException.java
@@ -19,12 +19,11 @@ package org.apache.shardingsphere.sql.parser.exception;
import org.antlr.v4.runtime.tree.ParseTree;
import
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
-import
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.SyntaxSQLException;
/**
* SQL AST visitor exception.
*/
-public final class SQLASTVisitorException extends SyntaxSQLException {
+public final class SQLASTVisitorException extends ParseSQLException {
private static final long serialVersionUID = 8597155168000874870L;
diff --git
a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLParsingException.java
b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLParsingException.java
index 004158e21dd..295a901bd82 100644
---
a/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLParsingException.java
+++
b/parser/sql/engine/src/main/java/org/apache/shardingsphere/sql/parser/exception/SQLParsingException.java
@@ -18,12 +18,11 @@
package org.apache.shardingsphere.sql.parser.exception;
import
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
-import
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.SyntaxSQLException;
/**
* SQL parsing exception.
*/
-public final class SQLParsingException extends SyntaxSQLException {
+public final class SQLParsingException extends ParseSQLException {
private static final long serialVersionUID = -6408790652103666096L;