This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 1e1e9e273b1 Add test cases on SQLHintUtilsTest (#36957)
1e1e9e273b1 is described below
commit 1e1e9e273b173a0530fd7fac805be8ff72128b37
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Oct 28 23:44:13 2025 +0800
Add test cases on SQLHintUtilsTest (#36957)
* Add test cases on SQLHintUtilsTest
* Add test cases on SQLHintUtilsTest
* Add test cases on SQLHintUtilsTest
* Refactor SQLHintUtils to eliminate unreachable code branch
- Change convert() method return type from Object to Comparable<?>
- Remove redundant type checking and casting in extractHint()
- Simplify variable assignment from comparable to value
- This eliminates the unreachable else branch at line 87
- Improves code clarity and type safety
- Resolves test coverage gap for unreachable code path
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
---------
Co-authored-by: Claude <[email protected]>
---
.../java/org/apache/shardingsphere/infra/hint/SQLHintUtils.java | 9 ++++-----
.../org/apache/shardingsphere/infra/hint/SQLHintUtilsTest.java | 5 +++++
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/hint/SQLHintUtils.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/hint/SQLHintUtils.java
index 5286a68fffa..9f46c93b973 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/hint/SQLHintUtils.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/hint/SQLHintUtils.java
@@ -83,13 +83,12 @@ public final class SQLHintUtils {
result.setShadow(Boolean.parseBoolean(getHintValue(hintKeyValues,
SQLHintPropertiesKey.SHADOW_KEY)));
}
for (Entry<String, String> entry : hintKeyValues.entrySet()) {
- Object value = convert(entry.getValue());
- Comparable<?> comparable = value instanceof Comparable ?
(Comparable<?>) value : Objects.toString(value);
+ Comparable<?> value = convert(entry.getValue());
if (containsHintKey(Objects.toString(entry.getKey()),
SQLHintPropertiesKey.SHARDING_DATABASE_VALUE_KEY)) {
-
result.getShardingDatabaseValues().put(Objects.toString(entry.getKey()).toUpperCase(),
comparable);
+
result.getShardingDatabaseValues().put(Objects.toString(entry.getKey()).toUpperCase(),
value);
}
if (containsHintKey(Objects.toString(entry.getKey()),
SQLHintPropertiesKey.SHARDING_TABLE_VALUE_KEY)) {
-
result.getShardingTableValues().put(Objects.toString(entry.getKey()).toUpperCase(),
comparable);
+
result.getShardingTableValues().put(Objects.toString(entry.getKey()).toUpperCase(),
value);
}
}
return result;
@@ -118,7 +117,7 @@ public final class SQLHintUtils {
return result;
}
- private static Object convert(final String value) {
+ private static Comparable<?> convert(final String value) {
try {
return new BigInteger(value);
} catch (final NumberFormatException ignored) {
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/hint/SQLHintUtilsTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/hint/SQLHintUtilsTest.java
index 847c1c7bd7e..cdda5635ceb 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/hint/SQLHintUtilsTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/hint/SQLHintUtilsTest.java
@@ -129,6 +129,10 @@ class SQLHintUtilsTest {
return Stream.of(
Arguments.of("PrefixNotFound", "/* FOO_HINT: xxx=xxx */",
false),
Arguments.of("ContentNotMatch", "/* SHARDINGSPHERE_HINT:
xxx=xxx */", false),
+ Arguments.of("CommentWithoutPrefix", "SHARDINGSPHERE_HINT:
DATA_SOURCE_NAME=foo_ds */", false),
+ Arguments.of("EmptyHintValue", "/* SHARDINGSPHERE_HINT:
DATA_SOURCE_NAME= */", false),
+ Arguments.of("MalformedHintWithoutEquals", "/*
SHARDINGSPHERE_HINT: DATA_SOURCE_NAME=foo_ds, DISABLE_AUDIT_NAMES */", true),
+ Arguments.of("EmptyDisableAuditNames", "/*
SHARDINGSPHERE_HINT: DATA_SOURCE_NAME=foo_ds, DISABLE_AUDIT_NAMES= */", true),
Arguments.of("UnderlineMode", "/* SHARDINGSPHERE_HINT:
DATA_SOURCE_NAME=foo_ds */", true),
Arguments.of("SpaceMode", "/* ShardingSphere hint:
dataSourceName=foo_ds */", true),
Arguments.of("DBeaverHint", "/* ApplicationName=DBeaver
24.1.0 - SQLEditor <Script-84.sql> */ /* SHARDINGSPHERE_HINT:
DATA_SOURCE_NAME=foo_ds*/ SELECT * FROM t_order", true));
@@ -140,6 +144,7 @@ class SQLHintUtilsTest {
@Override
public Stream<? extends Arguments> provideArguments(final
ParameterDeclarations parameters, final ExtensionContext context) {
return Stream.of(
+ Arguments.of("WithoutHint", "SELECT * FROM t_order",
"SELECT * FROM t_order"),
Arguments.of("UnderlineMode", "/* SHARDINGSPHERE_HINT:
DATA_SOURCE_NAME=foo_ds*/ SELECT * FROM t_order", "SELECT * FROM t_order"),
Arguments.of("SpaceMode", "/* ShardingSphere hint:
DATA_SOURCE_NAME=foo_ds*/ SELECT * FROM t_order", "SELECT * FROM t_order"),
Arguments.of("DBeaverHint", "/* ApplicationName=DBeaver
24.1.0 - SQLEditor <Script-84.sql> */ /* SHARDINGSPHERE_HINT:
DATA_SOURCE_NAME=foo_ds*/ SELECT * FROM t_order",