Skip to content

Commit d43aa58

Browse files
authored
Minor refactor SQLBuilderEngine and RouteSQLRewriteEngine (#37423)
1 parent f46ce8b commit d43aa58

3 files changed

Lines changed: 16 additions & 7 deletions

File tree

infra/rewrite/core/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/RouteSQLRewriteEngine.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
import lombok.RequiredArgsConstructor;
2121
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
2222
import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
23-
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
2423
import org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
2524
import org.apache.shardingsphere.infra.binder.context.statement.type.dml.SelectStatementContext;
25+
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
2626
import org.apache.shardingsphere.infra.datanode.DataNode;
2727
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
2828
import org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
@@ -139,7 +139,7 @@ private SQLRewriteUnit createSQLRewriteUnit(final SQLRewriteContext sqlRewriteCo
139139
boolean containsDollarMarker = sqlRewriteContext.getSqlStatementContext() instanceof SelectStatementContext
140140
&& ((SelectStatementContext) (sqlRewriteContext.getSqlStatementContext())).isContainsDollarParameterMarker();
141141
for (RouteUnit each : routeUnits) {
142-
sql.add(SQLUtils.trimSemicolon(new SQLBuilderEngine(sqlRewriteContext.getSql(), sqlRewriteContext.getSqlTokens(), each).buildSQL()));
142+
sql.add(SQLUtils.trimSemicolon(new SQLBuilderEngine(sqlRewriteContext, each).buildSQL()));
143143
if (containsDollarMarker && !params.isEmpty()) {
144144
continue;
145145
}
@@ -153,7 +153,7 @@ private SQLRewriteUnit createSQLRewriteUnit(final SQLRewriteContext sqlRewriteCo
153153
}
154154

155155
private String getActualSQL(final SQLRewriteContext sqlRewriteContext, final RouteUnit routeUnit) {
156-
return new SQLBuilderEngine(sqlRewriteContext.getSql(), sqlRewriteContext.getSqlTokens(), routeUnit).buildSQL();
156+
return new SQLBuilderEngine(sqlRewriteContext, routeUnit).buildSQL();
157157
}
158158

159159
private List<Object> getParameters(final SQLRewriteContext sqlRewriteContext, final RouteContext routeContext, final RouteUnit routeUnit) {

infra/rewrite/core/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/SQLBuilderEngine.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.apache.shardingsphere.infra.rewrite.sql;
1919

20+
import org.apache.shardingsphere.infra.rewrite.context.SQLRewriteContext;
2021
import org.apache.shardingsphere.infra.rewrite.sql.impl.AbstractSQLBuilder;
2122
import org.apache.shardingsphere.infra.rewrite.sql.impl.DefaultSQLBuilder;
2223
import org.apache.shardingsphere.infra.rewrite.sql.impl.RouteSQLBuilder;
@@ -36,8 +37,8 @@ public SQLBuilderEngine(final String sql, final List<SQLToken> sqlTokens) {
3637
sqlBuilder = new DefaultSQLBuilder(sql, sqlTokens);
3738
}
3839

39-
public SQLBuilderEngine(final String sql, final List<SQLToken> sqlTokens, final RouteUnit routeUnit) {
40-
sqlBuilder = new RouteSQLBuilder(sql, sqlTokens, routeUnit);
40+
public SQLBuilderEngine(final SQLRewriteContext sqlRewriteContext, final RouteUnit routeUnit) {
41+
sqlBuilder = new RouteSQLBuilder(sqlRewriteContext.getSql(), sqlRewriteContext.getSqlTokens(), routeUnit);
4142
}
4243

4344
/**

infra/rewrite/core/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/SQLBuilderEngineTest.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.apache.shardingsphere.infra.rewrite.sql;
1919

20+
import org.apache.shardingsphere.infra.rewrite.context.SQLRewriteContext;
2021
import org.apache.shardingsphere.infra.rewrite.sql.fixture.SQLTokenFixture;
2122
import org.apache.shardingsphere.infra.route.context.RouteMapper;
2223
import org.apache.shardingsphere.infra.route.context.RouteUnit;
@@ -27,6 +28,7 @@
2728
import static org.hamcrest.CoreMatchers.is;
2829
import static org.hamcrest.MatcherAssert.assertThat;
2930
import static org.mockito.Mockito.mock;
31+
import static org.mockito.Mockito.when;
3032

3133
class SQLBuilderEngineTest {
3234

@@ -45,14 +47,20 @@ void assertCreateSQLBuilderEngineWithDefaultConstructorAndTokens() {
4547
@Test
4648
void assertCreateSQLBuilderEngineWithRouteUnitConstructor() {
4749
RouteUnit routeUnit = new RouteUnit(mock(RouteMapper.class), Collections.singletonList(new RouteMapper("tbl", "tbl_0")));
48-
SQLBuilderEngine actual = new SQLBuilderEngine("SELECT * FROM tbl WHERE id=?", Collections.emptyList(), routeUnit);
50+
SQLRewriteContext sqlRewriteContext = mock(SQLRewriteContext.class);
51+
when(sqlRewriteContext.getSql()).thenReturn("SELECT * FROM tbl WHERE id=?");
52+
when(sqlRewriteContext.getSqlTokens()).thenReturn(Collections.emptyList());
53+
SQLBuilderEngine actual = new SQLBuilderEngine(sqlRewriteContext, routeUnit);
4954
assertThat(actual.buildSQL(), is("SELECT * FROM tbl WHERE id=?"));
5055
}
5156

5257
@Test
5358
void assertCreateSQLBuilderEngineWithRouteUnitConstructorAndTokens() {
5459
RouteUnit routeUnit = new RouteUnit(mock(RouteMapper.class), Collections.singletonList(new RouteMapper("tbl", "tbl_0")));
55-
SQLBuilderEngine actual = new SQLBuilderEngine("SELECT * FROM tbl WHERE id=?", Collections.singletonList(new SQLTokenFixture(14, 16)), routeUnit);
60+
SQLRewriteContext sqlRewriteContext = mock(SQLRewriteContext.class);
61+
when(sqlRewriteContext.getSql()).thenReturn("SELECT * FROM tbl WHERE id=?");
62+
when(sqlRewriteContext.getSqlTokens()).thenReturn(Collections.singletonList(new SQLTokenFixture(14, 16)));
63+
SQLBuilderEngine actual = new SQLBuilderEngine(sqlRewriteContext, routeUnit);
5664
assertThat(actual.buildSQL(), is("SELECT * FROM XXX WHERE id=?"));
5765
}
5866

0 commit comments

Comments
 (0)