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 1161dde  Rename ShardingUnconfiguredTablesRoutingEngine to 
SingleTableRoutingEngine (#8010)
1161dde is described below

commit 1161ddee801ba60ab10ce4018d528a9e0cd09969
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Nov 2 20:59:18 2020 +0800

    Rename ShardingUnconfiguredTablesRoutingEngine to SingleTableRoutingEngine 
(#8010)
---
 .../engine/type/ShardingRouteEngineFactory.java    | 33 ++++++++++------------
 .../SingleTableRoutingEngine.java}                 | 18 ++++++------
 .../type/ShardingRouteEngineFactoryTest.java       | 22 +++++++--------
 .../SingleTableRoutingEngineTest.java}             | 30 ++++++++++----------
 .../engine/type/standard/AbstractSQLRouteTest.java |  4 ++-
 5 files changed, 53 insertions(+), 54 deletions(-)

diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactory.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactory.java
index ac6d65a..0fa1ee3 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactory.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactory.java
@@ -23,7 +23,6 @@ import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.binder.type.TableAvailable;
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import org.apache.shardingsphere.infra.metadata.model.ShardingSphereMetaData;
-import 
org.apache.shardingsphere.infra.metadata.model.logic.LogicSchemaMetaData;
 import 
org.apache.shardingsphere.sharding.route.engine.condition.ShardingConditions;
 import 
org.apache.shardingsphere.sharding.route.engine.type.broadcast.ShardingDataSourceGroupBroadcastRoutingEngine;
 import 
org.apache.shardingsphere.sharding.route.engine.type.broadcast.ShardingDatabaseBroadcastRoutingEngine;
@@ -32,7 +31,7 @@ import 
org.apache.shardingsphere.sharding.route.engine.type.broadcast.ShardingTa
 import 
org.apache.shardingsphere.sharding.route.engine.type.complex.ShardingComplexRoutingEngine;
 import 
org.apache.shardingsphere.sharding.route.engine.type.ignore.ShardingIgnoreRoutingEngine;
 import 
org.apache.shardingsphere.sharding.route.engine.type.standard.ShardingStandardRoutingEngine;
-import 
org.apache.shardingsphere.sharding.route.engine.type.unconfigured.ShardingUnconfiguredTablesRoutingEngine;
+import 
org.apache.shardingsphere.sharding.route.engine.type.single.SingleTableRoutingEngine;
 import 
org.apache.shardingsphere.sharding.route.engine.type.unicast.ShardingUnicastRoutingEngine;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
@@ -54,7 +53,6 @@ import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQ
 import 
org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dal.PostgreSQLResetParameterStatement;
 
 import java.util.Collection;
