This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 d2c663d6bef Refactor getStopIndex and getNextSQLToken in
AbstractSQLBuilder (#37131)
d2c663d6bef is described below
commit d2c663d6befee2aecc6b85fd5e35468f7483b9f9
Author: Cong Hu <[email protected]>
AuthorDate: Tue Nov 18 16:02:04 2025 +0800
Refactor getStopIndex and getNextSQLToken in AbstractSQLBuilder (#37131)
---
.../infra/rewrite/sql/impl/AbstractSQLBuilder.java | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git
a/infra/rewrite/core/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/impl/AbstractSQLBuilder.java
b/infra/rewrite/core/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/impl/AbstractSQLBuilder.java
index 0dbbb24741a..cd4cbd7c440 100644
---
a/infra/rewrite/core/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/impl/AbstractSQLBuilder.java
+++
b/infra/rewrite/core/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/impl/AbstractSQLBuilder.java
@@ -78,8 +78,19 @@ public abstract class AbstractSQLBuilder implements
SQLBuilder {
}
private int getStopIndex(final SQLToken sqlToken, final List<SQLToken>
sqlTokens, final int sqlLength, final int startIndex) {
+ Optional<SQLToken> nextSQLToken = getNextSQLToken(sqlToken, sqlTokens);
+ if (!nextSQLToken.isPresent()) {
+ return sqlLength;
+ }
+ int stopIndex = nextSQLToken.get().getStartIndex();
+ return startIndex <= stopIndex ? stopIndex :
getStopIndex(nextSQLToken.get(), sqlTokens, sqlLength, startIndex);
+ }
+
+ private Optional<SQLToken> getNextSQLToken(final SQLToken sqlToken, final
List<SQLToken> sqlTokens) {
int currentSQLTokenIndex = sqlTokens.indexOf(sqlToken);
- int stopIndex = sqlTokens.size() - 1 == currentSQLTokenIndex ?
sqlLength : sqlTokens.get(currentSQLTokenIndex + 1).getStartIndex();
- return startIndex <= stopIndex ? stopIndex :
getStopIndex(sqlTokens.get(currentSQLTokenIndex + 1), sqlTokens, sqlLength,
startIndex);
+ if (sqlTokens.size() - 1 == currentSQLTokenIndex) {
+ return Optional.empty();
+ }
+ return Optional.ofNullable(sqlTokens.get(currentSQLTokenIndex + 1));
}
}