You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2025/04/16 04:02:39 UTC
(shardingsphere) branch master updated: Use provided dataSourceNames instead of usedDataSourceNames. (#35201)
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 <ia...@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));
- }
}