This is an automated email from the ASF dual-hosted git repository.

chengzhang 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 d43aa586b86 Minor refactor SQLBuilderEngine and RouteSQLRewriteEngine 
(#37423)
d43aa586b86 is described below

commit d43aa586b86146d7dd27ac831ba1729fe7cc3cd1
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Thu Dec 18 16:23:52 2025 +0800

    Minor refactor SQLBuilderEngine and RouteSQLRewriteEngine (#37423)
---
 .../infra/rewrite/engine/RouteSQLRewriteEngine.java          |  6 +++---
 .../shardingsphere/infra/rewrite/sql/SQLBuilderEngine.java   |  5 +++--
 .../infra/rewrite/sql/SQLBuilderEngineTest.java              | 12 ++++++++++--
 3 files changed, 16 insertions(+), 7 deletions(-)

diff --git 
a/infra/rewrite/core/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/RouteSQLRewriteEngine.java
 
b/infra/rewrite/core/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/RouteSQLRewriteEngine.java
index 9862e753361..dec0363f219 100644
--- 
a/infra/rewrite/core/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/RouteSQLRewriteEngine.java
+++ 
b/infra/rewrite/core/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/RouteSQLRewriteEngine.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.infra.rewrite.engine;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
-import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.type.dml.SelectStatementContext;
+import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
 import org.apache.shardingsphere.infra.datanode.DataNode;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
@@ -139,7 +139,7 @@ public final class RouteSQLRewriteEngine {
         boolean containsDollarMarker = 
sqlRewriteContext.getSqlStatementContext() instanceof SelectStatementContext
                 && ((SelectStatementContext) 
(sqlRewriteContext.getSqlStatementContext())).isContainsDollarParameterMarker();
         for (RouteUnit each : routeUnits) {
-            sql.add(SQLUtils.trimSemicolon(new 
SQLBuilderEngine(sqlRewriteContext.getSql(), sqlRewriteContext.getSqlTokens(), 
each).buildSQL()));
+            sql.add(SQLUtils.trimSemicolon(new 
SQLBuilderEngine(sqlRewriteContext, each).buildSQL()));
             if (containsDollarMarker && !params.isEmpty()) {
                 continue;
             }
@@ -153,7 +153,7 @@ public final class RouteSQLRewriteEngine {
     }
     
     private String getActualSQL(final SQLRewriteContext sqlRewriteContext, 
final RouteUnit routeUnit) {
-        return new SQLBuilderEngine(sqlRewriteContext.getSql(), 
sqlRewriteContext.getSqlTokens(), routeUnit).buildSQL();
+        return new SQLBuilderEngine(sqlRewriteContext, routeUnit).buildSQL();
     }
     
     private List<Object> getParameters(final SQLRewriteContext 
sqlRewriteContext, final RouteContext routeContext, final RouteUnit routeUnit) {
diff --git 
a/infra/rewrite/core/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/SQLBuilderEngine.java
 
b/infra/rewrite/core/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/SQLBuilderEngine.java
index 502362c634b..939e9b92498 100644
--- 
a/infra/rewrite/core/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/SQLBuilderEngine.java
+++ 
b/infra/rewrite/core/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/SQLBuilderEngine.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.infra.rewrite.sql;
 
+import org.apache.shardingsphere.infra.rewrite.context.SQLRewriteContext;
 import org.apache.shardingsphere.infra.rewrite.sql.impl.AbstractSQLBuilder;
 import org.apache.shardingsphere.infra.rewrite.sql.impl.DefaultSQLBuilder;
 import org.apache.shardingsphere.infra.rewrite.sql.impl.RouteSQLBuilder;
@@ -36,8 +37,8 @@ public final class SQLBuilderEngine {
         sqlBuilder = new DefaultSQLBuilder(sql, sqlTokens);
     }
     
-    public SQLBuilderEngine(final String sql, final List<SQLToken> sqlTokens, 
final RouteUnit routeUnit) {
-        sqlBuilder = new RouteSQLBuilder(sql, sqlTokens, routeUnit);
+    public SQLBuilderEngine(final SQLRewriteContext sqlRewriteContext, final 
RouteUnit routeUnit) {
+        sqlBuilder = new RouteSQLBuilder(sqlRewriteContext.getSql(), 
sqlRewriteContext.getSqlTokens(), routeUnit);
     }
     
     /**
diff --git 
a/infra/rewrite/core/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/SQLBuilderEngineTest.java
 
b/infra/rewrite/core/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/SQLBuilderEngineTest.java
index 18041946a7a..cc4c85931dd 100644
--- 
a/infra/rewrite/core/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/SQLBuilderEngineTest.java
+++ 
b/infra/rewrite/core/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/SQLBuilderEngineTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.infra.rewrite.sql;
 
+import org.apache.shardingsphere.infra.rewrite.context.SQLRewriteContext;
 import org.apache.shardingsphere.infra.rewrite.sql.fixture.SQLTokenFixture;
 import org.apache.shardingsphere.infra.route.context.RouteMapper;
 import org.apache.shardingsphere.infra.route.context.RouteUnit;
@@ -27,6 +28,7 @@ import java.util.Collections;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 class SQLBuilderEngineTest {
     
@@ -45,14 +47,20 @@ class SQLBuilderEngineTest {
     @Test
     void assertCreateSQLBuilderEngineWithRouteUnitConstructor() {
         RouteUnit routeUnit = new RouteUnit(mock(RouteMapper.class), 
Collections.singletonList(new RouteMapper("tbl", "tbl_0")));
-        SQLBuilderEngine actual = new SQLBuilderEngine("SELECT * FROM tbl 
WHERE id=?", Collections.emptyList(), routeUnit);
+        SQLRewriteContext sqlRewriteContext = mock(SQLRewriteContext.class);
+        when(sqlRewriteContext.getSql()).thenReturn("SELECT * FROM tbl WHERE 
id=?");
+        
when(sqlRewriteContext.getSqlTokens()).thenReturn(Collections.emptyList());
+        SQLBuilderEngine actual = new SQLBuilderEngine(sqlRewriteContext, 
routeUnit);
         assertThat(actual.buildSQL(), is("SELECT * FROM tbl WHERE id=?"));
     }
     
     @Test
     void assertCreateSQLBuilderEngineWithRouteUnitConstructorAndTokens() {
         RouteUnit routeUnit = new RouteUnit(mock(RouteMapper.class), 
Collections.singletonList(new RouteMapper("tbl", "tbl_0")));
-        SQLBuilderEngine actual = new SQLBuilderEngine("SELECT * FROM tbl 
WHERE id=?", Collections.singletonList(new SQLTokenFixture(14, 16)), routeUnit);
+        SQLRewriteContext sqlRewriteContext = mock(SQLRewriteContext.class);
+        when(sqlRewriteContext.getSql()).thenReturn("SELECT * FROM tbl WHERE 
id=?");
+        
when(sqlRewriteContext.getSqlTokens()).thenReturn(Collections.singletonList(new 
SQLTokenFixture(14, 16)));
+        SQLBuilderEngine actual = new SQLBuilderEngine(sqlRewriteContext, 
routeUnit);
         assertThat(actual.buildSQL(), is("SELECT * FROM XXX WHERE id=?"));
     }
     

Reply via email to