You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2020/11/03 07:11:52 UTC
[shardingsphere] branch master updated: Remove useless
LogicSchemaMetaData.getAllTableNames (#8014)
This is an automated email from the ASF dual-hosted git repository.
zhangyonglun 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 4621a98 Remove useless LogicSchemaMetaData.getAllTableNames (#8014)
4621a98 is described below
commit 4621a98e6f67137c04b6a66debe710ac0b264e29
Author: Liang Zhang <te...@163.com>
AuthorDate: Tue Nov 3 15:11:33 2020 +0800
Remove useless LogicSchemaMetaData.getAllTableNames (#8014)
* Refresh TableAddressingMetaData when DDL executed
* Remove useless LogicSchemaMetaData.getAllTableNames
---
.../ddl/ShardingDDLStatementValidator.java | 2 +-
.../ShardingAlterViewStatementValidatorTest.java | 25 ++++------------
...ardingCreateFunctionStatementValidatorTest.java | 35 ++++------------------
...rdingCreateProcedureStatementValidatorTest.java | 35 ++++------------------
.../ShardingCreateTableStatementValidatorTest.java | 14 ++++-----
.../ShardingCreateViewStatementValidatorTest.java | 24 +++------------
.../metadata/model/logic/LogicSchemaMetaData.java | 12 --------
7 files changed, 27 insertions(+), 120 deletions(-)
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingDDLStatementValidator.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingDDLStatementValidator.java
index f84f60f..6a0ef56 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingDDLStatementValidator.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingDDLStatementValidator.java
@@ -72,7 +72,7 @@ public abstract class ShardingDDLStatementValidator<T extends DDLStatement> impl
protected void validateTableNotExist(final ShardingSphereMetaData metaData, final Collection<SimpleTableSegment> tables) {
for (SimpleTableSegment each : tables) {
String tableName = each.getTableName().getIdentifier().getValue();
- if (metaData.getSchemaMetaData().getAllTableNames().contains(tableName)) {
+ if (metaData.getTableAddressingMetaData().getTableDataSourceNamesMapper().containsKey(tableName)) {
throw new TableExistsException(tableName);
}
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingAlterViewStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingAlterViewStatementValidatorTest.java
index a62ff03..bb4bd70 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingAlterViewStatementValidatorTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingAlterViewStatementValidatorTest.java
@@ -21,8 +21,6 @@ import org.apache.shardingsphere.infra.binder.statement.CommonSQLStatementContex
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.exception.ShardingSphereException;
import org.apache.shardingsphere.infra.metadata.model.ShardingSphereMetaData;
-import org.apache.shardingsphere.infra.metadata.model.logic.LogicSchemaMetaData;
-import org.apache.shardingsphere.infra.metadata.model.physical.model.schema.PhysicalSchemaMetaData;
import org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl.ShardingAlterViewStatementValidator;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
@@ -33,11 +31,9 @@ import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQ
import org.junit.Test;
import org.mockito.Mock;
-import java.util.Collection;
import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -52,16 +48,9 @@ public final class ShardingAlterViewStatementValidatorTest {
selectStatement.setFrom(new SimpleTableSegment(0, 0, new IdentifierValue("t_order_item")));
MySQLAlterViewStatement sqlStatement = new MySQLAlterViewStatement();
sqlStatement.setSelect(selectStatement);
- ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
- LogicSchemaMetaData logicSchemaMetaData = mock(LogicSchemaMetaData.class);
- PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class);
- when(metaData.getSchemaMetaData()).thenReturn(logicSchemaMetaData);
- when(logicSchemaMetaData.getConfiguredSchemaMetaData()).thenReturn(schemaMetaData);
- when(schemaMetaData.getAllTableNames()).thenReturn(Collections.singletonList("t_order"));
- Map<String, Collection<String>> unconfiguredSchemaMetaDataMap = new HashMap<>(1, 1);
- unconfiguredSchemaMetaDataMap.put("ds_0", Collections.singleton("t_order_item"));
- when(logicSchemaMetaData.getUnconfiguredSchemaMetaDataMap()).thenReturn(unconfiguredSchemaMetaDataMap);
SQLStatementContext<AlterViewStatement> sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement);
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
+ when(metaData.getSchemaMetaData().getConfiguredSchemaMetaData().getAllTableNames()).thenReturn(Collections.singletonList("t_order"));
new ShardingAlterViewStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), metaData);
}
@@ -71,12 +60,8 @@ public final class ShardingAlterViewStatementValidatorTest {
selectStatement.setFrom(new SimpleTableSegment(0, 0, new IdentifierValue("t_order")));
MySQLAlterViewStatement sqlStatement = new MySQLAlterViewStatement();
sqlStatement.setSelect(selectStatement);
- ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
- LogicSchemaMetaData logicSchemaMetaData = mock(LogicSchemaMetaData.class);
- PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class);
- when(metaData.getSchemaMetaData()).thenReturn(logicSchemaMetaData);
- when(logicSchemaMetaData.getConfiguredSchemaMetaData()).thenReturn(schemaMetaData);
- when(schemaMetaData.getAllTableNames()).thenReturn(Collections.singleton("t_order"));
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
+ when(metaData.getSchemaMetaData().getConfiguredSchemaMetaData().getAllTableNames()).thenReturn(Collections.singleton("t_order"));
SQLStatementContext<AlterViewStatement> sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement);
new ShardingAlterViewStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), metaData);
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateFunctionStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateFunctionStatementValidatorTest.java
index 152b03a..83fee14 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateFunctionStatementValidatorTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateFunctionStatementValidatorTest.java
@@ -21,9 +21,6 @@ import org.apache.shardingsphere.infra.binder.statement.CommonSQLStatementContex
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.exception.ShardingSphereException;
import org.apache.shardingsphere.infra.metadata.model.ShardingSphereMetaData;
-import org.apache.shardingsphere.infra.metadata.model.addressing.TableAddressingMetaData;
-import org.apache.shardingsphere.infra.metadata.model.logic.LogicSchemaMetaData;
-import org.apache.shardingsphere.infra.metadata.model.physical.model.schema.PhysicalSchemaMetaData;
import org.apache.shardingsphere.sharding.route.engine.exception.NoSuchTableException;
import org.apache.shardingsphere.sharding.route.engine.exception.TableExistsException;
import org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl.ShardingCreateFunctionStatementValidator;
@@ -65,17 +62,9 @@ public final class ShardingCreateFunctionStatementValidatorTest {
routineBody.getValidStatements().add(selectValidStatementSegment);
MySQLCreateFunctionStatement sqlStatement = new MySQLCreateFunctionStatement();
sqlStatement.setRoutineBody(routineBody);
- ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
- LogicSchemaMetaData logicSchemaMetaData = mock(LogicSchemaMetaData.class);
- PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class);
- when(metaData.getSchemaMetaData()).thenReturn(logicSchemaMetaData);
- when(logicSchemaMetaData.getConfiguredSchemaMetaData()).thenReturn(schemaMetaData);
- when(schemaMetaData.getAllTableNames()).thenReturn(Collections.singletonList("t_order"));
- TableAddressingMetaData tableAddressingMetaData = new TableAddressingMetaData();
- tableAddressingMetaData.getTableDataSourceNamesMapper().put("t_order_item", Collections.singletonList("ds_0"));
- when(metaData.getTableAddressingMetaData()).thenReturn(tableAddressingMetaData);
- when(logicSchemaMetaData.getAllTableNames()).thenReturn(Collections.emptyList());
SQLStatementContext<CreateFunctionStatement> sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement);
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
+ when(metaData.getTableAddressingMetaData().getTableDataSourceNamesMapper().containsKey("t_order_item")).thenReturn(true);
new ShardingCreateFunctionStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), metaData);
}
@@ -89,13 +78,8 @@ public final class ShardingCreateFunctionStatementValidatorTest {
routineBody.getValidStatements().add(validStatementSegment);
MySQLCreateFunctionStatement sqlStatement = new MySQLCreateFunctionStatement();
sqlStatement.setRoutineBody(routineBody);
- ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
- LogicSchemaMetaData logicSchemaMetaData = mock(LogicSchemaMetaData.class);
- PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class);
- when(metaData.getSchemaMetaData()).thenReturn(logicSchemaMetaData);
- when(logicSchemaMetaData.getConfiguredSchemaMetaData()).thenReturn(schemaMetaData);
- when(schemaMetaData.getAllTableNames()).thenReturn(Collections.singleton("t_order"));
SQLStatementContext<CreateFunctionStatement> sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement);
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
new ShardingCreateFunctionStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), metaData);
}
@@ -109,13 +93,8 @@ public final class ShardingCreateFunctionStatementValidatorTest {
routineBody.getValidStatements().add(validStatementSegment);
MySQLCreateFunctionStatement sqlStatement = new MySQLCreateFunctionStatement();
sqlStatement.setRoutineBody(routineBody);
- ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
- LogicSchemaMetaData logicSchemaMetaData = mock(LogicSchemaMetaData.class);
- PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class);
- when(metaData.getSchemaMetaData()).thenReturn(logicSchemaMetaData);
- when(logicSchemaMetaData.getConfiguredSchemaMetaData()).thenReturn(schemaMetaData);
- when(schemaMetaData.getAllTableNames()).thenReturn(Collections.emptyList());
SQLStatementContext<CreateFunctionStatement> sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement);
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
new ShardingCreateFunctionStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), metaData);
}
@@ -129,11 +108,9 @@ public final class ShardingCreateFunctionStatementValidatorTest {
routineBody.getValidStatements().add(validStatementSegment);
MySQLCreateFunctionStatement sqlStatement = new MySQLCreateFunctionStatement();
sqlStatement.setRoutineBody(routineBody);
- ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
- LogicSchemaMetaData logicSchemaMetaData = mock(LogicSchemaMetaData.class);
- when(metaData.getSchemaMetaData()).thenReturn(logicSchemaMetaData);
- when(logicSchemaMetaData.getAllTableNames()).thenReturn(Collections.singletonList("t_order"));
SQLStatementContext<CreateFunctionStatement> sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement);
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
+ when(metaData.getTableAddressingMetaData().getTableDataSourceNamesMapper().containsKey("t_order")).thenReturn(true);
new ShardingCreateFunctionStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), metaData);
}
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateProcedureStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateProcedureStatementValidatorTest.java
index edc0da8..51ddbda 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateProcedureStatementValidatorTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateProcedureStatementValidatorTest.java
@@ -21,9 +21,6 @@ import org.apache.shardingsphere.infra.binder.statement.CommonSQLStatementContex
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.exception.ShardingSphereException;
import org.apache.shardingsphere.infra.metadata.model.ShardingSphereMetaData;
-import org.apache.shardingsphere.infra.metadata.model.addressing.TableAddressingMetaData;
-import org.apache.shardingsphere.infra.metadata.model.logic.LogicSchemaMetaData;
-import org.apache.shardingsphere.infra.metadata.model.physical.model.schema.PhysicalSchemaMetaData;
import org.apache.shardingsphere.sharding.route.engine.exception.NoSuchTableException;
import org.apache.shardingsphere.sharding.route.engine.exception.TableExistsException;
import org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl.ShardingCreateProcedureStatementValidator;
@@ -65,17 +62,9 @@ public final class ShardingCreateProcedureStatementValidatorTest {
routineBody.getValidStatements().add(selectValidStatementSegment);
MySQLCreateProcedureStatement sqlStatement = new MySQLCreateProcedureStatement();
sqlStatement.setRoutineBody(routineBody);
- ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
- LogicSchemaMetaData logicSchemaMetaData = mock(LogicSchemaMetaData.class);
- PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class);
- when(metaData.getSchemaMetaData()).thenReturn(logicSchemaMetaData);
- when(logicSchemaMetaData.getConfiguredSchemaMetaData()).thenReturn(schemaMetaData);
- when(schemaMetaData.getAllTableNames()).thenReturn(Collections.singletonList("t_order"));
- TableAddressingMetaData tableAddressingMetaData = new TableAddressingMetaData();
- tableAddressingMetaData.getTableDataSourceNamesMapper().put("t_order_item", Collections.singletonList("ds_0"));
- when(metaData.getTableAddressingMetaData()).thenReturn(tableAddressingMetaData);
- when(logicSchemaMetaData.getAllTableNames()).thenReturn(Collections.emptyList());
SQLStatementContext<CreateProcedureStatement> sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement);
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
+ when(metaData.getTableAddressingMetaData().getTableDataSourceNamesMapper().containsKey("t_order_item")).thenReturn(true);
new ShardingCreateProcedureStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), metaData);
}
@@ -89,12 +78,7 @@ public final class ShardingCreateProcedureStatementValidatorTest {
routineBody.getValidStatements().add(validStatementSegment);
MySQLCreateProcedureStatement sqlStatement = new MySQLCreateProcedureStatement();
sqlStatement.setRoutineBody(routineBody);
- ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
- LogicSchemaMetaData logicSchemaMetaData = mock(LogicSchemaMetaData.class);
- PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class);
- when(metaData.getSchemaMetaData()).thenReturn(logicSchemaMetaData);
- when(logicSchemaMetaData.getConfiguredSchemaMetaData()).thenReturn(schemaMetaData);
- when(schemaMetaData.getAllTableNames()).thenReturn(Collections.singleton("t_order"));
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
SQLStatementContext<CreateProcedureStatement> sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement);
new ShardingCreateProcedureStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), metaData);
}
@@ -109,13 +93,8 @@ public final class ShardingCreateProcedureStatementValidatorTest {
routineBody.getValidStatements().add(validStatementSegment);
MySQLCreateProcedureStatement sqlStatement = new MySQLCreateProcedureStatement();
sqlStatement.setRoutineBody(routineBody);
- ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
- LogicSchemaMetaData logicSchemaMetaData = mock(LogicSchemaMetaData.class);
- PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class);
- when(metaData.getSchemaMetaData()).thenReturn(logicSchemaMetaData);
- when(logicSchemaMetaData.getConfiguredSchemaMetaData()).thenReturn(schemaMetaData);
- when(schemaMetaData.getAllTableNames()).thenReturn(Collections.emptyList());
SQLStatementContext<CreateProcedureStatement> sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement);
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
new ShardingCreateProcedureStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), metaData);
}
@@ -129,11 +108,9 @@ public final class ShardingCreateProcedureStatementValidatorTest {
routineBody.getValidStatements().add(validStatementSegment);
MySQLCreateProcedureStatement sqlStatement = new MySQLCreateProcedureStatement();
sqlStatement.setRoutineBody(routineBody);
- ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
- LogicSchemaMetaData logicSchemaMetaData = mock(LogicSchemaMetaData.class);
- when(metaData.getSchemaMetaData()).thenReturn(logicSchemaMetaData);
- when(logicSchemaMetaData.getAllTableNames()).thenReturn(Collections.singletonList("t_order"));
SQLStatementContext<CreateProcedureStatement> sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement);
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
+ when(metaData.getTableAddressingMetaData().getTableDataSourceNamesMapper().containsKey("t_order")).thenReturn(true);
new ShardingCreateProcedureStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), metaData);
}
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateTableStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateTableStatementValidatorTest.java
index 5982f84..52c1339 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateTableStatementValidatorTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateTableStatementValidatorTest.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.sharding.route.engine.validator.ddl;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.binder.statement.ddl.CreateTableStatementContext;
import org.apache.shardingsphere.infra.metadata.model.ShardingSphereMetaData;
-import org.apache.shardingsphere.infra.metadata.model.logic.LogicSchemaMetaData;
import org.apache.shardingsphere.sharding.route.engine.exception.TableExistsException;
import org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl.ShardingCreateTableStatementValidator;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
@@ -37,6 +36,7 @@ import org.mockito.Mock;
import java.util.Collections;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -84,10 +84,8 @@ public final class ShardingCreateTableStatementValidatorTest {
private void assertValidateCreateTable(final CreateTableStatement sqlStatement) {
SQLStatementContext<CreateTableStatement> sqlStatementContext = new CreateTableStatementContext(sqlStatement);
- ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
- LogicSchemaMetaData logicSchemaMetaData = mock(LogicSchemaMetaData.class);
- when(logicSchemaMetaData.getAllTableNames()).thenReturn(Collections.singleton("t_order"));
- when(metaData.getSchemaMetaData()).thenReturn(logicSchemaMetaData);
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
+ when(metaData.getTableAddressingMetaData().getTableDataSourceNamesMapper().containsKey("t_order")).thenReturn(true);
new ShardingCreateTableStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), metaData);
}
@@ -109,10 +107,8 @@ public final class ShardingCreateTableStatementValidatorTest {
private void assertValidateCreateTableIfNotExists(final CreateTableStatement sqlStatement) {
SQLStatementContext<CreateTableStatement> sqlStatementContext = new CreateTableStatementContext(sqlStatement);
- ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
- LogicSchemaMetaData logicSchemaMetaData = mock(LogicSchemaMetaData.class);
- when(logicSchemaMetaData.getAllTableNames()).thenReturn(Collections.singleton("t_order"));
- when(metaData.getSchemaMetaData()).thenReturn(logicSchemaMetaData);
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
+ when(metaData.getTableAddressingMetaData().getTableDataSourceNamesMapper().containsKey("t_order")).thenReturn(true);
new ShardingCreateTableStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), metaData);
}
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateViewStatementValidatorTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateViewStatementValidatorTest.java
index 0217bbb..9a454c2 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateViewStatementValidatorTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/ShardingCreateViewStatementValidatorTest.java
@@ -21,8 +21,6 @@ import org.apache.shardingsphere.infra.binder.statement.CommonSQLStatementContex
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.exception.ShardingSphereException;
import org.apache.shardingsphere.infra.metadata.model.ShardingSphereMetaData;
-import org.apache.shardingsphere.infra.metadata.model.logic.LogicSchemaMetaData;
-import org.apache.shardingsphere.infra.metadata.model.physical.model.schema.PhysicalSchemaMetaData;
import org.apache.shardingsphere.sharding.route.engine.validator.ddl.impl.ShardingCreateViewStatementValidator;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
@@ -33,11 +31,9 @@ import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQ
import org.junit.Test;
import org.mockito.Mock;
-import java.util.Collection;
import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -52,16 +48,8 @@ public final class ShardingCreateViewStatementValidatorTest {
selectStatement.setFrom(new SimpleTableSegment(0, 0, new IdentifierValue("t_order_item")));
MySQLCreateViewStatement sqlStatement = new MySQLCreateViewStatement();
sqlStatement.setSelect(selectStatement);
- ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
- LogicSchemaMetaData logicSchemaMetaData = mock(LogicSchemaMetaData.class);
- PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class);
- when(metaData.getSchemaMetaData()).thenReturn(logicSchemaMetaData);
- when(logicSchemaMetaData.getConfiguredSchemaMetaData()).thenReturn(schemaMetaData);
- when(schemaMetaData.getAllTableNames()).thenReturn(Collections.singletonList("t_order"));
- Map<String, Collection<String>> unconfiguredSchemaMetaDataMap = new HashMap<>(1, 1);
- unconfiguredSchemaMetaDataMap.put("ds_0", Collections.singleton("t_order_item"));
- when(logicSchemaMetaData.getUnconfiguredSchemaMetaDataMap()).thenReturn(unconfiguredSchemaMetaDataMap);
SQLStatementContext<CreateViewStatement> sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement);
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
new ShardingCreateViewStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), metaData);
}
@@ -71,12 +59,8 @@ public final class ShardingCreateViewStatementValidatorTest {
selectStatement.setFrom(new SimpleTableSegment(0, 0, new IdentifierValue("t_order")));
MySQLCreateViewStatement sqlStatement = new MySQLCreateViewStatement();
sqlStatement.setSelect(selectStatement);
- ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
- LogicSchemaMetaData logicSchemaMetaData = mock(LogicSchemaMetaData.class);
- PhysicalSchemaMetaData schemaMetaData = mock(PhysicalSchemaMetaData.class);
- when(metaData.getSchemaMetaData()).thenReturn(logicSchemaMetaData);
- when(logicSchemaMetaData.getConfiguredSchemaMetaData()).thenReturn(schemaMetaData);
- when(schemaMetaData.getAllTableNames()).thenReturn(Collections.singleton("t_order"));
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
+ when(metaData.getSchemaMetaData().getConfiguredSchemaMetaData().getAllTableNames()).thenReturn(Collections.singleton("t_order"));
SQLStatementContext<CreateViewStatement> sqlStatementContext = new CommonSQLStatementContext<>(sqlStatement);
new ShardingCreateViewStatementValidator().preValidate(shardingRule, sqlStatementContext, Collections.emptyList(), metaData);
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/model/logic/LogicSchemaMetaData.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/model/logic/LogicSchemaMetaData.java
index a4e7c86..f3ccdd5 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/model/logic/LogicSchemaMetaData.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/model/logic/LogicSchemaMetaData.java
@@ -22,7 +22,6 @@ import org.apache.shardingsphere.infra.metadata.model.physical.model.schema.Phys
import org.apache.shardingsphere.infra.metadata.model.physical.model.table.PhysicalTableMetaData;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.Map;
/**
@@ -59,15 +58,4 @@ public final class LogicSchemaMetaData {
public PhysicalSchemaMetaData getSchemaMetaData() {
return allSchemaMetaData;
}
-
- /**
- * Get all table names.
- *
- * @return all table names
- */
- public Collection<String> getAllTableNames() {
- Collection<String> result = new LinkedList<>(configuredSchemaMetaData.getAllTableNames());
- unconfiguredSchemaMetaDataMap.values().forEach(result::addAll);
- return result;
- }
}