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;
     

Reply via email to