You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2020/12/30 14:24:47 UTC
[shardingsphere] branch master updated: Use datanode to assert DDL
IT (#8838)
This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 6f1a0d0 Use datanode to assert DDL IT (#8838)
6f1a0d0 is described below
commit 6f1a0d031f9b08bc9ec7c935022a5026b4e0f1fc
Author: Liang Zhang <te...@163.com>
AuthorDate: Wed Dec 30 22:24:32 2020 +0800
Use datanode to assert DDL IT (#8838)
* Use datanode assert DDL IT
* Merge proxy and jdbc GeneralDDLIT
* Move assertTableMetaData to parent class
* Assert drop table
---
.../test/integration/cases/dataset/DataSet.java | 14 +-
.../test/integration/engine/it/ddl/BaseDDLIT.java | 123 ++++++++++++++++
.../{JDBCGeneralDDLIT.java => GeneralDDLIT.java} | 49 +------
.../engine/it/ddl/ProxyGeneralDDLIT.java | 160 ---------------------
.../cases/ddl/dataset/{ => db}/alter_table.xml | 2 +-
.../cases/ddl/dataset/{ => db}/create_index.xml | 2 +-
.../cases/ddl/dataset/{ => db}/create_table.xml | 2 +-
.../ddl/dataset/{ => db}/create_unique_index.xml | 2 +-
.../cases/ddl/dataset/{ => db}/drop_table.xml | 4 +-
.../cases/ddl/dataset/{ => db}/unchanged_table.xml | 2 +-
.../{ => dbtbl_with_replica_query}/alter_table.xml | 2 +-
.../create_index.xml | 2 +-
.../create_table.xml | 2 +-
.../create_unique_index.xml | 2 +-
.../drop_table.xml} | 5 +-
.../unchanged_table.xml | 2 +-
.../dataset/{ => replica_query}/alter_table.xml | 2 +-
.../dataset/{ => replica_query}/create_index.xml | 2 +-
.../dataset/{ => replica_query}/create_table.xml | 2 +-
.../{ => replica_query}/create_unique_index.xml | 2 +-
.../ddl/dataset/{ => replica_query}/drop_table.xml | 4 +-
.../{ => replica_query}/unchanged_table.xml | 2 +-
.../cases/ddl/dataset/{ => shadow}/alter_table.xml | 2 +-
.../ddl/dataset/{ => shadow}/create_index.xml | 2 +-
.../ddl/dataset/{ => shadow}/create_table.xml | 2 +-
.../dataset/{ => shadow}/create_unique_index.xml | 2 +-
.../cases/ddl/dataset/{ => shadow}/drop_table.xml | 4 +-
.../ddl/dataset/{ => shadow}/unchanged_table.xml | 2 +-
.../cases/ddl/dataset/{ => tbl}/alter_table.xml | 2 +-
.../cases/ddl/dataset/{ => tbl}/create_index.xml | 2 +-
.../cases/ddl/dataset/{ => tbl}/create_table.xml | 2 +-
.../ddl/dataset/{ => tbl}/create_unique_index.xml | 2 +-
.../cases/ddl/dataset/{ => tbl}/drop_table.xml | 4 +-
.../ddl/dataset/{ => tbl}/unchanged_table.xml | 2 +-
34 files changed, 174 insertions(+), 243 deletions(-)
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/dataset/DataSet.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/dataset/DataSet.java
index 7d62550..b5436ed 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/dataset/DataSet.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/dataset/DataSet.java
@@ -18,10 +18,10 @@
package org.apache.shardingsphere.test.integration.cases.dataset;
import lombok.Getter;
+import org.apache.shardingsphere.infra.datanode.DataNode;
+import org.apache.shardingsphere.sharding.algorithm.sharding.inline.InlineExpressionParser;
import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetMetadata;
import org.apache.shardingsphere.test.integration.cases.dataset.row.DataSetRow;
-import org.apache.shardingsphere.sharding.algorithm.sharding.inline.InlineExpressionParser;
-import org.apache.shardingsphere.infra.datanode.DataNode;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
@@ -29,13 +29,11 @@ import javax.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
-import java.util.Optional;
/**
* Data sets root xml entry.
*/
@Getter
-//@Setter
@XmlRootElement(name = "dataset")
public final class DataSet {
@@ -54,15 +52,15 @@ public final class DataSet {
* @param tableName table name
* @return data set meta data belong to current table
*/
- public Optional<DataSetMetadata> findMetadata(final String tableName) {
+ public DataSetMetadata findMetadata(final String tableName) {
for (DataSetMetadata each : metadataList) {
if (tableName.equals(each.getTableName())) {
- return Optional.of(each);
+ return each;
}
}
- return Optional.empty();
+ throw new IllegalArgumentException(String.format("Cannot find expected metadata via table name: '%s'", tableName));
}
-
+
/**
* Find data set meta data via data node.
*
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
index 3d8408a..e140c96 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
@@ -20,8 +20,13 @@ package org.apache.shardingsphere.test.integration.engine.it.ddl;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import org.apache.shardingsphere.infra.datanode.DataNode;
+import org.apache.shardingsphere.sharding.algorithm.sharding.inline.InlineExpressionParser;
import org.apache.shardingsphere.test.integration.cases.assertion.ddl.DDLIntegrateTestCaseAssertion;
import org.apache.shardingsphere.test.integration.cases.assertion.root.SQLCaseType;
+import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetColumn;
+import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetIndex;
+import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetMetadata;
import org.apache.shardingsphere.test.integration.engine.it.SingleIT;
import org.apache.shardingsphere.test.integration.env.EnvironmentPath;
import org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironmentManager;
@@ -34,9 +39,19 @@ import org.junit.BeforeClass;
import javax.xml.bind.JAXBException;
import java.io.IOException;
import java.sql.Connection;
+import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
+import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThat;
public abstract class BaseDDLIT extends SingleIT {
@@ -91,4 +106,112 @@ public abstract class BaseDDLIT extends SingleIT {
} catch (final SQLException ignored) {
}
}
+
+ protected final void assertTableMetaData() throws SQLException {
+ String tableName = ((DDLIntegrateTestCaseAssertion) getAssertion()).getTable();
+ DataSetMetadata expected = getDataSet().findMetadata(tableName);
+ Collection<DataNode> dataNodes = new InlineExpressionParser(expected.getDataNodes()).splitAndEvaluate().stream().map(DataNode::new).collect(Collectors.toList());
+ if (expected.getColumns().isEmpty()) {
+ assertFalse(containsTable(dataNodes));
+ return;
+ }
+ assertTableMetaData(getActualColumns(dataNodes), getActualIndexes(dataNodes), expected);
+ }
+
+ private void assertTableMetaData(final List<DataSetColumn> actualColumns, final List<DataSetIndex> actualIndexes, final DataSetMetadata expected) {
+ for (DataSetColumn each : expected.getColumns()) {
+ assertColumnMetaData(actualColumns, each);
+ }
+ for (DataSetIndex each : expected.getIndexes()) {
+ assertIndexMetaData(actualIndexes, each);
+ }
+ }
+
+ private boolean containsTable(final Collection<DataNode> dataNodes) throws SQLException {
+ for (DataNode each : dataNodes) {
+ try (Connection connection = getActualDataSources().get(each.getDataSourceName()).getConnection()) {
+ if (containsTable(connection, each.getTableName())) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean containsTable(final Connection connection, final String tableName) throws SQLException {
+ return connection.getMetaData().getTables(null, null, tableName, new String[]{"TABLE"}).next();
+ }
+
+ private List<DataSetColumn> getActualColumns(final Collection<DataNode> dataNodes) throws SQLException {
+ List<DataSetColumn> result = new LinkedList<>();
+ for (DataNode each : dataNodes) {
+ try (Connection connection = getActualDataSources().get(each.getDataSourceName()).getConnection()) {
+ result.addAll(getActualColumns(connection, each.getTableName()));
+ }
+ }
+ return result;
+ }
+
+ private List<DataSetColumn> getActualColumns(final Connection connection, final String tableName) throws SQLException {
+ DatabaseMetaData metaData = connection.getMetaData();
+ try (ResultSet resultSet = metaData.getColumns(null, null, tableName, null)) {
+ List<DataSetColumn> result = new LinkedList<>();
+ while (resultSet.next()) {
+ DataSetColumn each = new DataSetColumn();
+ each.setName(resultSet.getString("COLUMN_NAME"));
+ each.setType(resultSet.getString("TYPE_NAME").toLowerCase());
+ result.add(each);
+ }
+ return result;
+ }
+ }
+
+ private List<DataSetIndex> getActualIndexes(final Collection<DataNode> dataNodes) throws SQLException {
+ List<DataSetIndex> result = new LinkedList<>();
+ for (DataNode each : dataNodes) {
+ try (Connection connection = getActualDataSources().get(each.getDataSourceName()).getConnection()) {
+ result.addAll(getActualIndexes(connection, each.getTableName()));
+ }
+ }
+ return result;
+ }
+
+ private List<DataSetIndex> getActualIndexes(final Connection connection, final String tableName) throws SQLException {
+ DatabaseMetaData metaData = connection.getMetaData();
+ try (ResultSet resultSet = metaData.getIndexInfo(null, null, tableName, false, false)) {
+ List<DataSetIndex> result = new LinkedList<>();
+ while (resultSet.next()) {
+ DataSetIndex each = new DataSetIndex();
+ each.setName(resultSet.getString("INDEX_NAME"));
+ each.setUnique(!resultSet.getBoolean("NON_UNIQUE"));
+ each.setColumns(resultSet.getString("COLUMN_NAME"));
+ result.add(each);
+ }
+ return result;
+ }
+ }
+
+ // TODO need to assert line by line
+ private void assertColumnMetaData(final List<DataSetColumn> actual, final DataSetColumn expect) {
+ for (DataSetColumn each : actual) {
+ if (expect.getName().equals(each.getName())) {
+ if ("MySQL".equals(getDatabaseType().getName()) && "integer".equals(expect.getType())) {
+ assertThat(each.getType(), is("int"));
+ } else if ("PostgreSQL".equals(getDatabaseType().getName()) && "integer".equals(expect.getType())) {
+ assertThat(each.getType(), is("int4"));
+ } else {
+ assertThat(each.getType(), is(expect.getType()));
+ }
+ }
+ }
+ }
+
+ // TODO need to assert line by line
+ private void assertIndexMetaData(final List<DataSetIndex> actual, final DataSetIndex expect) {
+ for (DataSetIndex each : actual) {
+ if (expect.getName().equals(each.getName())) {
+ assertThat(each.isUnique(), is(expect.isUnique()));
+ }
+ }
+ }
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/JDBCGeneralDDLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/GeneralDDLIT.java
similarity index 50%
rename from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/JDBCGeneralDDLIT.java
rename to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/GeneralDDLIT.java
index 25c6b9e..f67ac6e 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/JDBCGeneralDDLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/GeneralDDLIT.java
@@ -17,18 +17,11 @@
package org.apache.shardingsphere.test.integration.engine.it.ddl;
-import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
-import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.test.integration.engine.param.IntegrateTestParameters;
import org.apache.shardingsphere.test.integration.cases.IntegrateTestCaseType;
import org.apache.shardingsphere.test.integration.cases.assertion.ddl.DDLIntegrateTestCaseAssertion;
import org.apache.shardingsphere.test.integration.cases.assertion.root.SQLCaseType;
-import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetColumn;
-import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetIndex;
-import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetMetadata;
-import org.apache.shardingsphere.test.integration.env.IntegrateTestEnvironment;
+import org.apache.shardingsphere.test.integration.engine.param.IntegrateTestParameters;
import org.junit.Test;
import org.junit.runners.Parameterized.Parameters;
@@ -38,25 +31,17 @@ import java.sql.Connection;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThat;
-public final class JDBCGeneralDDLIT extends BaseDDLIT {
+public final class GeneralDDLIT extends BaseDDLIT {
- public JDBCGeneralDDLIT(final String parentPath, final DDLIntegrateTestCaseAssertion assertion, final String ruleType,
- final String databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
+ public GeneralDDLIT(final String parentPath, final DDLIntegrateTestCaseAssertion assertion, final String ruleType,
+ final String databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
super(parentPath, assertion, ruleType, DatabaseTypeRegistry.getActualDatabaseType(databaseType), caseType, sql);
}
@Parameters(name = "{2} -> {3} -> {4} -> {5}")
public static Collection<Object[]> getParameters() {
- return IntegrateTestEnvironment.getInstance().isProxyEnvironment() ? Collections.emptyList() : IntegrateTestParameters.getParametersWithAssertion(IntegrateTestCaseType.DDL);
+ return IntegrateTestParameters.getParametersWithAssertion(IntegrateTestCaseType.DDL);
}
@SuppressWarnings("JUnitTestMethodWithNoAssertions")
@@ -68,7 +53,7 @@ public final class JDBCGeneralDDLIT extends BaseDDLIT {
} else {
connection.prepareStatement(getSql()).executeUpdate();
}
- assertTableMetaData(((ShardingSphereConnection) connection).getMetaDataContexts().getDefaultMetaData().getSchema());
+ assertTableMetaData();
}
}
@@ -81,27 +66,7 @@ public final class JDBCGeneralDDLIT extends BaseDDLIT {
} else {
connection.prepareStatement(getSql()).execute();
}
- assertTableMetaData(((ShardingSphereConnection) connection).getMetaDataContexts().getDefaultMetaData().getSchema());
- }
- }
-
- private void assertTableMetaData(final ShardingSphereSchema schema) {
- String tableName = ((DDLIntegrateTestCaseAssertion) getAssertion()).getTable();
- Optional<DataSetMetadata> expected = getDataSet().findMetadata(tableName);
- if (!expected.isPresent()) {
- assertFalse(schema.containsTable(tableName));
- return;
- }
- TableMetaData actual = schema.get(tableName);
- assertTableMetaData(actual, expected.get());
- }
-
- private void assertTableMetaData(final TableMetaData actual, final DataSetMetadata expected) {
- // TODO fill metadata for replica query and other rules
- if (actual.getColumns().isEmpty()) {
- return;
+ assertTableMetaData();
}
- assertThat(new LinkedList<>(actual.getColumns().keySet()), is(expected.getColumns().stream().map(DataSetColumn::getName).collect(Collectors.toList())));
- assertThat(new LinkedList<>(actual.getIndexes().keySet()), is(expected.getIndexes().stream().map(DataSetIndex::getName).collect(Collectors.toList())));
}
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/ProxyGeneralDDLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/ProxyGeneralDDLIT.java
deleted file mode 100644
index ef4cfaa..0000000
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/ProxyGeneralDDLIT.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.test.integration.engine.it.ddl;
-
-import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
-import org.apache.shardingsphere.test.integration.cases.IntegrateTestCaseType;
-import org.apache.shardingsphere.test.integration.cases.assertion.ddl.DDLIntegrateTestCaseAssertion;
-import org.apache.shardingsphere.test.integration.cases.assertion.root.SQLCaseType;
-import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetColumn;
-import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetIndex;
-import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetMetadata;
-import org.apache.shardingsphere.test.integration.engine.param.IntegrateTestParameters;
-import org.apache.shardingsphere.test.integration.env.IntegrateTestEnvironment;
-import org.junit.Test;
-import org.junit.runners.Parameterized.Parameters;
-
-import javax.xml.bind.JAXBException;
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.text.ParseException;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Optional;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThat;
-
-public final class ProxyGeneralDDLIT extends BaseDDLIT {
-
- public ProxyGeneralDDLIT(final String parentPath, final DDLIntegrateTestCaseAssertion assertion, final String ruleType,
- final String databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
- super(parentPath, assertion, ruleType, DatabaseTypeRegistry.getActualDatabaseType(databaseType), caseType, sql);
- }
-
- @Parameters(name = "{2} -> {3} -> {4} -> {5}")
- public static Collection<Object[]> getParameters() {
- return IntegrateTestEnvironment.getInstance().isProxyEnvironment() ? IntegrateTestParameters.getParametersWithAssertion(IntegrateTestCaseType.DDL) : Collections.emptyList();
- }
-
- @SuppressWarnings("JUnitTestMethodWithNoAssertions")
- @Test
- public void assertExecuteUpdate() throws SQLException {
- try (Connection connection = getTargetDataSource().getConnection()) {
- if (SQLCaseType.Literal == getCaseType()) {
- connection.createStatement().executeUpdate(getSql());
- } else {
- connection.prepareStatement(getSql()).executeUpdate();
- }
- assertTableMetaData(connection);
- }
- }
-
- @SuppressWarnings("JUnitTestMethodWithNoAssertions")
- @Test
- public void assertExecute() throws SQLException {
- try (Connection connection = getTargetDataSource().getConnection()) {
- if (SQLCaseType.Literal == getCaseType()) {
- connection.createStatement().execute(getSql());
- } else {
- connection.prepareStatement(getSql()).execute();
- }
- assertTableMetaData(connection);
- }
- }
-
- private void assertTableMetaData(final Connection connection) throws SQLException {
- String tableName = ((DDLIntegrateTestCaseAssertion) getAssertion()).getTable();
- Optional<DataSetMetadata> expected = getDataSet().findMetadata(tableName);
- if (!expected.isPresent()) {
- assertFalse(containsTable(connection, tableName));
- return;
- }
- assertTableMetaData(getActualColumns(connection, tableName), getActualIndexes(connection, tableName), expected.get());
- }
-
- private void assertTableMetaData(final List<DataSetColumn> actualColumns, final List<DataSetIndex> actualIndexes, final DataSetMetadata expected) {
- for (DataSetColumn each : expected.getColumns()) {
- assertColumnMetaData(actualColumns, each);
- }
- for (DataSetIndex each : expected.getIndexes()) {
- assertIndexMetaData(actualIndexes, each);
- }
- }
-
- private boolean containsTable(final Connection connection, final String tableName) throws SQLException {
- return connection.getMetaData().getTables(null, null, tableName, new String[] {"TABLE"}).next();
- }
-
- private List<DataSetColumn> getActualColumns(final Connection connection, final String tableName) throws SQLException {
- DatabaseMetaData metaData = connection.getMetaData();
- try (ResultSet resultSet = metaData.getColumns(null, null, tableName, null)) {
- List<DataSetColumn> result = new LinkedList<>();
- while (resultSet.next()) {
- DataSetColumn each = new DataSetColumn();
- each.setName(resultSet.getString("COLUMN_NAME"));
- each.setType(resultSet.getString("TYPE_NAME").toLowerCase());
- result.add(each);
- }
- return result;
- }
- }
-
- private List<DataSetIndex> getActualIndexes(final Connection connection, final String tableName) throws SQLException {
- DatabaseMetaData metaData = connection.getMetaData();
- try (ResultSet resultSet = metaData.getIndexInfo(null, null, tableName, false, false)) {
- List<DataSetIndex> result = new LinkedList<>();
- while (resultSet.next()) {
- DataSetIndex each = new DataSetIndex();
- each.setName(resultSet.getString("INDEX_NAME"));
- each.setUnique(!resultSet.getBoolean("NON_UNIQUE"));
- each.setColumns(resultSet.getString("COLUMN_NAME"));
- result.add(each);
- }
- return result;
- }
- }
-
- private void assertColumnMetaData(final List<DataSetColumn> actual, final DataSetColumn expect) {
- for (DataSetColumn each : actual) {
- if (expect.getName().equals(each.getName())) {
- if ("MySQL".equals(getDatabaseType().getName()) && "integer".equals(expect.getType())) {
- assertThat(each.getType(), is("int"));
- } else if ("PostgreSQL".equals(getDatabaseType().getName()) && "integer".equals(expect.getType())) {
- assertThat(each.getType(), is("int4"));
- } else {
- assertThat(each.getType(), is(expect.getType()));
- }
- }
- }
- }
-
- private void assertIndexMetaData(final List<DataSetIndex> actual, final DataSetIndex expect) {
- for (DataSetIndex each : actual) {
- if (expect.getName().equals(each.getName())) {
- assertThat(each.isUnique(), is(expect.isUnique()));
- }
- }
- }
-}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/alter_table.xml
similarity index 92%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/alter_table.xml
index b2e5a1c..1ebee71 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/alter_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="db_${0..9}.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<column name="name" type="varchar" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/create_index.xml
similarity index 92%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/create_index.xml
index f2e9ba7..d3bdabb 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/create_index.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="db_${0..9}.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<index name="t_order_details_index_t_order_details" column="id" unique="false" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/create_table.xml
similarity index 91%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/create_table.xml
index 305f43f..df61b92 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/create_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="db_${0..9}.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
</metadata>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/create_unique_index.xml
similarity index 92%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/create_unique_index.xml
index 56360b0..2a08221 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/create_unique_index.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="db_${0..9}.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<index name="t_order_details_index_t_order_details" column="id" unique="true" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/drop_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/drop_table.xml
similarity index 88%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/drop_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/drop_table.xml
index f31f346..291ed32 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/drop_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/drop_table.xml
@@ -15,4 +15,6 @@
~ limitations under the License.
-->
-<dataset />
+<dataset>
+ <metadata table-name="t_order_details" data-nodes="db_${0..9}.t_order_details" />
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/unchanged_table.xml
similarity index 91%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/unchanged_table.xml
index 305f43f..df61b92 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/db/unchanged_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="db_${0..9}.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
</metadata>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/alter_table.xml
similarity index 87%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/alter_table.xml
index b2e5a1c..28ebdf9 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/alter_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="primary_ds_${0..9}.t_order_details_${0..9},replica_ds_${0..9}.t_order_details_${0..9}">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<column name="name" type="varchar" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/create_index.xml
similarity index 87%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/create_index.xml
index f2e9ba7..7495939 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/create_index.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="primary_ds_${0..9}.t_order_details_${0..9},replica_ds_${0..9}.t_order_details_${0..9}">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<index name="t_order_details_index_t_order_details" column="id" unique="false" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/create_table.xml
similarity index 86%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/create_table.xml
index 305f43f..58f58d8 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/create_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="primary_ds_${0..9}.t_order_details_${0..9},replica_ds_${0..9}.t_order_details_${0..9}">
<column name="id" type="integer" />
<column name="description" type="varchar" />
</metadata>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/create_unique_index.xml
similarity index 87%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/create_unique_index.xml
index 56360b0..9d3ac58 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/create_unique_index.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="primary_ds_${0..9}.t_order_details_${0..9},replica_ds_${0..9}.t_order_details_${0..9}">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<index name="t_order_details_index_t_order_details" column="id" unique="true" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/drop_table.xml
similarity index 84%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/drop_table.xml
index 305f43f..6c392bc 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/drop_table.xml
@@ -16,8 +16,5 @@
-->
<dataset>
- <metadata table-name="t_order_details">
- <column name="id" type="integer" />
- <column name="description" type="varchar" />
- </metadata>
+ <metadata table-name="t_order_details" data-nodes="primary_ds_${0..9}.t_order_details_${0..9},replica_ds_${0..9}.t_order_details_${0..9}" />
</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/unchanged_table.xml
similarity index 86%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/unchanged_table.xml
index 305f43f..58f58d8 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/dbtbl_with_replica_query/unchanged_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="primary_ds_${0..9}.t_order_details_${0..9},replica_ds_${0..9}.t_order_details_${0..9}">
<column name="id" type="integer" />
<column name="description" type="varchar" />
</metadata>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/alter_table.xml
similarity index 89%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/alter_table.xml
index b2e5a1c..4cf8a48 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/alter_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="primary_ds.t_order_details,replica_${0..1}.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<column name="name" type="varchar" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/create_index.xml
similarity index 90%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/create_index.xml
index f2e9ba7..8d8b633 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/create_index.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="primary_ds.t_order_details,replica_${0..1}.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<index name="t_order_details_index_t_order_details" column="id" unique="false" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/create_table.xml
similarity index 89%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/create_table.xml
index 305f43f..8abcd47 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/create_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="primary_ds.t_order_details,replica_${0..1}.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
</metadata>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/create_unique_index.xml
similarity index 90%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/create_unique_index.xml
index 56360b0..2afd2ed 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/create_unique_index.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="primary_ds.t_order_details,replica_${0..1}.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<index name="t_order_details_index_t_order_details" column="id" unique="true" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/drop_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/drop_table.xml
similarity index 85%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/drop_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/drop_table.xml
index f31f346..a86665c 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/drop_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/drop_table.xml
@@ -15,4 +15,6 @@
~ limitations under the License.
-->
-<dataset />
+<dataset>
+ <metadata table-name="t_order_details" data-nodes="primary_ds.t_order_details,replica_${0..1}.t_order_details" />
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/unchanged_table.xml
similarity index 89%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/unchanged_table.xml
index 305f43f..8abcd47 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/replica_query/unchanged_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="primary_ds.t_order_details,replica_${0..1}.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
</metadata>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/alter_table.xml
similarity index 92%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/alter_table.xml
index b2e5a1c..f5851f7 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/alter_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="db.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<column name="name" type="varchar" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/create_index.xml
similarity index 93%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/create_index.xml
index f2e9ba7..fa32ceb 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/create_index.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="db.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<index name="t_order_details_index_t_order_details" column="id" unique="false" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/create_table.xml
similarity index 92%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/create_table.xml
index 305f43f..8609dd3 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/create_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="db.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
</metadata>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/create_unique_index.xml
similarity index 93%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/create_unique_index.xml
index 56360b0..2088acc 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/create_unique_index.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="db.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<index name="t_order_details_index_t_order_details" column="id" unique="true" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/drop_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/drop_table.xml
similarity index 89%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/drop_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/drop_table.xml
index f31f346..0c009dd 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/drop_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/drop_table.xml
@@ -15,4 +15,6 @@
~ limitations under the License.
-->
-<dataset />
+<dataset>
+ <metadata table-name="t_order_details" data-nodes="db.t_order_details" />
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/unchanged_table.xml
similarity index 92%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/unchanged_table.xml
index 305f43f..8609dd3 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/shadow/unchanged_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="db.t_order_details">
<column name="id" type="integer" />
<column name="description" type="varchar" />
</metadata>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/alter_table.xml
similarity index 92%
rename from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml
rename to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/alter_table.xml
index b2e5a1c..57e5caf 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/alter_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/alter_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="tbl.t_order_details_${0..9}">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<column name="name" type="varchar" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/create_index.xml
similarity index 92%
rename from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml
rename to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/create_index.xml
index f2e9ba7..2da3e39 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_index.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/create_index.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="tbl.t_order_details_${0..9}">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<index name="t_order_details_index_t_order_details" column="id" unique="false" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/create_table.xml
similarity index 91%
rename from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml
rename to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/create_table.xml
index 305f43f..3e16b51 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/create_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="tbl.t_order_details_${0..9}">
<column name="id" type="integer" />
<column name="description" type="varchar" />
</metadata>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/create_unique_index.xml
similarity index 92%
rename from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml
rename to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/create_unique_index.xml
index 56360b0..f2ddb2c 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/create_unique_index.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/create_unique_index.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="tbl.t_order_details_${0..9}">
<column name="id" type="integer" />
<column name="description" type="varchar" />
<index name="t_order_details_index_t_order_details" column="id" unique="true" />
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/drop_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/drop_table.xml
similarity index 88%
rename from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/drop_table.xml
rename to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/drop_table.xml
index f31f346..a433cdd 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/drop_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/drop_table.xml
@@ -15,4 +15,6 @@
~ limitations under the License.
-->
-<dataset />
+<dataset>
+ <metadata table-name="t_order_details" data-nodes="tbl.t_order_details_${0..9}" />
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/unchanged_table.xml
similarity index 91%
rename from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml
rename to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/unchanged_table.xml
index 305f43f..3e16b51 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/unchanged_table.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/resources/integrate/cases/ddl/dataset/tbl/unchanged_table.xml
@@ -16,7 +16,7 @@
-->
<dataset>
- <metadata table-name="t_order_details">
+ <metadata table-name="t_order_details" data-nodes="tbl.t_order_details_${0..9}">
<column name="id" type="integer" />
<column name="description" type="varchar" />
</metadata>