You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by me...@apache.org on 2022/06/25 23:16:19 UTC
[shardingsphere] branch master updated: Revert "Support force route db or table use hint (#18592)" (#18597)
This is an automated email from the ASF dual-hosted git repository.
menghaoran 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 96ce852abc6 Revert "Support force route db or table use hint (#18592)" (#18597)
96ce852abc6 is described below
commit 96ce852abc657da0c9a33d3823b4cdce9864eb83
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sun Jun 26 07:16:06 2022 +0800
Revert "Support force route db or table use hint (#18592)" (#18597)
---
.../standard/ShardingStandardRoutingEngine.java | 32 +++-------------
.../ShardingStandardRoutingEngineTest.java | 43 ----------------------
2 files changed, 5 insertions(+), 70 deletions(-)
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/standard/ShardingStandardRoutingEngine.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/standard/ShardingStandardRoutingEngine.java
index a17dba726f4..016fce7c290 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/standard/ShardingStandardRoutingEngine.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/standard/ShardingStandardRoutingEngine.java
@@ -40,6 +40,7 @@ import org.apache.shardingsphere.sharding.rule.BindingTableRule;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sharding.rule.TableRule;
import org.apache.shardingsphere.sharding.spi.ShardingAlgorithm;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -47,7 +48,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import java.util.LinkedHashSet;
/**
* Sharding standard routing engine.
@@ -202,16 +202,6 @@ public final class ShardingStandardRoutingEngine implements ShardingRouteEngine
}
private Collection<String> routeDataSources(final TableRule tableRule, final ShardingStrategy databaseShardingStrategy, final List<ShardingConditionValue> databaseShardingValues) {
- if (!(databaseShardingStrategy instanceof HintShardingStrategy)) {
- Collection<Comparable<?>> databaseShardings = HintManager.getDatabaseShardingValues(tableRule.getLogicTable());
- if (databaseShardings != null && databaseShardings.size() > 0) {
- List<String> list = new ArrayList<>();
- for (Comparable<?> databaseSharding : databaseShardings) {
- list.add(String.valueOf(databaseSharding));
- }
- return list;
- }
- }
if (databaseShardingValues.isEmpty()) {
return tableRule.getActualDatasourceNames();
}
@@ -224,22 +214,10 @@ public final class ShardingStandardRoutingEngine implements ShardingRouteEngine
private Collection<DataNode> routeTables(final TableRule tableRule, final String routedDataSource,
final ShardingStrategy tableShardingStrategy, final List<ShardingConditionValue> tableShardingValues) {
- Collection<String> routedTables = null;
- if (!(tableShardingStrategy instanceof HintShardingStrategy)) {
- Collection<Comparable<?>> tableShardings = HintManager.getTableShardingValues(tableRule.getLogicTable());
- if (tableShardings != null && tableShardings.size() > 0) {
- routedTables = new ArrayList<>(2);
- for (Comparable<?> tableSharding : tableShardings) {
- routedTables.add((String) tableSharding);
- }
- }
- }
- if (routedTables == null || routedTables.isEmpty()) {
- Collection<String> availableTargetTables = tableRule.getActualTableNames(routedDataSource);
- routedTables = new LinkedHashSet<>(tableShardingValues.isEmpty()
- ? availableTargetTables
- : tableShardingStrategy.doSharding(availableTargetTables, tableShardingValues, tableRule.getTableDataNode(), properties));
- }
+ Collection<String> availableTargetTables = tableRule.getActualTableNames(routedDataSource);
+ Collection<String> routedTables = tableShardingValues.isEmpty()
+ ? availableTargetTables
+ : tableShardingStrategy.doSharding(availableTargetTables, tableShardingValues, tableRule.getTableDataNode(), properties);
Collection<DataNode> result = new LinkedList<>();
for (String each : routedTables) {
result.add(new DataNode(routedDataSource, each));
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/ShardingStandardRoutingEngineTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/ShardingStandardRoutingEngineTest.java
index 176b04c3ed2..ee8746f88d1 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/ShardingStandardRoutingEngineTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/ShardingStandardRoutingEngineTest.java
@@ -82,49 +82,6 @@ public final class ShardingStandardRoutingEngineTest extends AbstractRoutingEngi
assertThat(routeUnits.get(0).getTableMappers().iterator().next().getLogicName(), is("t_order"));
}
- @Test
- public void assertForceRouteDbUseHintByShardingConditions() {
- ShardingStandardRoutingEngine standardRoutingEngine = createShardingStandardRoutingEngine("t_order", createShardingConditions("t_order"));
- HintManager hintManager = HintManager.getInstance();
- hintManager.addDatabaseShardingValue("t_order", "ds_0");
- RouteContext routeContext = standardRoutingEngine.route(createBasedShardingRule());
- List<RouteUnit> routeUnits = new ArrayList<>(routeContext.getRouteUnits());
- assertThat(routeContext.getRouteUnits().size(), is(1));
- assertThat(routeUnits.get(0).getDataSourceMapper().getActualName(), is("ds_0"));
- assertThat(routeUnits.get(0).getTableMappers().size(), is(1));
- assertThat(routeUnits.get(0).getTableMappers().iterator().next().getActualName(), is("t_order_1"));
- assertThat(routeUnits.get(0).getTableMappers().iterator().next().getLogicName(), is("t_order"));
- }
-
- @Test
- public void assertForceRouteTableUseHintByShardingConditions() {
- ShardingStandardRoutingEngine standardRoutingEngine = createShardingStandardRoutingEngine("t_order", createShardingConditions("t_order"));
- HintManager hintManager = HintManager.getInstance();
- hintManager.addTableShardingValue("t_order", "t_order_0");
- RouteContext routeContext = standardRoutingEngine.route(createBasedShardingRule());
- List<RouteUnit> routeUnits = new ArrayList<>(routeContext.getRouteUnits());
- assertThat(routeContext.getRouteUnits().size(), is(1));
- assertThat(routeUnits.get(0).getDataSourceMapper().getActualName(), is("ds_1"));
- assertThat(routeUnits.get(0).getTableMappers().size(), is(1));
- assertThat(routeUnits.get(0).getTableMappers().iterator().next().getActualName(), is("t_order_0"));
- assertThat(routeUnits.get(0).getTableMappers().iterator().next().getLogicName(), is("t_order"));
- }
-
- @Test
- public void assertForceRouteDbAndTableUseHintByShardingConditions() {
- ShardingStandardRoutingEngine standardRoutingEngine = createShardingStandardRoutingEngine("t_order", createShardingConditions("t_order"));
- HintManager hintManager = HintManager.getInstance();
- hintManager.addDatabaseShardingValue("t_order", "ds_0");
- hintManager.addTableShardingValue("t_order", "t_order_0");
- RouteContext routeContext = standardRoutingEngine.route(createBasedShardingRule());
- List<RouteUnit> routeUnits = new ArrayList<>(routeContext.getRouteUnits());
- assertThat(routeContext.getRouteUnits().size(), is(1));
- assertThat(routeUnits.get(0).getDataSourceMapper().getActualName(), is("ds_0"));
- assertThat(routeUnits.get(0).getTableMappers().size(), is(1));
- assertThat(routeUnits.get(0).getTableMappers().iterator().next().getActualName(), is("t_order_0"));
- assertThat(routeUnits.get(0).getTableMappers().iterator().next().getLogicName(), is("t_order"));
- }
-
@Test(expected = ShardingSphereException.class)
public void assertRouteByErrorShardingTableStrategy() {
ShardingStandardRoutingEngine standardRoutingEngine = createShardingStandardRoutingEngine("t_order", createErrorShardingConditions("t_order"));