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 751fe975799 Use provided dataSourceNames instead of usedDataSourceNames. (#35201) 751fe975799 is described below commit 751fe975799baa089d70150c430f6c89f908da11 Author: Cong Hu <iamhuc...@gmail.com> AuthorDate: Wed Apr 16 12:02:33 2025 +0800 Use provided dataSourceNames instead of usedDataSourceNames. (#35201) Ensure return logic datasource name. --- .../engine/tableless/TablelessRouteEngineFactory.java | 7 +++---- .../TablelessDataSourceUnicastRouteEngine.java | 6 +----- .../TablelessDataSourceUnicastRouteEngineTest.java | 19 ++----------------- 3 files changed, 6 insertions(+), 26 deletions(-) diff --git a/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactory.java b/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactory.java index dcff7eb35d6..c085cdeb5f5 100644 --- a/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactory.java +++ b/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactory.java @@ -28,7 +28,6 @@ import org.apache.shardingsphere.infra.route.engine.tableless.type.broadcast.Tab import org.apache.shardingsphere.infra.route.engine.tableless.type.broadcast.TablelessInstanceBroadcastRouteEngine; import org.apache.shardingsphere.infra.route.engine.tableless.type.ignore.TablelessIgnoreRouteEngine; import org.apache.shardingsphere.infra.route.engine.tableless.type.unicast.TablelessDataSourceUnicastRouteEngine; -import org.apache.shardingsphere.infra.session.connection.ConnectionContext; import org.apache.shardingsphere.infra.session.query.QueryContext; import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement; import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.AlterResourceGroupStatement; @@ -82,7 +81,7 @@ public final class TablelessRouteEngineFactory { return getDDLRouteEngine(queryContext.getSqlStatementContext(), database); } if (sqlStatement instanceof DMLStatement) { - return getDMLRouteEngine(queryContext.getSqlStatementContext(), queryContext.getConnectionContext()); + return getDMLRouteEngine(queryContext.getSqlStatementContext()); } return new TablelessIgnoreRouteEngine(); } @@ -135,9 +134,9 @@ public final class TablelessRouteEngineFactory { return new TablelessIgnoreRouteEngine(); } - private static TablelessRouteEngine getDMLRouteEngine(final SQLStatementContext sqlStatementContext, final ConnectionContext connectionContext) { + private static TablelessRouteEngine getDMLRouteEngine(final SQLStatementContext sqlStatementContext) { if (sqlStatementContext instanceof SelectStatementContext) { - return new TablelessDataSourceUnicastRouteEngine(connectionContext); + return new TablelessDataSourceUnicastRouteEngine(); } return new TablelessIgnoreRouteEngine(); } diff --git a/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/type/unicast/TablelessDataSourceUnicastRouteEngine.java b/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/type/unicast/TablelessDataSourceUnicastRouteEngine.java index d771880cb93..09cf89cdd9d 100644 --- a/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/type/unicast/TablelessDataSourceUnicastRouteEngine.java +++ b/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/type/unicast/TablelessDataSourceUnicastRouteEngine.java @@ -23,7 +23,6 @@ import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.infra.route.context.RouteMapper; import org.apache.shardingsphere.infra.route.context.RouteUnit; import org.apache.shardingsphere.infra.route.engine.tableless.TablelessRouteEngine; -import org.apache.shardingsphere.infra.session.connection.ConnectionContext; import java.util.ArrayList; import java.util.Collection; @@ -36,8 +35,6 @@ import java.util.concurrent.ThreadLocalRandom; @RequiredArgsConstructor public final class TablelessDataSourceUnicastRouteEngine implements TablelessRouteEngine { - private final ConnectionContext connectionContext; - @Override public RouteContext route(final RuleMetaData globalRuleMetaData, final Collection<String> aggregatedDataSources) { RouteContext result = new RouteContext(); @@ -51,7 +48,6 @@ public final class TablelessDataSourceUnicastRouteEngine implements TablelessRou } private String getRandomDataSourceName(final Collection<String> dataSourceNames) { - Collection<String> usedDataSourceNames = connectionContext.getUsedDataSourceNames().isEmpty() ? dataSourceNames : connectionContext.getUsedDataSourceNames(); - return new ArrayList<>(usedDataSourceNames).get(ThreadLocalRandom.current().nextInt(usedDataSourceNames.size())); + return new ArrayList<>(dataSourceNames).get(ThreadLocalRandom.current().nextInt(dataSourceNames.size())); } } diff --git a/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/type/unicast/TablelessDataSourceUnicastRouteEngineTest.java b/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/type/unicast/TablelessDataSourceUnicastRouteEngineTest.java index e2f26d8c723..825a8f54b3e 100644 --- a/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/type/unicast/TablelessDataSourceUnicastRouteEngineTest.java +++ b/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/type/unicast/TablelessDataSourceUnicastRouteEngineTest.java @@ -20,14 +20,12 @@ package org.apache.shardingsphere.infra.route.engine.tableless.type.unicast; import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData; import org.apache.shardingsphere.infra.route.context.RouteContext; import org.apache.shardingsphere.infra.route.context.RouteUnit; -import org.apache.shardingsphere.infra.session.connection.ConnectionContext; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.junit.jupiter.MockitoExtension; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @@ -38,26 +36,13 @@ import static org.mockito.Mockito.mock; class TablelessDataSourceUnicastRouteEngineTest { @Test - void assertRouteWithoutUsedDataSourceNames() { - ConnectionContext connectionContext = new ConnectionContext(Collections::emptyList); + void assertRoute() { Collection<String> aggregatedDataSources = Arrays.asList("foo_ds_1", "foo_ds_2"); - RouteContext actual = new TablelessDataSourceUnicastRouteEngine(connectionContext).route(mock(RuleMetaData.class), aggregatedDataSources); + RouteContext actual = new TablelessDataSourceUnicastRouteEngine().route(mock(RuleMetaData.class), aggregatedDataSources); assertThat(actual.getRouteUnits().size(), is(1)); RouteUnit routeUnit = actual.getRouteUnits().iterator().next(); assertTrue(aggregatedDataSources.contains(routeUnit.getDataSourceMapper().getLogicName())); assertTrue(aggregatedDataSources.contains(routeUnit.getDataSourceMapper().getActualName())); assertThat(routeUnit.getTableMappers().size(), is(0)); } - - @Test - void assertRouteWithUsedDataSourceNames() { - ConnectionContext connectionContext = new ConnectionContext(() -> Collections.singleton("foo_ds_1")); - Collection<String> aggregatedDataSources = Arrays.asList("foo_ds_1", "foo_ds_2"); - RouteContext actual = new TablelessDataSourceUnicastRouteEngine(connectionContext).route(mock(RuleMetaData.class), aggregatedDataSources); - assertThat(actual.getRouteUnits().size(), is(1)); - RouteUnit routeUnit = actual.getRouteUnits().iterator().next(); - assertThat(routeUnit.getDataSourceMapper().getLogicName(), is("foo_ds_1")); - assertThat(routeUnit.getDataSourceMapper().getActualName(), is("foo_ds_1")); - assertThat(routeUnit.getTableMappers().size(), is(0)); - } }