Loading sharding-core/sharding-core-route/src/main/java/org/apache/shardingsphere/core/route/type/standard/StandardRoutingEngine.java +14 −1 Original line number Diff line number Diff line Loading @@ -42,9 +42,11 @@ import org.apache.shardingsphere.core.strategy.route.value.RouteValue; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Set; /** * Standard routing engine. Loading Loading @@ -180,7 +182,7 @@ public final class StandardRoutingEngine implements RoutingEngine { for (String each : routedDataSources) { result.addAll(routeTables(tableRule, each, tableShardingValues)); } return result; return removeNonExistNodes(result, tableRule); } private Collection<String> routeDataSources(final TableRule tableRule, final List<RouteValue> databaseShardingValues) { Loading @@ -205,6 +207,17 @@ public final class StandardRoutingEngine implements RoutingEngine { return result; } private Collection<DataNode> removeNonExistNodes(final Collection<DataNode> routedDataNodes, final TableRule tableRule) { Collection<DataNode> result = new LinkedList<>(); Set<DataNode> actualDataNodeSet = new HashSet<>(tableRule.getActualDataNodes()); for (DataNode each : routedDataNodes) { if (actualDataNodeSet.contains(each)) { result.add(each); } } return result; } private void reviseInsertOptimizeResult(final ShardingCondition shardingCondition, final Collection<DataNode> dataNodes) { if (sqlStatement instanceof InsertStatement) { for (InsertOptimizeResultUnit each : optimizeResult.getInsertOptimizeResult().get().getUnits()) { Loading Loading
sharding-core/sharding-core-route/src/main/java/org/apache/shardingsphere/core/route/type/standard/StandardRoutingEngine.java +14 −1 Original line number Diff line number Diff line Loading @@ -42,9 +42,11 @@ import org.apache.shardingsphere.core.strategy.route.value.RouteValue; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Set; /** * Standard routing engine. Loading Loading @@ -180,7 +182,7 @@ public final class StandardRoutingEngine implements RoutingEngine { for (String each : routedDataSources) { result.addAll(routeTables(tableRule, each, tableShardingValues)); } return result; return removeNonExistNodes(result, tableRule); } private Collection<String> routeDataSources(final TableRule tableRule, final List<RouteValue> databaseShardingValues) { Loading @@ -205,6 +207,17 @@ public final class StandardRoutingEngine implements RoutingEngine { return result; } private Collection<DataNode> removeNonExistNodes(final Collection<DataNode> routedDataNodes, final TableRule tableRule) { Collection<DataNode> result = new LinkedList<>(); Set<DataNode> actualDataNodeSet = new HashSet<>(tableRule.getActualDataNodes()); for (DataNode each : routedDataNodes) { if (actualDataNodeSet.contains(each)) { result.add(each); } } return result; } private void reviseInsertOptimizeResult(final ShardingCondition shardingCondition, final Collection<DataNode> dataNodes) { if (sqlStatement instanceof InsertStatement) { for (InsertOptimizeResultUnit each : optimizeResult.getInsertOptimizeResult().get().getUnits()) { Loading