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 7124ebdaebf Refactor SQLUtils (#37226)
7124ebdaebf is described below

commit 7124ebdaebf72d243b3544aa042dfddcd86b0be5
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Nov 30 16:38:04 2025 +0800

    Refactor SQLUtils (#37226)
---
 .../sql/parser/statement/core/util/SQLUtils.java   | 44 ++++++++++------------
 1 file changed, 19 insertions(+), 25 deletions(-)

diff --git 
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/util/SQLUtils.java
 
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/util/SQLUtils.java
index 649022d9475..db3d53939e9 100644
--- 
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/util/SQLUtils.java
+++ 
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/util/SQLUtils.java
@@ -175,11 +175,11 @@ public final class SQLUtils {
      */
     public static String getExpressionWithoutOutsideParentheses(final String 
value) {
         int parenthesesOffset = getParenthesesOffset(value);
-        String result = 0 == parenthesesOffset ? value : 
value.substring(parenthesesOffset, value.length() - parenthesesOffset);
-        if (isValidParenthesis(result)) {
-            return result;
+        if (0 == parenthesesOffset) {
+            return value;
         }
-        return value;
+        String result = value.substring(parenthesesOffset, value.length() - 
parenthesesOffset);
+        return isValidParenthesis(result) ? result : value;
     }
     
     private static int getParenthesesOffset(final String value) {
@@ -196,6 +196,21 @@ public final class SQLUtils {
         return left;
     }
     
+    private static boolean isValidParenthesis(final String text) {
+        int count = 0;
+        for (char each : text.toCharArray()) {
+            if (Paren.PARENTHESES.getLeftParen() == each) {
+                count++;
+            } else if (Paren.PARENTHESES.getRightParen() == each) {
+                if (count == 0) {
+                    return false;
+                }
+                count--;
+            }
+        }
+        return count == 0;
+    }
+    
     /**
      * Get subquery from tableSegment.
      *
@@ -285,25 +300,4 @@ public final class SQLUtils {
         }
         return result.trim();
     }
-    
-    /**
-     * Check for valid parenthesis in String.
-     *
-     * @param text to be checked for valid parenthesis
-     * @return true or false
-     */
-    public static boolean isValidParenthesis(final String text) {
-        int count = 0;
-        for (char c : text.toCharArray()) {
-            if (Paren.PARENTHESES.getLeftParen() == c) {
-                count++;
-            } else if (Paren.PARENTHESES.getRightParen() == c) {
-                if (count == 0) {
-                    return false;
-                }
-                count--;
-            }
-        }
-        return count == 0;
-    }
 }

Reply via email to