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;