-import java.util.Map;
 
 /**
  * Sharding routing engine factory.
@@ -80,13 +78,13 @@ public final class ShardingRouteEngineFactory {
             return new ShardingDatabaseBroadcastRoutingEngine();
         }
         if (sqlStatement instanceof DDLStatement) {
-            return getDDLRoutingEngine(shardingRule, 
metaData.getSchemaMetaData(), sqlStatementContext);
+            return getDDLRoutingEngine(shardingRule, metaData, 
sqlStatementContext);
         }
         if (sqlStatement instanceof DALStatement) {
-            return getDALRoutingEngine(shardingRule, 
metaData.getSchemaMetaData().getUnconfiguredSchemaMetaDataMap(), sqlStatement, 
tableNames);
+            return getDALRoutingEngine(shardingRule, metaData, sqlStatement, 
tableNames);
         }
         if (sqlStatement instanceof DCLStatement) {
-            return getDCLRoutingEngine(shardingRule, 
metaData.getSchemaMetaData().getUnconfiguredSchemaMetaDataMap(), 
sqlStatementContext, metaData);
+            return getDCLRoutingEngine(shardingRule, metaData, 
sqlStatementContext);
         }
         if (shardingRule.isAllBroadcastTables(tableNames)) {
             return sqlStatement instanceof SelectStatement ? new 
ShardingUnicastRoutingEngine(tableNames) : new 
ShardingDatabaseBroadcastRoutingEngine();
@@ -95,12 +93,12 @@ public final class ShardingRouteEngineFactory {
             return new ShardingUnicastRoutingEngine(tableNames);
         }
         if (!shardingRule.tableRuleExists(tableNames)) {
-            return new ShardingUnconfiguredTablesRoutingEngine(tableNames, 
metaData.getSchemaMetaData().getUnconfiguredSchemaMetaDataMap(), sqlStatement);
+            return new SingleTableRoutingEngine(tableNames, 
metaData.getTableAddressingMetaData(), sqlStatement);
         }
         return getShardingRoutingEngine(shardingRule, shardingConditions, 
tableNames, props);
     }
     
-    private static ShardingRouteEngine getDDLRoutingEngine(final ShardingRule 
shardingRule, final LogicSchemaMetaData schemaMetaData, final 
SQLStatementContext<?> sqlStatementContext) {
+    private static ShardingRouteEngine getDDLRoutingEngine(final ShardingRule 
shardingRule, final ShardingSphereMetaData metaData, final 
SQLStatementContext<?> sqlStatementContext) {
         SQLStatement sqlStatement = sqlStatementContext.getSqlStatement();
         boolean functionStatement = sqlStatement instanceof 
CreateFunctionStatement || sqlStatement instanceof AlterFunctionStatement || 
sqlStatement instanceof DropFunctionStatement;
         boolean procedureStatement = sqlStatement instanceof 
CreateProcedureStatement || sqlStatement instanceof AlterProcedureStatement || 
sqlStatement instanceof DropProcedureStatement;
@@ -109,12 +107,12 @@ public final class ShardingRouteEngineFactory {
         }
         Collection<String> tableNames = 
sqlStatementContext.getTablesContext().getTableNames();
         if (!tableNames.isEmpty() && 
!shardingRule.tableRuleExists(tableNames)) {
-            return new ShardingUnconfiguredTablesRoutingEngine(tableNames, 
schemaMetaData.getUnconfiguredSchemaMetaDataMap(), sqlStatement);
+            return new SingleTableRoutingEngine(tableNames, 
metaData.getTableAddressingMetaData(), sqlStatement);
         }
-        return new 
ShardingTableBroadcastRoutingEngine(schemaMetaData.getConfiguredSchemaMetaData(),
 sqlStatementContext);
+        return new 
ShardingTableBroadcastRoutingEngine(metaData.getSchemaMetaData().getSchemaMetaData(),
 sqlStatementContext);
     }
     
-    private static ShardingRouteEngine getDALRoutingEngine(final ShardingRule 
shardingRule, final Map<String, Collection<String>> 
unconfiguredSchemaMetaDataMap, 
+    private static ShardingRouteEngine getDALRoutingEngine(final ShardingRule 
shardingRule, final ShardingSphereMetaData metaData, 
                                                            final SQLStatement 
sqlStatement, final Collection<String> tableNames) {
         if (sqlStatement instanceof MySQLUseStatement) {
             return new ShardingIgnoreRoutingEngine();
@@ -123,7 +121,7 @@ public final class ShardingRouteEngineFactory {
             return new ShardingDatabaseBroadcastRoutingEngine();
         }
         if (!tableNames.isEmpty() && 
!shardingRule.tableRuleExists(tableNames)) {
-            return new ShardingUnconfiguredTablesRoutingEngine(tableNames, 
unconfiguredSchemaMetaDataMap, sqlStatement);
+            return new SingleTableRoutingEngine(tableNames, 
metaData.getTableAddressingMetaData(), sqlStatement);
         }
         if (!tableNames.isEmpty()) {
             return new ShardingUnicastRoutingEngine(tableNames);
@@ -131,19 +129,18 @@ public final class ShardingRouteEngineFactory {
         return new ShardingDataSourceGroupBroadcastRoutingEngine();
     }
     
-    private static ShardingRouteEngine getDCLRoutingEngine(final ShardingRule 
shardingRule, final Map<String, Collection<String>> 
unconfiguredSchemaMetaDataMap,
-                                                           final 
SQLStatementContext sqlStatementContext, final ShardingSphereMetaData metaData) 
{
+    private static ShardingRouteEngine getDCLRoutingEngine(final ShardingRule 
shardingRule, final ShardingSphereMetaData metaData, final 
SQLStatementContext<?> sqlStatementContext) {
         if (isDCLForSingleTable(sqlStatementContext)) {
             Collection<String> tableNames = 
sqlStatementContext.getTablesContext().getTableNames();
-            return !shardingRule.tableRuleExists(tableNames)
-                    ? new ShardingUnconfiguredTablesRoutingEngine(tableNames, 
unconfiguredSchemaMetaDataMap, sqlStatementContext.getSqlStatement()) 
-                    : new 
ShardingTableBroadcastRoutingEngine(metaData.getSchemaMetaData().getConfiguredSchemaMetaData(),
 sqlStatementContext);
+            return shardingRule.tableRuleExists(tableNames)
+                    ? new 
ShardingTableBroadcastRoutingEngine(metaData.getSchemaMetaData().getConfiguredSchemaMetaData(),
 sqlStatementContext)
+                    : new SingleTableRoutingEngine(tableNames, 
metaData.getTableAddressingMetaData(), sqlStatementContext.getSqlStatement());
         } else {
             return new 
ShardingInstanceBroadcastRoutingEngine(metaData.getDataSourcesMetaData());
         }
     }
     
-    private static boolean isDCLForSingleTable(final SQLStatementContext 
sqlStatementContext) {
+    private static boolean isDCLForSingleTable(final SQLStatementContext<?> 
sqlStatementContext) {
         if (sqlStatementContext instanceof TableAvailable) {
             TableAvailable tableSegmentsAvailable = (TableAvailable) 
sqlStatementContext;
             return 1 == tableSegmentsAvailable.getAllTables().size() && 
!"*".equals(tableSegmentsAvailable.getAllTables().iterator().next().getTableName().getIdentifier().getValue());
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/unconfigured/ShardingUnconfiguredTablesRoutingEngine.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTableRoutingEngine.java
similarity index 81%
rename from 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/unconfigured/ShardingUnconfiguredTablesRoutingEngine.java
rename to 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTableRoutingEngine.java
index fefef35..6e98a13 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/unconfigured/ShardingUnconfiguredTablesRoutingEngine.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTableRoutingEngine.java
@@ -15,11 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.sharding.route.engine.type.unconfigured;
+package org.apache.shardingsphere.sharding.route.engine.type.single;
 
 import com.google.common.collect.Lists;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.exception.ShardingSphereException;
+import 
org.apache.shardingsphere.infra.metadata.model.addressing.TableAddressingMetaData;
 import org.apache.shardingsphere.infra.route.context.RouteContext;
 import org.apache.shardingsphere.infra.route.context.RouteMapper;
 import org.apache.shardingsphere.infra.route.context.RouteUnit;
@@ -30,21 +31,19 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateTable
 
 import java.util.Collection;
 import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Optional;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.stream.Collectors;
 
 /**
- * Sharding unconfigured tables engine.
+ * Single table engine.
  */
 @RequiredArgsConstructor
