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",

Reply via email to