Skip to content

Commit 751fe97

Browse files
authored
Use provided dataSourceNames instead of usedDataSourceNames. (#35201)
Ensure return logic datasource name.
1 parent a75a02a commit 751fe97

File tree

3 files changed

+6
-26
lines changed

3 files changed

+6
-26
lines changed

infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactory.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import org.apache.shardingsphere.infra.route.engine.tableless.type.broadcast.TablelessInstanceBroadcastRouteEngine;
2929
import org.apache.shardingsphere.infra.route.engine.tableless.type.ignore.TablelessIgnoreRouteEngine;
3030
import org.apache.shardingsphere.infra.route.engine.tableless.type.unicast.TablelessDataSourceUnicastRouteEngine;
31-
import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
3231
import org.apache.shardingsphere.infra.session.query.QueryContext;
3332
import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
3433
import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.AlterResourceGroupStatement;
@@ -82,7 +81,7 @@ public static TablelessRouteEngine newInstance(final QueryContext queryContext,
8281
return getDDLRouteEngine(queryContext.getSqlStatementContext(), database);
8382
}
8483
if (sqlStatement instanceof DMLStatement) {
85-
return getDMLRouteEngine(queryContext.getSqlStatementContext(), queryContext.getConnectionContext());
84+
return getDMLRouteEngine(queryContext.getSqlStatementContext());
8685
}
8786
return new TablelessIgnoreRouteEngine();
8887
}
@@ -135,9 +134,9 @@ private static TablelessRouteEngine getCursorRouteEngine(final SQLStatementConte
135134
return new TablelessIgnoreRouteEngine();
136135
}
137136

138-
private static TablelessRouteEngine getDMLRouteEngine(final SQLStatementContext sqlStatementContext, final ConnectionContext connectionContext) {
137+
private static TablelessRouteEngine getDMLRouteEngine(final SQLStatementContext sqlStatementContext) {
139138
if (sqlStatementContext instanceof SelectStatementContext) {
140-
return new TablelessDataSourceUnicastRouteEngine(connectionContext);
139+
return new TablelessDataSourceUnicastRouteEngine();
141140
}
142141
return new TablelessIgnoreRouteEngine();
143142
}

infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/type/unicast/TablelessDataSourceUnicastRouteEngine.java

+1-5
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.apache.shardingsphere.infra.route.context.RouteMapper;
2424
import org.apache.shardingsphere.infra.route.context.RouteUnit;
2525
import org.apache.shardingsphere.infra.route.engine.tableless.TablelessRouteEngine;
26-
import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
2726

2827
import java.util.ArrayList;
2928
import java.util.Collection;
@@ -36,8 +35,6 @@
3635
@RequiredArgsConstructor
3736
public final class TablelessDataSourceUnicastRouteEngine implements TablelessRouteEngine {
3837

39-
private final ConnectionContext connectionContext;
40-
4138
@Override
4239
public RouteContext route(final RuleMetaData globalRuleMetaData, final Collection<String> aggregatedDataSources) {
4340
RouteContext result = new RouteContext();
@@ -51,7 +48,6 @@ private RouteMapper getDataSourceRouteMapper(final Collection<String> dataSource
5148
}
5249

5350
private String getRandomDataSourceName(final Collection<String> dataSourceNames) {
54-
Collection<String> usedDataSourceNames = connectionContext.getUsedDataSourceNames().isEmpty() ? dataSourceNames : connectionContext.getUsedDataSourceNames();
55-
return new ArrayList<>(usedDataSourceNames).get(ThreadLocalRandom.current().nextInt(usedDataSourceNames.size()));
51+
return new ArrayList<>(dataSourceNames).get(ThreadLocalRandom.current().nextInt(dataSourceNames.size()));
5652
}
5753
}

infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/type/unicast/TablelessDataSourceUnicastRouteEngineTest.java

+2-17
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,12 @@
2020
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
2121
import org.apache.shardingsphere.infra.route.context.RouteContext;
2222
import org.apache.shardingsphere.infra.route.context.RouteUnit;
23-
import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
2423
import org.junit.jupiter.api.Test;
2524
import org.junit.jupiter.api.extension.ExtendWith;
2625
import org.mockito.junit.jupiter.MockitoExtension;
2726

2827
import java.util.Arrays;
2928
import java.util.Collection;
30-
import java.util.Collections;
3129

3230
import static org.hamcrest.CoreMatchers.is;
3331
import static org.hamcrest.MatcherAssert.assertThat;
@@ -38,26 +36,13 @@
3836
class TablelessDataSourceUnicastRouteEngineTest {
3937

4038
@Test
41-
void assertRouteWithoutUsedDataSourceNames() {
42-
ConnectionContext connectionContext = new ConnectionContext(Collections::emptyList);
39+
void assertRoute() {
4340
Collection<String> aggregatedDataSources = Arrays.asList("foo_ds_1", "foo_ds_2");
44-
RouteContext actual = new TablelessDataSourceUnicastRouteEngine(connectionContext).route(mock(RuleMetaData.class), aggregatedDataSources);
41+
RouteContext actual = new TablelessDataSourceUnicastRouteEngine().route(mock(RuleMetaData.class), aggregatedDataSources);
4542
assertThat(actual.getRouteUnits().size(), is(1));
4643
RouteUnit routeUnit = actual.getRouteUnits().iterator().next();
4744
assertTrue(aggregatedDataSources.contains(routeUnit.getDataSourceMapper().getLogicName()));
4845
assertTrue(aggregatedDataSources.contains(routeUnit.getDataSourceMapper().getActualName()));
4946
assertThat(routeUnit.getTableMappers().size(), is(0));
5047
}
51-
52-
@Test
53-
void assertRouteWithUsedDataSourceNames() {
54-
ConnectionContext connectionContext = new ConnectionContext(() -> Collections.singleton("foo_ds_1"));
55-
Collection<String> aggregatedDataSources = Arrays.asList("foo_ds_1", "foo_ds_2");
56-
RouteContext actual = new TablelessDataSourceUnicastRouteEngine(connectionContext).route(mock(RuleMetaData.class), aggregatedDataSources);
57-
assertThat(actual.getRouteUnits().size(), is(1));
58-
RouteUnit routeUnit = actual.getRouteUnits().iterator().next();
59-
assertThat(routeUnit.getDataSourceMapper().getLogicName(), is("foo_ds_1"));
60-
assertThat(routeUnit.getDataSourceMapper().getActualName(), is("foo_ds_1"));
61-
assertThat(routeUnit.getTableMappers().size(), is(0));
62-
}
6348
}

0 commit comments

Comments
 (0)