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;
- }
}