-public final class ShardingUnconfiguredTablesRoutingEngine implements 
ShardingRouteEngine {
+public final class SingleTableRoutingEngine implements ShardingRouteEngine {
     
     private final Collection<String> logicTables;
     
-    private final Map<String, Collection<String>> 
unconfiguredSchemaMetaDataMap;
+    private final TableAddressingMetaData tableAddressingMetaData;
     
     private final SQLStatement sqlStatement;
     
@@ -58,10 +57,11 @@ public final class ShardingUnconfiguredTablesRoutingEngine 
implements ShardingRo
         routeContext.getRouteUnits().add(new RouteUnit(new 
RouteMapper(dataSourceName.get(), dataSourceName.get()), routingTables));
     }
     
+    // TODO maybe enhance here, only return one data source for multiple 
tables for now
     private Optional<String> findDataSourceName() {
-        for (Entry<String, Collection<String>> entry : 
unconfiguredSchemaMetaDataMap.entrySet()) {
-            if (entry.getValue().containsAll(logicTables)) {
-                return Optional.of(entry.getKey());
+        for (String each : logicTables) {
+            if 
(tableAddressingMetaData.getTableDataSourceNamesMapper().containsKey(each)) {
+                return 
Optional.of(tableAddressingMetaData.getTableDataSourceNamesMapper().get(each).iterator().next());
             }
         }
         return Optional.empty();
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
index 8536508..2855a2f 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
@@ -30,7 +30,7 @@ import 
org.apache.shardingsphere.sharding.route.engine.type.broadcast.ShardingIn
 import 
org.apache.shardingsphere.sharding.route.engine.type.broadcast.ShardingTableBroadcastRoutingEngine;
 import 
org.apache.shardingsphere.sharding.route.engine.type.complex.ShardingComplexRoutingEngine;
 import 
org.apache.shardingsphere.sharding.route.engine.type.standard.ShardingStandardRoutingEngine;
-import 
org.apache.shardingsphere.sharding.route.engine.type.unconfigured.ShardingUnconfiguredTablesRoutingEngine;
+import 
org.apache.shardingsphere.sharding.route.engine.type.single.SingleTableRoutingEngine;
 import 
org.apache.shardingsphere.sharding.route.engine.type.unicast.ShardingUnicastRoutingEngine;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
@@ -122,7 +122,7 @@ public final class ShardingRouteEngineFactoryTest {
         
when(sqlStatementContext.getTablesContext().getTableNames()).thenReturn(Collections.singletonList("tbl"));
         
when(shardingRule.tableRuleExists(sqlStatementContext.getTablesContext().getTableNames())).thenReturn(false);
         ShardingRouteEngine actual = 
ShardingRouteEngineFactory.newInstance(shardingRule, shardingSphereMetaData, 
sqlStatementContext, shardingConditions, props);
-        assertThat(actual, 
instanceOf(ShardingUnconfiguredTablesRoutingEngine.class));
+        assertThat(actual, instanceOf(SingleTableRoutingEngine.class));
     }
     
     @Test
@@ -221,27 +221,27 @@ public final class ShardingRouteEngineFactoryTest {
     }
     
     @Test
-    public void assertNewInstanceForUnconfiguredTables() {
+    public void assertNewInstanceForSingleTable() {
         tableNames.add("tbl");
         when(shardingRule.tableRuleExists(tableNames)).thenReturn(false);
         SQLStatement sqlStatement = mock(SQLStatement.class);
         when(sqlStatementContext.getSqlStatement()).thenReturn(sqlStatement);
         ShardingRouteEngine actual = 
ShardingRouteEngineFactory.newInstance(shardingRule, shardingSphereMetaData, 
sqlStatementContext, shardingConditions, props);
-        assertThat(actual, 
instanceOf(ShardingUnconfiguredTablesRoutingEngine.class));
+        assertThat(actual, instanceOf(SingleTableRoutingEngine.class));
     }
     
     @Test
-    public void assertNewInstanceForSelectWithUnconfiguredTables() {
+    public void assertNewInstanceForSelectWithSingleTable() {
         tableNames.add("tbl");
         when(shardingRule.tableRuleExists(tableNames)).thenReturn(false);
         SQLStatement sqlStatement = mock(MySQLSelectStatement.class);
         when(sqlStatementContext.getSqlStatement()).thenReturn(sqlStatement);
         ShardingRouteEngine actual = 
ShardingRouteEngineFactory.newInstance(shardingRule, shardingSphereMetaData, 
sqlStatementContext, shardingConditions, props);
-        assertThat(actual, 
instanceOf(ShardingUnconfiguredTablesRoutingEngine.class));
+        assertThat(actual, instanceOf(SingleTableRoutingEngine.class));
     }
     
     @Test
-    public void assertNewInstanceForSelectWithoutUnconfiguredTables() {
+    public void assertNewInstanceForSelectWithoutSingleTable() {
         SQLStatement sqlStatement = mock(MySQLSelectStatement.class);
         when(sqlStatementContext.getSqlStatement()).thenReturn(sqlStatement);
         ShardingRouteEngine actual = 
ShardingRouteEngineFactory.newInstance(shardingRule, shardingSphereMetaData, 
sqlStatementContext, shardingConditions, props);
@@ -308,13 +308,13 @@ public final class ShardingRouteEngineFactoryTest {
     }
     
     @Test
-    public void assertNewInstanceForShowCreateTableWithUnconfiguredTables() {
+    public void assertNewInstanceForShowCreateTableWithSingleTable() {
         DALStatement dalStatement = mock(MySQLShowCreateTableStatement.class);
         when(sqlStatementContext.getSqlStatement()).thenReturn(dalStatement);
         when(shardingRule.tableRuleExists(tableNames)).thenReturn(false);
         tableNames.add("table_1");
         ShardingRouteEngine actual = 
ShardingRouteEngineFactory.newInstance(shardingRule, shardingSphereMetaData, 
sqlStatementContext, shardingConditions, props);
-        assertThat(actual, 
instanceOf(ShardingUnconfiguredTablesRoutingEngine.class));
+        assertThat(actual, instanceOf(SingleTableRoutingEngine.class));
     }
     
     @Test
@@ -328,13 +328,13 @@ public final class ShardingRouteEngineFactoryTest {
     }
     
     @Test
-    public void assertNewInstanceForShowColumnsWithUnconfiguredTables() {
+    public void assertNewInstanceForShowColumnsWithSingleTable() {
         DALStatement dalStatement = mock(MySQLShowColumnsStatement.class);
         when(sqlStatementContext.getSqlStatement()).thenReturn(dalStatement);
         when(shardingRule.tableRuleExists(tableNames)).thenReturn(false);
         tableNames.add("table_1");
         ShardingRouteEngine actual = 
ShardingRouteEngineFactory.newInstance(shardingRule, shardingSphereMetaData, 
sqlStatementContext, shardingConditions, props);
-        assertThat(actual, 
instanceOf(ShardingUnconfiguredTablesRoutingEngine.class));
+        assertThat(actual, instanceOf(SingleTableRoutingEngine.class));
     }
     
 }
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/unconfigured/ShardingUnconfiguredTablesRoutingEngineTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTableRoutingEngineTest.java
similarity index 74%
rename from 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/unconfigured/ShardingUnconfiguredTablesRoutingEngineTest.java
rename to 
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTableRoutingEngineTest.java
index 67f3706..8f6ebbe 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/unconfigured/ShardingUnconfiguredTablesRoutingEngineTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTableRoutingEngineTest.java
@@ -15,8 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.sharding.route.engine.type.unconfigured;
+package org.apache.shardingsphere.sharding.route.engine.type.single;
 
+import 
org.apache.shardingsphere.infra.metadata.model.addressing.TableAddressingMetaData;
 import org.apache.shardingsphere.infra.route.context.RouteContext;
 import org.apache.shardingsphere.infra.route.context.RouteMapper;
 import org.apache.shardingsphere.infra.route.context.RouteUnit;
@@ -27,27 +28,22 @@ import org.junit.Test;
 
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 
-public final class ShardingUnconfiguredTablesRoutingEngineTest {
+public final class SingleTableRoutingEngineTest {
     
     @Test
     public void assertRoute() {
-        Map<String, Collection<String>> unconfiguredSchemaMetaDataMap = new 
HashMap<>(1, 1);
-        unconfiguredSchemaMetaDataMap.put("ds_0", Arrays.asList("t_order", 
"t_order_item"));
-        ShardingUnconfiguredTablesRoutingEngine 
shardingDefaultDatabaseRoutingEngine 
-                = new 
ShardingUnconfiguredTablesRoutingEngine(Arrays.asList("t_order", 
"t_order_item"), unconfiguredSchemaMetaDataMap, null);
+        SingleTableRoutingEngine singleTableRoutingEngine = new 
SingleTableRoutingEngine(Arrays.asList("t_order", "t_order_item"), 
createTableAddressingMetaData(), null);
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         ShardingRule shardingRule = new ShardingRule(shardingRuleConfig, 
Arrays.asList("ds_0", "ds_1"));
         RouteContext routeContext = new RouteContext();
-        shardingDefaultDatabaseRoutingEngine.route(routeContext, shardingRule);
+        singleTableRoutingEngine.route(routeContext, shardingRule);
         List<RouteUnit> routeUnits = new 
ArrayList<>(routeContext.getRouteUnits());
         assertThat(routeContext.getRouteUnits().size(), is(1));
         assertThat(routeUnits.get(0).getDataSourceMapper().getActualName(), 
is("ds_0"));
@@ -63,14 +59,11 @@ public final class 
ShardingUnconfiguredTablesRoutingEngineTest {
     
     @Test
     public void assertRouteWithoutShardingRule() {
-        Map<String, Collection<String>> unconfiguredSchemaMetaDataMap = new 
HashMap<>(1, 1);
-        unconfiguredSchemaMetaDataMap.put("ds_0", Arrays.asList("t_order", 
"t_order_item"));
-        ShardingUnconfiguredTablesRoutingEngine 
shardingDefaultDatabaseRoutingEngine 
-                = new 
ShardingUnconfiguredTablesRoutingEngine(Arrays.asList("t_order", 
"t_order_item"), unconfiguredSchemaMetaDataMap, new 
MySQLCreateTableStatement());
+        SingleTableRoutingEngine singleTableRoutingEngine = new 
SingleTableRoutingEngine(Arrays.asList("t_order", "t_order_item"), 
createTableAddressingMetaData(), new MySQLCreateTableStatement());
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         ShardingRule shardingRule = new ShardingRule(shardingRuleConfig, 
Arrays.asList("ds_0", "ds_1"));
         RouteContext routeContext = new RouteContext();
-        shardingDefaultDatabaseRoutingEngine.route(routeContext, shardingRule);
+        singleTableRoutingEngine.route(routeContext, shardingRule);
         List<RouteUnit> routeUnits = new 
ArrayList<>(routeContext.getRouteUnits());
         assertThat(routeContext.getRouteUnits().size(), is(1));
         assertThat(routeUnits.get(0).getTableMappers().size(), is(2));
@@ -82,4 +75,11 @@ public final class 
ShardingUnconfiguredTablesRoutingEngineTest {
         assertThat(tableMapper1.getActualName(), is("t_order_item"));
         assertThat(tableMapper1.getLogicName(), is("t_order_item"));
     }
+    
+    private TableAddressingMetaData createTableAddressingMetaData() {
+        TableAddressingMetaData result = new TableAddressingMetaData();
+        result.getTableDataSourceNamesMapper().put("t_order", 
Collections.singletonList("ds_0"));
+        result.getTableDataSourceNamesMapper().put("t_order_item", 
Collections.singletonList("ds_0"));
+        return result;
+    }
 }
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java
index 84990e4..a9966f3 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java
@@ -55,7 +55,9 @@ public abstract class AbstractSQLRouteTest extends 
AbstractRoutingEngineTest {
     
     protected final RouteContext assertRoute(final String sql, final 
List<Object> parameters) {
         ShardingRule shardingRule = createAllShardingRule();
-        ShardingSphereMetaData metaData = new 
ShardingSphereMetaData(buildDataSourceMetas(), buildLogicSchemaMetaData(), 
mock(TableAddressingMetaData.class), mock(CachedDatabaseMetaData.class));
+        TableAddressingMetaData tableAddressingMetaData = new 
TableAddressingMetaData();
+        
tableAddressingMetaData.getTableDataSourceNamesMapper().put("t_category", 
Collections.singletonList("single_db"));
+        ShardingSphereMetaData metaData = new 
ShardingSphereMetaData(buildDataSourceMetas(), buildLogicSchemaMetaData(), 
tableAddressingMetaData, mock(CachedDatabaseMetaData.class));
         ConfigurationProperties props = new ConfigurationProperties(new 
Properties());
         SQLStatementParserEngine sqlStatementParserEngine = new 
SQLStatementParserEngine("MySQL");
         SQLStatementContext<?> sqlStatementContext = 
SQLStatementContextFactory.newInstance(

Reply via email to