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 15b9d70c340 Refactor SyntaxSQLException (#30747)
15b9d70c340 is described below

commit 15b9d70c3408b9fa7f78089fe3876992bf227c98
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Apr 2 22:44:34 2024 +0800

    Refactor SyntaxSQLException (#30747)
    
    * Refactor SyntaxSQLException
    
    * Remove URLProviderNotFoundException
    
    * Refactor usage of BigDecimal.setScale
---
 .../user-manual/error-code/sql-error-code.cn.md    |  9 +++---
 .../user-manual/error-code/sql-error-code.en.md    |  9 +++---
 .../syntax/ColumnIndexOutOfRangeException.java     |  4 +--
 .../syntax/ColumnLabelNotFoundException.java       |  4 +--
 .../infra}/exception/syntax/EmptySQLException.java |  2 +-
 .../UnsupportedDropCascadeTableException.java      |  2 +-
 .../syntax}/UnsupportedVariableException.java      |  4 +--
 .../impl/driver/jdbc/type/util/ResultSetUtils.java |  2 +-
 .../infra/url/core/ShardingSphereURL.java          |  3 --
 .../exception/URLProviderNotFoundException.java    | 33 --------------------
 .../URLProviderNotFoundExceptionTest.java          | 36 ----------------------
 .../core/resultset/DatabaseMetaDataResultSet.java  |  4 +--
 .../resultset/ShardingSphereResultSetMetaData.java |  2 +-
 .../statement/ShardingSpherePreparedStatement.java |  2 +-
 .../core/statement/ShardingSphereStatement.java    |  2 +-
 .../core/resultset/GeneratedKeysResultSetTest.java |  9 +++---
 .../validator/ddl/SingleDropTableValidator.java    |  2 +-
 .../parser/exception/SQLASTVisitorException.java   |  2 +-
 .../distsql/ral/common/DistSQLVariable.java        |  2 +-
 .../ral/queryable/ShowDistVariableExecutor.java    |  2 +-
 .../ral/updatable/SetDistVariableExecutor.java     |  2 +-
 .../header/query/QueryHeaderBuilderEngine.java     |  6 ++--
 .../queryable/ShowDistVariableExecutorTest.java    |  2 +-
 ...DistVariableUpdatableRALBackendHandlerTest.java |  2 +-
 24 files changed, 37 insertions(+), 110 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 c4f3584ad3d..2c9018a1c04 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
@@ -55,12 +55,11 @@ 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     | 12001       | Can not accept SQL type '%s'.            |
 | 42000     | 12002       | SQL String can not be NULL or empty.     |
-| 42000     | 12010       | Can not support variable \`%s\`.         |
-| 42S02     | 12011       | Can not find column label \`%s\`.        |
-| 42S02     | 12012       | Can not find url provider for \`%s`\.    |
-| HV008     | 12020       | Column index \`%d\` is out of range.     |
+| 42000     | 12010       | Can not support variable '%s'.           |
+| 42S02     | 12011       | Can not find column label '%s'.          |
+| HV008     | 12020       | Column index '%d' is out of range.       |
 | HY000     | 12021       | Column '%s' in %s is ambiguous.          |
 | 0A000     | 12100       | DROP TABLE ... CASCADE is not supported. |
 
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 93139ff32af..6408d98809e 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
@@ -55,12 +55,11 @@ 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     | 12001       | Can not accept SQL type '%s'.            |
 | 42000     | 12002       | SQL String can not be NULL or empty.     |
-| 42000     | 12010       | Can not support variable \`%s\`.         |
-| 42S02     | 12011       | Can not find column label \`%s\`.        |
-| 42S02     | 12012       | Can not find url provider for \`%s`\.    |
-| HV008     | 12020       | Column index \`%d\` is out of range.     |
+| 42000     | 12010       | Can not support variable '%s'.           |
+| 42S02     | 12011       | Can not find column label '%s'.          |
+| HV008     | 12020       | Column index '%d' is out of range.       |
 | HY000     | 12021       | Column '%s' in %s is ambiguous.          |
 | 0A000     | 12100       | DROP TABLE ... CASCADE is not supported. |
 
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/syntax/ColumnIndexOutOfRangeException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/ColumnIndexOutOfRangeException.java
similarity index 92%
rename from 
jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/syntax/ColumnIndexOutOfRangeException.java
rename to 
infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/ColumnIndexOutOfRangeException.java
index b1fc03d1649..d2d71ec8e36 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/syntax/ColumnIndexOutOfRangeException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/ColumnIndexOutOfRangeException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.driver.jdbc.exception.syntax;
+package org.apache.shardingsphere.infra.exception.syntax;
 
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.SyntaxSQLException;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
@@ -28,6 +28,6 @@ public final class ColumnIndexOutOfRangeException extends 
SyntaxSQLException {
     private static final long serialVersionUID = 3599337605134702447L;
     
     public ColumnIndexOutOfRangeException(final int columnIndex) {
-        super(XOpenSQLState.INVALID_COLUMN_NUMBER, 20, "Column index `%d` is 
out of range.", columnIndex);
+        super(XOpenSQLState.INVALID_COLUMN_NUMBER, 20, "Column index '%d' is 
out of range.", columnIndex);
     }
 }
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/syntax/ColumnLabelNotFoundException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/ColumnLabelNotFoundException.java
similarity index 93%
rename from 
jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/syntax/ColumnLabelNotFoundException.java
rename to 
infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/ColumnLabelNotFoundException.java
index 98652cda981..9f031f2f53d 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/syntax/ColumnLabelNotFoundException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/ColumnLabelNotFoundException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.driver.jdbc.exception.syntax;
+package org.apache.shardingsphere.infra.exception.syntax;
 
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.SyntaxSQLException;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
@@ -28,6 +28,6 @@ public final class ColumnLabelNotFoundException extends 
SyntaxSQLException {
     private static final long serialVersionUID = -4634399403612501335L;
     
     public ColumnLabelNotFoundException(final String columnLabel) {
-        super(XOpenSQLState.NOT_FOUND, 11, "Can not find column label `%s`.", 
columnLabel);
+        super(XOpenSQLState.NOT_FOUND, 11, "Can not find column label '%s'.", 
columnLabel);
     }
 }
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/syntax/EmptySQLException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/EmptySQLException.java
similarity index 95%
rename from 
jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/syntax/EmptySQLException.java
rename to 
infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/EmptySQLException.java
index 8b5b2e68585..40baba60100 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/exception/syntax/EmptySQLException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/EmptySQLException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.driver.jdbc.exception.syntax;
+package org.apache.shardingsphere.infra.exception.syntax;
 
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.SyntaxSQLException;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/UnsupportedDropCascadeTableException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/UnsupportedDropCascadeTableException.java
similarity index 95%
rename from 
kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/UnsupportedDropCascadeTableException.java
rename to 
infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/UnsupportedDropCascadeTableException.java
index c08fa387f54..f745a1c6b7c 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/exception/UnsupportedDropCascadeTableException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/UnsupportedDropCascadeTableException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.single.exception;
+package org.apache.shardingsphere.infra.exception.syntax;
 
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.SyntaxSQLException;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/exception/UnsupportedVariableException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/UnsupportedVariableException.java
similarity index 93%
rename from 
proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/exception/UnsupportedVariableException.java
rename to 
infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/UnsupportedVariableException.java
index 2daaa77e2b9..26aa579485b 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/exception/UnsupportedVariableException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/syntax/UnsupportedVariableException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.proxy.backend.exception;
+package org.apache.shardingsphere.infra.exception.syntax;
 
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.SyntaxSQLException;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
@@ -28,6 +28,6 @@ public final class UnsupportedVariableException extends 
SyntaxSQLException {
     private static final long serialVersionUID = 1955281568807066737L;
     
     public UnsupportedVariableException(final String variable) {
-        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 14, "Can not support 
variable `%s`.", variable);
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 14, "Can not support 
variable '%s'.", variable);
     }
 }
diff --git 
a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/util/ResultSetUtils.java
 
b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/util/ResultSetUtils.java
index 93d7b5634c3..d88b4703583 100644
--- 
a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/util/ResultSetUtils.java
+++ 
b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/util/ResultSetUtils.java
@@ -126,7 +126,7 @@ public final class ResultSetUtils {
     private static BigDecimal adjustBigDecimalResult(final BigDecimal value, 
final boolean needScale, final int scale) {
         if (needScale) {
             try {
-                return value.setScale(scale);
+                return value.setScale(scale, RoundingMode.UNNECESSARY);
             } catch (final ArithmeticException ex) {
                 return value.setScale(scale, RoundingMode.HALF_UP);
             }
diff --git 
a/infra/url/core/src/main/java/org/apache/shardingsphere/infra/url/core/ShardingSphereURL.java
 
b/infra/url/core/src/main/java/org/apache/shardingsphere/infra/url/core/ShardingSphereURL.java
index e8fad2f99a7..ff7b5d43176 100644
--- 
a/infra/url/core/src/main/java/org/apache/shardingsphere/infra/url/core/ShardingSphereURL.java
+++ 
b/infra/url/core/src/main/java/org/apache/shardingsphere/infra/url/core/ShardingSphereURL.java
@@ -22,8 +22,6 @@ import com.google.common.base.Strings;
 import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
-import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
-import 
org.apache.shardingsphere.infra.url.core.exception.URLProviderNotFoundException;
 
 import java.util.Properties;
 
@@ -47,7 +45,6 @@ public final class ShardingSphereURL {
      * @return ShardingSphere URL
      */
     public static ShardingSphereURL parse(final String url) {
-        ShardingSpherePreconditions.checkNotNull(url, () -> new 
URLProviderNotFoundException(url));
         String sourceType = parseSourceType(url);
         return new ShardingSphereURL(sourceType, 
parseConfigurationSubject(url.substring(sourceType.length())), 
parseProperties(url));
     }
diff --git 
a/infra/url/core/src/main/java/org/apache/shardingsphere/infra/url/core/exception/URLProviderNotFoundException.java
 
b/infra/url/core/src/main/java/org/apache/shardingsphere/infra/url/core/exception/URLProviderNotFoundException.java
deleted file mode 100644
index 1d18a226b40..00000000000
--- 
a/infra/url/core/src/main/java/org/apache/shardingsphere/infra/url/core/exception/URLProviderNotFoundException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.url.core.exception;
-
-import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.SyntaxSQLException;
-import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
-
-/**
- * URL provider not found exception.
- */
-public final class URLProviderNotFoundException extends SyntaxSQLException {
-    
-    private static final long serialVersionUID = 1017115393560838384L;
-    
-    public URLProviderNotFoundException(final String url) {
-        super(XOpenSQLState.NOT_FOUND, 12, "Can not find url provider for 
`%s`.", url);
-    }
-}
diff --git 
a/infra/url/core/src/test/java/org/apache/shardingsphere/infra/url/core/exception/URLProviderNotFoundExceptionTest.java
 
b/infra/url/core/src/test/java/org/apache/shardingsphere/infra/url/core/exception/URLProviderNotFoundExceptionTest.java
deleted file mode 100644
index d5ebb682e10..00000000000
--- 
a/infra/url/core/src/test/java/org/apache/shardingsphere/infra/url/core/exception/URLProviderNotFoundExceptionTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.url.core.exception;
-
-import org.junit.jupiter.api.Test;
-
-import java.sql.SQLException;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-class URLProviderNotFoundExceptionTest {
-    
-    @Test
-    void assertToSQLException() {
-        SQLException sqlException = new 
URLProviderNotFoundException("invalid:xxx").toSQLException();
-        assertThat(sqlException.getMessage(), is("Can not find url provider 
for `invalid:xxx`."));
-        assertThat(sqlException.getSQLState(), is("42S02"));
-        assertThat(sqlException.getErrorCode(), is(12012));
-    }
-}
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/DatabaseMetaDataResultSet.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/DatabaseMetaDataResultSet.java
index 0baa225a3c6..b26e6831a97 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/DatabaseMetaDataResultSet.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/DatabaseMetaDataResultSet.java
@@ -20,8 +20,8 @@ package org.apache.shardingsphere.driver.jdbc.core.resultset;
 import com.cedarsoftware.util.CaseInsensitiveMap;
 import lombok.EqualsAndHashCode;
 import 
org.apache.shardingsphere.driver.jdbc.exception.connection.ResultSetClosedException;
-import 
org.apache.shardingsphere.driver.jdbc.exception.syntax.ColumnIndexOutOfRangeException;
-import 
org.apache.shardingsphere.driver.jdbc.exception.syntax.ColumnLabelNotFoundException;
+import 
org.apache.shardingsphere.infra.exception.syntax.ColumnIndexOutOfRangeException;
+import 
org.apache.shardingsphere.infra.exception.syntax.ColumnLabelNotFoundException;
 import 
org.apache.shardingsphere.driver.jdbc.unsupported.AbstractUnsupportedDatabaseMetaDataResultSet;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.driver.jdbc.type.util.ResultSetUtils;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSetMetaData.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSetMetaData.java
index 8398fa0013d..75465a12e19 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSetMetaData.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSetMetaData.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.driver.jdbc.core.resultset;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.driver.jdbc.adapter.WrapperAdapter;
-import 
org.apache.shardingsphere.driver.jdbc.exception.syntax.ColumnIndexOutOfRangeException;
+import 
org.apache.shardingsphere.infra.exception.syntax.ColumnIndexOutOfRangeException;
 import 
org.apache.shardingsphere.infra.binder.context.segment.select.projection.Projection;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
index 065bcd89979..a5d54760415 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
@@ -30,7 +30,7 @@ import 
org.apache.shardingsphere.driver.jdbc.core.resultset.GeneratedKeysResultS
 import 
org.apache.shardingsphere.driver.jdbc.core.resultset.ShardingSphereResultSet;
 import 
org.apache.shardingsphere.driver.jdbc.core.resultset.ShardingSphereResultSetUtils;
 import 
org.apache.shardingsphere.driver.jdbc.core.statement.metadata.ShardingSphereParameterMetaData;
-import 
org.apache.shardingsphere.driver.jdbc.exception.syntax.EmptySQLException;
+import org.apache.shardingsphere.infra.exception.syntax.EmptySQLException;
 import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import org.apache.shardingsphere.infra.binder.context.aware.ParameterAware;
 import 
org.apache.shardingsphere.infra.binder.context.segment.insert.keygen.GeneratedKeyContext;
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
index 5d4c85bb53f..db76921056e 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
@@ -29,7 +29,7 @@ import 
org.apache.shardingsphere.driver.jdbc.adapter.AbstractStatementAdapter;
 import 
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
 import 
org.apache.shardingsphere.driver.jdbc.core.resultset.GeneratedKeysResultSet;
 import 
org.apache.shardingsphere.driver.jdbc.core.resultset.ShardingSphereResultSet;
-import 
org.apache.shardingsphere.driver.jdbc.exception.syntax.EmptySQLException;
+import org.apache.shardingsphere.infra.exception.syntax.EmptySQLException;
 import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import 
org.apache.shardingsphere.infra.binder.context.segment.insert.keygen.GeneratedKeyContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
diff --git 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/resultset/GeneratedKeysResultSetTest.java
 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/resultset/GeneratedKeysResultSetTest.java
index 1012db6670d..9132094359d 100644
--- 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/resultset/GeneratedKeysResultSetTest.java
+++ 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/resultset/GeneratedKeysResultSetTest.java
@@ -54,8 +54,9 @@ class GeneratedKeysResultSetTest {
     
     @Test
     void assertNextForEmptyResultSet() {
-        GeneratedKeysResultSet actual = new GeneratedKeysResultSet();
-        assertFalse(actual.next());
+        try (GeneratedKeysResultSet actual = new GeneratedKeysResultSet()) {
+            assertFalse(actual.next());
+        }
     }
     
     @Test
@@ -151,10 +152,10 @@ class GeneratedKeysResultSetTest {
     void assertGetBigDecimal() {
         assertTrue(actualResultSet.next());
         assertThat(actualResultSet.getBigDecimal(1), is(new BigDecimal("1")));
-        assertThat(actualResultSet.getBigDecimal(1, 2), is(new 
BigDecimal("1").setScale(BigDecimal.ROUND_CEILING, RoundingMode.HALF_UP)));
+        assertThat(actualResultSet.getBigDecimal(1, 2), is(new 
BigDecimal("1").setScale(2, RoundingMode.HALF_UP)));
         assertTrue(actualResultSet.next());
         assertThat(actualResultSet.getBigDecimal("order_id"), is(new 
BigDecimal("2")));
-        assertThat(actualResultSet.getBigDecimal("order_id", 2), is(new 
BigDecimal("2").setScale(BigDecimal.ROUND_CEILING, RoundingMode.HALF_UP)));
+        assertThat(actualResultSet.getBigDecimal("order_id", 2), is(new 
BigDecimal("2").setScale(2, RoundingMode.HALF_UP)));
         assertFalse(actualResultSet.next());
     }
     
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/validator/ddl/SingleDropTableValidator.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/validator/ddl/SingleDropTableValidator.java
index 4bd6669ad22..a14b90cb225 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/validator/ddl/SingleDropTableValidator.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/validator/ddl/SingleDropTableValidator.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.single.route.validator.ddl;
 
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import 
org.apache.shardingsphere.single.exception.UnsupportedDropCascadeTableException;
+import 
org.apache.shardingsphere.infra.exception.syntax.UnsupportedDropCascadeTableException;
 import 
org.apache.shardingsphere.single.route.validator.SingleMetaDataValidator;
 import org.apache.shardingsphere.single.rule.SingleRule;
 import 
org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropTableStatement;
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 0725e3d5645..3dfcc2c0b43 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
@@ -29,6 +29,6 @@ public final class SQLASTVisitorException extends 
SyntaxSQLException {
     private static final long serialVersionUID = 8597155168000874870L;
     
     public SQLASTVisitorException(final Class<? extends ParseTree> 
parseTreeClass) {
-        super(XOpenSQLState.SYNTAX_ERROR, 1, "Can not accept SQL type `%s`.", 
parseTreeClass.getSimpleName());
+        super(XOpenSQLState.SYNTAX_ERROR, 1, "Can not accept SQL type '%s'.", 
parseTreeClass.getSimpleName());
     }
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/DistSQLVariable.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/DistSQLVariable.java
index 036091fb654..8c1a95a98ec 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/DistSQLVariable.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/DistSQLVariable.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.proxy.backend.handler.distsql.ral.common;
 
-import 
org.apache.shardingsphere.proxy.backend.exception.UnsupportedVariableException;
+import 
org.apache.shardingsphere.infra.exception.syntax.UnsupportedVariableException;
 
 /**
  * DistSQL variable.
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariableExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariableExecutor.java
index 87214fadf05..146f9fecf20 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariableExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariableExecutor.java
@@ -32,7 +32,7 @@ import 
org.apache.shardingsphere.logging.constant.LoggingConstants;
 import org.apache.shardingsphere.logging.logger.ShardingSphereLogger;
 import org.apache.shardingsphere.logging.util.LoggingUtils;
 import org.apache.shardingsphere.mode.manager.ContextManager;
-import 
org.apache.shardingsphere.proxy.backend.exception.UnsupportedVariableException;
+import 
org.apache.shardingsphere.infra.exception.syntax.UnsupportedVariableException;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.common.DistSQLVariable;
 
 import java.util.Arrays;
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableExecutor.java
index 14292a63902..f6058b81c86 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableExecutor.java
@@ -34,7 +34,7 @@ import org.apache.shardingsphere.logging.util.LoggingUtils;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import 
org.apache.shardingsphere.proxy.backend.exception.InvalidVariableValueException;
-import 
org.apache.shardingsphere.proxy.backend.exception.UnsupportedVariableException;
+import 
org.apache.shardingsphere.infra.exception.syntax.UnsupportedVariableException;
 import org.slf4j.LoggerFactory;
 
 import java.sql.SQLException;
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/QueryHeaderBuilderEngine.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/QueryHeaderBuilderEngine.java
index 82481a440e4..2edc2eace96 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/QueryHeaderBuilderEngine.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/QueryHeaderBuilderEngine.java
@@ -22,9 +22,10 @@ import 
org.apache.shardingsphere.infra.binder.context.segment.select.projection.
 import 
org.apache.shardingsphere.infra.binder.context.segment.select.projection.ProjectionsContext;
 import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
+import 
org.apache.shardingsphere.infra.exception.syntax.ColumnIndexOutOfRangeException;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResultMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 
 import java.sql.SQLException;
 
@@ -63,8 +64,7 @@ public final class QueryHeaderBuilderEngine {
      */
     public QueryHeader build(final ProjectionsContext projectionsContext,
                              final QueryResultMetaData queryResultMetaData, 
final ShardingSphereDatabase database, final int columnIndex) throws 
SQLException {
-        ShardingSpherePreconditions.checkState(columnIndex <= 
projectionsContext.getExpandProjections().size(),
-                () -> new IllegalArgumentException(String.format("Column index 
`%d` is out of range.", columnIndex)));
+        ShardingSpherePreconditions.checkState(columnIndex <= 
projectionsContext.getExpandProjections().size(), () -> new 
ColumnIndexOutOfRangeException(columnIndex));
         Projection projection = 
projectionsContext.getExpandProjections().get(columnIndex - 1);
         return DatabaseTypedSPILoader.getService(QueryHeaderBuilder.class, 
databaseType).build(queryResultMetaData, database, projection.getColumnName(), 
projection.getColumnLabel(), columnIndex);
     }
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariableExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariableExecutorTest.java
index 29e4abc678b..6c98c8c8744 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariableExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariableExecutorTest.java
@@ -27,7 +27,7 @@ import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.ExecutorState
 import 
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
 import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
-import 
org.apache.shardingsphere.proxy.backend.exception.UnsupportedVariableException;
+import 
org.apache.shardingsphere.infra.exception.syntax.UnsupportedVariableException;
 import org.apache.shardingsphere.test.util.PropertiesBuilder;
 import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
 import org.junit.jupiter.api.Test;
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableUpdatableRALBackendHandlerTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableUpdatableRALBackendHandlerTest.java
index ed7c47f3018..c1fade18e92 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableUpdatableRALBackendHandlerTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/SetDistVariableUpdatableRALBackendHandlerTest.java
@@ -20,7 +20,7 @@ package 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable;
 import io.netty.util.DefaultAttributeMap;
 import 
org.apache.shardingsphere.distsql.statement.ral.updatable.SetDistVariableStatement;
 import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType;
-import 
org.apache.shardingsphere.proxy.backend.exception.UnsupportedVariableException;
+import 
org.apache.shardingsphere.infra.exception.syntax.UnsupportedVariableException;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.DistSQLUpdateBackendHandler;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import org.apache.shardingsphere.transaction.api.TransactionType;


Reply via email to