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 2023/10/08 03:17:39 UTC
[shardingsphere] branch master updated: Refactor: test-e2e-sql use the awaitility framework replace sleep in RDLE2EIT class (#27536)
This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 db0098eb9ee Refactor: test-e2e-sql use the awaitility framework replace sleep in RDLE2EIT class (#27536)
db0098eb9ee is described below
commit db0098eb9eea763b8a1d0cb79f5751c759acf81f
Author: wyx <78...@users.noreply.github.com>
AuthorDate: Sun Oct 8 11:17:32 2023 +0800
Refactor: test-e2e-sql use the awaitility framework replace sleep in RDLE2EIT class (#27536)
* Refactor: test-e2e-sql use the awaitility framework replace sleep in RDLE2EIT class (#24106)
* Fix code style
* add SqlCommandType judgment in SingleE2EContainerComposer and E2ETestParameterGenerator class
* Fix code style
* pollDelay() replace atMost() in the awaitility framework
* Fix code style
---------
Co-authored-by: wyx <=1...@qq.com>
---
test/e2e/sql/pom.xml | 4 +
.../engine/arg/E2ETestCaseArgumentsProvider.java | 2 +-
.../composer/SingleE2EContainerComposer.java | 17 +++
.../test/e2e/engine/type/RDLE2EIT.java | 119 +++++++++++-------
.../param/array/E2ETestParameterGenerator.java | 19 ++-
.../param/model/AssertionTestParameter.java | 4 +
.../alter_binding_rules/alter_binding_rules.xml | 24 ++++
...e_sharding_table_reference_rule_reference_0.xml | 24 ++++
.../create_sharding_table_rule_t_order.xml | 39 ++++++
.../create_sharding_table_rule_t_order_item.xml | 39 ++++++
...p_sharding_table_reference_rule_reference_0.xml | 23 ++++
.../drop_sharding_table_rule_t_order.xml | 37 ++++++
.../drop_sharding_table_rule_t_order_item.xml | 37 ++++++
.../alter_encrypt_rule/alter_encrypt_rule.xml | 33 +++++
.../create_encrypt_rule_t_user.xml | 33 +++++
.../drop_encrypt_rule_t_user.xml | 32 +++++
.../alter_mask_rule/alter_mask_rule.xml | 26 ++++
.../alter_mask_rule/create_mask_rule_t_mask.xml | 27 +++++
.../alter_mask_rule/drop_mask_rule_t_mask.xml | 25 ++++
.../alter_sharding_rules/alter_sharding_rules.xml | 38 ++++++
.../create_sharding_table_rule_t_order.xml | 39 ++++++
.../drop_sharding_table_rule_t_order.xml | 37 ++++++
.../alter_single_table_rules.xml | 28 +++++
.../create_sharding_table_rule_t_order.xml | 39 ++++++
.../create_sharding_table_rule_t_order_item.xml | 39 ++++++
.../drop_sharding_table_rule_t_order.xml | 37 ++++++
.../drop_sharding_table_rule_t_order_item.xml | 38 ++++++
.../drop_table_temp_alter.xml | 24 ++++
...et_default_single_table_storage_unit_=_ds_0.xml | 24 ++++
...et_default_single_table_storage_unit_=_ds_1.xml | 24 ++++
..._default_single_table_storage_unit_=_random.xml | 24 ++++
.../create_binding_rules/create_binding_rules.xml | 24 ++++
.../create_sharding_table_rule_t_order.xml | 39 ++++++
.../create_sharding_table_rule_t_order_item.xml | 39 ++++++
...p_sharding_table_reference_rule_reference_0.xml | 23 ++++
.../drop_sharding_table_rule_t_order.xml | 38 ++++++
.../drop_sharding_table_rule_t_order_item.xml | 38 ++++++
.../create_broadcast_rules.xml | 23 ++++
...rop_broadcast_table_rule_t_product_category.xml | 22 ++++
.../create_encrypt_rule/create_encrypt_rule.xml | 33 +++++
.../drop_encrypt_rule_t_user.xml | 32 +++++
.../create_mask_rule/create_mask_rule.xml | 26 ++++
.../create_mask_rule/drop_mask_rule_t_mask.xml | 25 ++++
.../create_sharding_rules.xml | 38 ++++++
.../drop_sharding_table_rule_t_order.xml | 37 ++++++
.../create_sharding_table_rule_t_order.xml | 39 ++++++
.../create_sharding_table_rule_t_order_item.xml | 39 ++++++
.../create_single_table_rules.xml | 28 +++++
.../drop_sharding_table_rule_t_order.xml | 37 ++++++
.../drop_sharding_table_rule_t_order_item.xml | 38 ++++++
.../drop_single_table_rules.xml | 27 +++++
.../create_single_table_rules/drop_table_temp.xml | 24 ++++
.../set_default_single_table_storage_unit.xml | 24 ++++
..._default_single_table_storage_unit_=_random.xml | 24 ++++
...e_sharding_table_reference_rule_reference_0.xml | 24 ++++
.../create_sharding_table_rule_t_order.xml | 39 ++++++
.../create_sharding_table_rule_t_order_item.xml | 39 ++++++
.../drop_binding_rules/drop_binding_rules.xml | 23 ++++
.../drop_sharding_table_rule_t_order.xml | 38 ++++++
.../drop_sharding_table_rule_t_order_item.xml | 38 ++++++
.../create_broadcast_table_rule_t_country.xml | 23 ++++
.../drop_broadcast_rules/drop_broadcast_rules.xml | 22 ++++
.../create_encrypt_rule_t_user.xml | 33 +++++
.../drop_encrypt_rule/drop_encrypt_rule_t_user.xml | 32 +++++
.../drop_mask_rule/create_mask_rule_t_mask.xml | 26 ++++
.../drop_mask_rule/drop_mask_rule.xml | 25 ++++
.../drop_sharding_rules/create_sharding_rules.xml | 38 ++++++
.../drop_sharding_rules/drop_sharding_rules.xml | 37 ++++++
.../create_sharding_table_rule_t_order.xml | 39 ++++++
.../create_sharding_table_rule_t_order_item.xml | 39 ++++++
.../drop_sharding_table_rule_t_order.xml | 38 ++++++
.../drop_sharding_table_rule_t_order_item.xml | 38 ++++++
.../drop_single_table_rules.xml | 27 +++++
.../set_default_single_table_storage_unit.xml | 24 ++++
.../resources/cases/rdl/rdl-integration-alter.xml | 72 +++++++++--
.../resources/cases/rdl/rdl-integration-create.xml | 133 +++++++++++++++++----
.../resources/cases/rdl/rdl-integration-drop.xml | 56 ++++++---
.../resources/cases/rdl/rdl-integration-set.xml | 34 +++++-
78 files changed, 2500 insertions(+), 109 deletions(-)
diff --git a/test/e2e/sql/pom.xml b/test/e2e/sql/pom.xml
index 5d2f2774c52..a9f804dede4 100644
--- a/test/e2e/sql/pom.xml
+++ b/test/e2e/sql/pom.xml
@@ -55,5 +55,9 @@
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.awaitility</groupId>
+ <artifactId>awaitility</artifactId>
+ </dependency>
</dependencies>
</project>
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/arg/E2ETestCaseArgumentsProvider.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/arg/E2ETestCaseArgumentsProvider.java
index 07afb9ea6d3..d9f6e8ec53a 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/arg/E2ETestCaseArgumentsProvider.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/arg/E2ETestCaseArgumentsProvider.java
@@ -51,6 +51,6 @@ public final class E2ETestCaseArgumentsProvider implements ArgumentsProvider {
private Stream<Arguments> getSingleTestCaseArguments(final SQLCommandType type) {
Collection<AssertionTestParameter> result = E2ETestParameterFactory.getAssertionTestParameters(type);
// TODO make sure test case can not be null
- return result.isEmpty() ? Stream.of(Arguments.of(new AssertionTestParameter(null, null, null, null, null, null, null, null))) : result.stream().map(Arguments::of);
+ return result.isEmpty() ? Stream.of(Arguments.of(new AssertionTestParameter(null, null, null, null, null, null, null, null, null))) : result.stream().map(Arguments::of);
}
}
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/SingleE2EContainerComposer.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/SingleE2EContainerComposer.java
index 67a9f5f6cb5..8df70880d51 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/SingleE2EContainerComposer.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/SingleE2EContainerComposer.java
@@ -25,6 +25,8 @@ import org.apache.shardingsphere.test.e2e.cases.dataset.DataSetLoader;
import org.apache.shardingsphere.test.e2e.cases.value.SQLValue;
import org.apache.shardingsphere.test.e2e.framework.param.model.AssertionTestParameter;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@@ -41,6 +43,10 @@ public final class SingleE2EContainerComposer extends E2EContainerComposer {
private final IntegrationTestCaseAssertion assertion;
+ private final Collection<IntegrationTestCaseAssertion> assertions;
+
+ private final List<DataSet> dataSets = new ArrayList<>();
+
private final DataSet dataSet;
private final DataSet generatedKeyDataSet;
@@ -49,7 +55,18 @@ public final class SingleE2EContainerComposer extends E2EContainerComposer {
super(testParam);
sql = testParam.getTestCaseContext().getTestCase().getSql();
sqlExecuteType = testParam.getSqlExecuteType();
+ assertions = testParam.getAssertions();
assertion = testParam.getAssertion();
+
+ if ("RDL".equals(testParam.getSqlCommandType().name())) {
+ for (IntegrationTestCaseAssertion caseAssertion : assertions) {
+ dataSets.add(null == caseAssertion || null == caseAssertion.getExpectedDataFile()
+ ? null
+ : DataSetLoader.load(testParam.getTestCaseContext().getParentPath(), testParam.getScenario(), testParam.getDatabaseType(), testParam.getMode(),
+ caseAssertion.getExpectedDataFile()));
+ }
+ }
+
dataSet = null == assertion || null == assertion.getExpectedDataFile()
? null
: DataSetLoader.load(testParam.getTestCaseContext().getParentPath(), testParam.getScenario(), testParam.getDatabaseType(), testParam.getMode(), assertion.getExpectedDataFile());
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RDLE2EIT.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RDLE2EIT.java
index f09565d5942..2b9a19ac628 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RDLE2EIT.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RDLE2EIT.java
@@ -17,8 +17,8 @@
package org.apache.shardingsphere.test.e2e.engine.type;
-import com.google.common.base.Splitter;
import org.apache.shardingsphere.test.e2e.cases.SQLCommandType;
+import org.apache.shardingsphere.test.e2e.cases.assertion.IntegrationTestCaseAssertion;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetColumn;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetMetaData;
import org.apache.shardingsphere.test.e2e.cases.dataset.row.DataSetRow;
@@ -27,13 +27,12 @@ import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseSettings;
import org.apache.shardingsphere.test.e2e.engine.composer.SingleE2EContainerComposer;
import org.apache.shardingsphere.test.e2e.framework.param.array.E2ETestParameterFactory;
import org.apache.shardingsphere.test.e2e.framework.param.model.AssertionTestParameter;
+import org.awaitility.Awaitility;
import org.junit.jupiter.api.condition.EnabledIf;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ArgumentsSource;
-import org.testcontainers.shaded.org.awaitility.Awaitility;
import java.sql.Connection;
-import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
@@ -45,7 +44,6 @@ import java.util.concurrent.TimeUnit;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@E2ETestCaseSettings(SQLCommandType.RDL)
@@ -60,79 +58,108 @@ class RDLE2EIT {
return;
}
SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
- init(containerComposer);
- assertExecute(testParam, containerComposer);
- tearDown(containerComposer);
+
+ if (null == containerComposer.getAssertions()) {
+ return;
+ }
+ int dataSetIndex = 0;
+ String mode = testParam.getMode();
+
+ for (IntegrationTestCaseAssertion each : containerComposer.getAssertions()) {
+ if (null != each.getInitialSQL() && null != each.getAssertionSQL()) {
+ init(containerComposer, each, dataSetIndex, mode);
+ }
+ if (null != each.getAssertionSQL() && null == each.getDestroySQL() && null == each.getInitialSQL()) {
+ executeSQLCase(containerComposer, each, dataSetIndex, mode);
+ }
+ if (null != each.getDestroySQL() && null != each.getAssertionSQL()) {
+ tearDown(containerComposer, each, dataSetIndex, mode);
+ }
+ dataSetIndex++;
+ }
}
- private void assertExecute(final AssertionTestParameter testParam, final SingleE2EContainerComposer containerComposer) throws SQLException {
- assertNotNull(testParam.getAssertion().getAssertionSQL(), "Assertion SQL is required");
+ private void executeSQLCase(final SingleE2EContainerComposer containerComposer, final IntegrationTestCaseAssertion testCaseExecuteSql,
+ final int dataSetIndex, final String mode) throws SQLException {
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
try (Statement statement = connection.createStatement()) {
- executeSQLCase(containerComposer, statement);
- Awaitility.await().pollDelay(2L, TimeUnit.SECONDS).until(() -> true);
- assertResultSet(containerComposer, statement);
+ statement.execute(containerComposer.getSQL());
+
+ executeAssertionSQL(containerComposer, statement, testCaseExecuteSql, dataSetIndex, mode);
}
}
}
- private void executeSQLCase(final SingleE2EContainerComposer containerComposer, final Statement statement) throws SQLException {
- statement.execute(containerComposer.getSQL());
- }
-
- private void init(final SingleE2EContainerComposer containerComposer) throws SQLException {
+ private void init(final SingleE2EContainerComposer containerComposer, final IntegrationTestCaseAssertion testCaseInitSql,
+ final int dataSetIndex, final String mode) throws SQLException {
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- executeInitSQLs(containerComposer, connection);
+ executeInitSQLs(containerComposer, connection, testCaseInitSql, dataSetIndex, mode);
}
}
- private void tearDown(final SingleE2EContainerComposer containerComposer) throws SQLException {
- if (null != containerComposer.getAssertion().getDestroySQL()) {
- try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- executeDestroySQLs(containerComposer, connection);
- }
+ private void tearDown(final SingleE2EContainerComposer containerComposer, final IntegrationTestCaseAssertion testCaseDestroySQL,
+ final int dataSetIndex, final String mode) throws SQLException {
+ try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
+ executeDestroySQLs(containerComposer, connection, testCaseDestroySQL, dataSetIndex, mode);
}
- Awaitility.await().pollDelay(2L, TimeUnit.SECONDS).until(() -> true);
}
- private void executeInitSQLs(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- if (null == containerComposer.getAssertion().getInitialSQL() || null == containerComposer.getAssertion().getInitialSQL().getSql()) {
+ private void executeInitSQLs(final SingleE2EContainerComposer containerComposer, final Connection connection,
+ final IntegrationTestCaseAssertion testCaseInitSql, final int dataSetIndex, final String mode) throws SQLException {
+ if (null == testCaseInitSql.getInitialSQL() || null == testCaseInitSql.getInitialSQL().getSql()) {
return;
}
- for (String each : Splitter.on(";").trimResults().splitToList(containerComposer.getAssertion().getInitialSQL().getSql())) {
- try (PreparedStatement preparedStatement = connection.prepareStatement(each)) {
- preparedStatement.executeUpdate();
- Awaitility.await().pollDelay(2L, TimeUnit.SECONDS).until(() -> true);
- }
+ try (Statement statement = connection.createStatement()) {
+ statement.executeUpdate(testCaseInitSql.getInitialSQL().getSql());
+
+ executeAssertionSQL(containerComposer, statement, testCaseInitSql, dataSetIndex, mode);
}
}
- private void executeDestroySQLs(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- if (null == containerComposer.getAssertion().getDestroySQL().getSql()) {
+ private void executeAssertionSQL(final SingleE2EContainerComposer containerComposer, final Statement statement,
+ final IntegrationTestCaseAssertion testCaseAssertionSQL,
+ final int dataSetIndex, final String mode) {
+ if ("Cluster".equals(mode)) {
+ Awaitility.await().pollDelay(2L, TimeUnit.SECONDS).until(() -> assertResultSet(containerComposer, statement, testCaseAssertionSQL, dataSetIndex));
+ } else if ("Standalone".equals(mode)) {
+ assertResultSet(containerComposer, statement, testCaseAssertionSQL, dataSetIndex);
+ }
+ }
+
+ private void executeDestroySQLs(final SingleE2EContainerComposer containerComposer, final Connection connection,
+ final IntegrationTestCaseAssertion testCaseDestroySQL,
+ final int dataSetIndex, final String mode) throws SQLException {
+ if (null == testCaseDestroySQL.getDestroySQL() || null == testCaseDestroySQL.getDestroySQL().getSql()) {
return;
}
- for (String each : Splitter.on(";").trimResults().splitToList(containerComposer.getAssertion().getDestroySQL().getSql())) {
- try (PreparedStatement preparedStatement = connection.prepareStatement(each)) {
- preparedStatement.executeUpdate();
- Awaitility.await().pollDelay(2L, TimeUnit.SECONDS).until(() -> true);
- }
+ try (Statement statement = connection.createStatement()) {
+ statement.executeUpdate(testCaseDestroySQL.getDestroySQL().getSql());
+
+ executeAssertionSQL(containerComposer, statement, testCaseDestroySQL, dataSetIndex, mode);
}
}
- private void assertResultSet(final SingleE2EContainerComposer containerComposer, final Statement statement) throws SQLException {
- try (ResultSet resultSet = statement.executeQuery(containerComposer.getAssertion().getAssertionSQL().getSql())) {
- assertResultSet(containerComposer, resultSet);
+ private boolean assertResultSet(final SingleE2EContainerComposer containerComposer, final Statement statement,
+ final IntegrationTestCaseAssertion testCaseAssertionSql,
+ final int dataSetIndex) {
+ try (ResultSet resultSet = statement.executeQuery(testCaseAssertionSql.getAssertionSQL().getSql())) {
+ assertResultSet(containerComposer, resultSet, dataSetIndex);
+ return true;
+ } catch (final SQLException ignored) {
+ return false;
}
}
- private void assertResultSet(final SingleE2EContainerComposer containerComposer, final ResultSet resultSet) throws SQLException {
- assertMetaData(resultSet.getMetaData(), getExpectedColumns(containerComposer));
- assertRows(resultSet, containerComposer.getDataSet().getRows());
+ private void assertResultSet(final SingleE2EContainerComposer containerComposer, final ResultSet resultSet,
+ final int dataSetIndex) throws SQLException {
+ assertMetaData(resultSet.getMetaData(), getExpectedColumns(containerComposer, dataSetIndex));
+ assertRows(resultSet, containerComposer.getDataSets().get(dataSetIndex).getRows());
}
- private Collection<DataSetColumn> getExpectedColumns(final SingleE2EContainerComposer containerComposer) {
+ private Collection<DataSetColumn> getExpectedColumns(final SingleE2EContainerComposer containerComposer, final int dataSetIndex) {
Collection<DataSetColumn> result = new LinkedList<>();
- for (DataSetMetaData each : containerComposer.getDataSet().getMetaDataList()) {
+ List<DataSetMetaData> dataSetMetaDataList = containerComposer.getDataSets().get(dataSetIndex).getMetaDataList();
+ for (DataSetMetaData each : dataSetMetaDataList) {
result.addAll(each.getColumns());
}
return result;
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/framework/param/array/E2ETestParameterGenerator.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/framework/param/array/E2ETestParameterGenerator.java
index 36a335c503c..a4edd6361c2 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/framework/param/array/E2ETestParameterGenerator.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/framework/param/array/E2ETestParameterGenerator.java
@@ -94,30 +94,39 @@ public final class E2ETestParameterGenerator {
private Collection<AssertionTestParameter> getAssertionTestParameter(final IntegrationTestCaseContext testCaseContext,
final DatabaseType databaseType, final SQLExecuteType sqlExecuteType, final SQLCommandType sqlCommandType) {
Collection<AssertionTestParameter> result = new LinkedList<>();
- for (IntegrationTestCaseAssertion each : testCaseContext.getTestCase().getAssertions()) {
- result.addAll(getAssertionTestParameter(testCaseContext, databaseType, sqlExecuteType, each, sqlCommandType));
+
+ if ("RDL".equals(sqlCommandType.name())) {
+ IntegrationTestCaseAssertion eachAssertions = testCaseContext.getTestCase().getAssertions().iterator().next();
+ result.addAll(getAssertionTestParameter(testCaseContext, databaseType, sqlExecuteType, eachAssertions, testCaseContext.getTestCase().getAssertions(), sqlCommandType));
+ } else {
+ for (IntegrationTestCaseAssertion each : testCaseContext.getTestCase().getAssertions()) {
+ result.addAll(getAssertionTestParameter(testCaseContext, databaseType, sqlExecuteType, each, testCaseContext.getTestCase().getAssertions(), sqlCommandType));
+ }
}
return result;
}
private Collection<AssertionTestParameter> getAssertionTestParameter(final IntegrationTestCaseContext testCaseContext,
final DatabaseType databaseType, final SQLExecuteType sqlExecuteType,
- final IntegrationTestCaseAssertion assertion, final SQLCommandType sqlCommandType) {
+ final IntegrationTestCaseAssertion assertion,
+ final Collection<IntegrationTestCaseAssertion> assertions,
+ final SQLCommandType sqlCommandType) {
Collection<AssertionTestParameter> result = new LinkedList<>();
for (String each : getEnvAdapters(testCaseContext.getTestCase().getAdapters())) {
if (sqlCommandType.getRunningAdaptors().contains(each) && envAdapters.contains(each)) {
- result.addAll(getAssertionTestParameter(testCaseContext, assertion, each, databaseType, sqlExecuteType, sqlCommandType));
+ result.addAll(getAssertionTestParameter(testCaseContext, assertion, assertions, each, databaseType, sqlExecuteType, sqlCommandType));
}
}
return result;
}
private Collection<AssertionTestParameter> getAssertionTestParameter(final IntegrationTestCaseContext testCaseContext, final IntegrationTestCaseAssertion assertion,
+ final Collection<IntegrationTestCaseAssertion> assertions,
final String adapter, final DatabaseType databaseType,
final SQLExecuteType sqlExecuteType, final SQLCommandType sqlCommandType) {
Collection<String> scenarios = null == testCaseContext.getTestCase().getScenarioTypes() ? Collections.emptyList() : Arrays.asList(testCaseContext.getTestCase().getScenarioTypes().split(","));
return envScenarios.stream().filter(each -> filterScenarios(each, scenarios, sqlCommandType.getSqlStatementClass()))
- .map(each -> new AssertionTestParameter(testCaseContext, assertion, adapter, each, envMode, databaseType, sqlExecuteType, sqlCommandType)).collect(Collectors.toList());
+ .map(each -> new AssertionTestParameter(testCaseContext, assertion, assertions, adapter, each, envMode, databaseType, sqlExecuteType, sqlCommandType)).collect(Collectors.toList());
}
private Collection<String> getEnvAdapters(final String envAdapters) {
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/framework/param/model/AssertionTestParameter.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/framework/param/model/AssertionTestParameter.java
index 4a44185c2ff..ed8ff9b0982 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/framework/param/model/AssertionTestParameter.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/framework/param/model/AssertionTestParameter.java
@@ -25,9 +25,11 @@ import org.apache.shardingsphere.test.e2e.cases.SQLCommandType;
import org.apache.shardingsphere.test.e2e.cases.SQLExecuteType;
import org.apache.shardingsphere.test.e2e.cases.assertion.IntegrationTestCaseAssertion;
+import java.util.Collection;
/**
* Assertion test parameter.
*/
+
@RequiredArgsConstructor
@Getter
public final class AssertionTestParameter implements E2ETestParameter {
@@ -36,6 +38,8 @@ public final class AssertionTestParameter implements E2ETestParameter {
private final IntegrationTestCaseAssertion assertion;
+ private final Collection<IntegrationTestCaseAssertion> assertions;
+
private final String adapter;
private final String scenario;
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/alter_binding_rules.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/alter_binding_rules.xml
new file mode 100644
index 00000000000..5acad3df919
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/alter_binding_rules.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="name" />
+ <column name="sharding_table_reference" />
+ </metadata>
+ <row values="reference_0| t_order,t_order_item" />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/create_sharding_table_reference_rule_reference_0.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/create_sharding_table_reference_rule_reference_0.xml
new file mode 100644
index 00000000000..5acad3df919
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/create_sharding_table_reference_rule_reference_0.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="name" />
+ <column name="sharding_table_reference" />
+ </metadata>
+ <row values="reference_0| t_order,t_order_item" />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/create_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/create_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..0caee8394a1
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/create_sharding_table_rule_t_order.xml
@@ -0,0 +1,39 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+ <row values="t_order | ds_2.t_order_${0..1} | | | | | | STANDARD | order_id | inline | algorithm-expression=t_order_${order_id % 2} | | | | |"/>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/create_sharding_table_rule_t_order_item.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/create_sharding_table_rule_t_order_item.xml
new file mode 100644
index 00000000000..ffb7158b977
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/create_sharding_table_rule_t_order_item.xml
@@ -0,0 +1,39 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+ <row values="t_order_item | ds_2.t_order_item_${0..1} | | | | | | STANDARD | order_id | inline | algorithm-expression=t_order_item_${order_id % 2} | | | | |"/>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/drop_sharding_table_reference_rule_reference_0.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/drop_sharding_table_reference_rule_reference_0.xml
new file mode 100644
index 00000000000..cc2b3831070
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/drop_sharding_table_reference_rule_reference_0.xml
@@ -0,0 +1,23 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="name" />
+ <column name="sharding_table_reference" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/drop_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/drop_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..d464b03c3b3
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/drop_sharding_table_rule_t_order.xml
@@ -0,0 +1,37 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="actual_data_nodes" />
+ <column name="actual_data_sources" />
+ <column name="database_strategy_type" />
+ <column name="database_sharding_column" />
+ <column name="database_sharding_algorithm_type" />
+ <column name="database_sharding_algorithm_props" />
+ <column name="table_strategy_type" />
+ <column name="table_sharding_column" />
+ <column name="table_sharding_algorithm_type" />
+ <column name="table_sharding_algorithm_props" />
+ <column name="key_generate_column" />
+ <column name="key_generator_type" />
+ <column name="key_generator_props" />
+ <column name="auditor_types" />
+ <column name="allow_hint_disable" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/drop_sharding_table_rule_t_order_item.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/drop_sharding_table_rule_t_order_item.xml
new file mode 100644
index 00000000000..d464b03c3b3
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules/drop_sharding_table_rule_t_order_item.xml
@@ -0,0 +1,37 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="actual_data_nodes" />
+ <column name="actual_data_sources" />
+ <column name="database_strategy_type" />
+ <column name="database_sharding_column" />
+ <column name="database_sharding_algorithm_type" />
+ <column name="database_sharding_algorithm_props" />
+ <column name="table_strategy_type" />
+ <column name="table_sharding_column" />
+ <column name="table_sharding_algorithm_type" />
+ <column name="table_sharding_algorithm_props" />
+ <column name="key_generate_column" />
+ <column name="key_generator_type" />
+ <column name="key_generator_props" />
+ <column name="auditor_types" />
+ <column name="allow_hint_disable" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_encrypt_rule/alter_encrypt_rule.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_encrypt_rule/alter_encrypt_rule.xml
new file mode 100644
index 00000000000..c198bcecbc5
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_encrypt_rule/alter_encrypt_rule.xml
@@ -0,0 +1,33 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="logic_column" />
+ <column name="cipher_column" />
+ <column name="assisted_query_column" />
+ <column name="like_query_column" />
+ <column name="encryptor_type" />
+ <column name="encryptor_props" />
+ <column name="assisted_query_type" />
+ <column name="assisted_query_props" />
+ <column name="like_query_type" />
+ <column name="like_query_props" />
+ </metadata>
+ <row values="t_user| pwd| pwd_cipher| | | AES| aes-key-value=123456abcd| | | | " />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_encrypt_rule/create_encrypt_rule_t_user.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_encrypt_rule/create_encrypt_rule_t_user.xml
new file mode 100644
index 00000000000..ba7e21933c9
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_encrypt_rule/create_encrypt_rule_t_user.xml
@@ -0,0 +1,33 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="logic_column" />
+ <column name="cipher_column" />
+ <column name="assisted_query_column" />
+ <column name="like_query_column" />
+ <column name="encryptor_type" />
+ <column name="encryptor_props" />
+ <column name="assisted_query_type" />
+ <column name="assisted_query_props" />
+ <column name="like_query_type" />
+ <column name="like_query_props" />
+ </metadata>
+ <row values="t_user| pwd| pwd_cipher| | | AES| aes-key-value=123456abc| | | | " />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_encrypt_rule/drop_encrypt_rule_t_user.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_encrypt_rule/drop_encrypt_rule_t_user.xml
new file mode 100644
index 00000000000..b06c6f46d30
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_encrypt_rule/drop_encrypt_rule_t_user.xml
@@ -0,0 +1,32 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="logic_column" />
+ <column name="cipher_column" />
+ <column name="assisted_query_column" />
+ <column name="like_query_column" />
+ <column name="encryptor_type" />
+ <column name="encryptor_props" />
+ <column name="assisted_query_type" />
+ <column name="assisted_query_props" />
+ <column name="like_query_type" />
+ <column name="like_query_props" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_mask_rule/alter_mask_rule.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_mask_rule/alter_mask_rule.xml
new file mode 100644
index 00000000000..0f7bc437a10
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_mask_rule/alter_mask_rule.xml
@@ -0,0 +1,26 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="column" />
+ <column name="algorithm_type" />
+ <column name="algorithm_props" />
+ </metadata>
+ <row values="t_mask| order_id| MASK_FROM_X_TO_Y| from-x=1,replace-char=*,to-y=2" />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_mask_rule/create_mask_rule_t_mask.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_mask_rule/create_mask_rule_t_mask.xml
new file mode 100644
index 00000000000..053ee1b62ac
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_mask_rule/create_mask_rule_t_mask.xml
@@ -0,0 +1,27 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="column" />
+ <column name="algorithm_type" />
+ <column name="algorithm_props" />
+ </metadata>
+
+ <row values="t_mask | order_id | MD5 |"/>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_mask_rule/drop_mask_rule_t_mask.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_mask_rule/drop_mask_rule_t_mask.xml
new file mode 100644
index 00000000000..d1bbc872414
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_mask_rule/drop_mask_rule_t_mask.xml
@@ -0,0 +1,25 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="column" />
+ <column name="algorithm_type" />
+ <column name="algorithm_props" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules/alter_sharding_rules.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules/alter_sharding_rules.xml
new file mode 100644
index 00000000000..7e7ca28af32
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules/alter_sharding_rules.xml
@@ -0,0 +1,38 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="actual_data_nodes" />
+ <column name="actual_data_sources" />
+ <column name="database_strategy_type" />
+ <column name="database_sharding_column" />
+ <column name="database_sharding_algorithm_type" />
+ <column name="database_sharding_algorithm_props" />
+ <column name="table_strategy_type" />
+ <column name="table_sharding_column" />
+ <column name="table_sharding_algorithm_type" />
+ <column name="table_sharding_algorithm_props" />
+ <column name="key_generate_column" />
+ <column name="key_generator_type" />
+ <column name="key_generator_props" />
+ <column name="auditor_types" />
+ <column name="allow_hint_disable" />
+ </metadata>
+ <row values="t_order| ds_2.t_order_${0..3} | | | | | | STANDARD | order_id| inline| algorithm-expression=t_order_${order_id % 4} | | | | |" />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules/create_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules/create_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..0caee8394a1
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules/create_sharding_table_rule_t_order.xml
@@ -0,0 +1,39 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+ <row values="t_order | ds_2.t_order_${0..1} | | | | | | STANDARD | order_id | inline | algorithm-expression=t_order_${order_id % 2} | | | | |"/>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules/drop_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules/drop_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..d464b03c3b3
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules/drop_sharding_table_rule_t_order.xml
@@ -0,0 +1,37 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="actual_data_nodes" />
+ <column name="actual_data_sources" />
+ <column name="database_strategy_type" />
+ <column name="database_sharding_column" />
+ <column name="database_sharding_algorithm_type" />
+ <column name="database_sharding_algorithm_props" />
+ <column name="table_strategy_type" />
+ <column name="table_sharding_column" />
+ <column name="table_sharding_algorithm_type" />
+ <column name="table_sharding_algorithm_props" />
+ <column name="key_generate_column" />
+ <column name="key_generator_type" />
+ <column name="key_generator_props" />
+ <column name="auditor_types" />
+ <column name="allow_hint_disable" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/alter_single_table_rules.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/alter_single_table_rules.xml
new file mode 100644
index 00000000000..b19b759d402
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/alter_single_table_rules.xml
@@ -0,0 +1,28 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table_name" />
+ <column name="storage_unit_name" />
+ </metadata>
+ <row values="t_country| ds_2" />
+ <row values="t_product_category| ds_2" />
+ <row values="t_user| ds_0" />
+ <row values="temp_alter| ds_0" />
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/create_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/create_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..15d0230d9c7
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/create_sharding_table_rule_t_order.xml
@@ -0,0 +1,39 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+ <row values="t_order | ds_2.t_order_${0..3} | | | | | | STANDARD | order_id | inline | algorithm-expression=t_order_${order_id % 4} | | | | |"/>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/create_sharding_table_rule_t_order_item.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/create_sharding_table_rule_t_order_item.xml
new file mode 100644
index 00000000000..7ef566bd07e
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/create_sharding_table_rule_t_order_item.xml
@@ -0,0 +1,39 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+ <row values="t_order_item | ds_2.t_order_item_${0..3} | | | | | | STANDARD | order_id | inline | algorithm-expression=t_order_item_${order_id % 4} | | | | |"/>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/drop_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/drop_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..d464b03c3b3
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/drop_sharding_table_rule_t_order.xml
@@ -0,0 +1,37 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="actual_data_nodes" />
+ <column name="actual_data_sources" />
+ <column name="database_strategy_type" />
+ <column name="database_sharding_column" />
+ <column name="database_sharding_algorithm_type" />
+ <column name="database_sharding_algorithm_props" />
+ <column name="table_strategy_type" />
+ <column name="table_sharding_column" />
+ <column name="table_sharding_algorithm_type" />
+ <column name="table_sharding_algorithm_props" />
+ <column name="key_generate_column" />
+ <column name="key_generator_type" />
+ <column name="key_generator_props" />
+ <column name="auditor_types" />
+ <column name="allow_hint_disable" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/drop_sharding_table_rule_t_order_item.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/drop_sharding_table_rule_t_order_item.xml
new file mode 100644
index 00000000000..ab41af4cbef
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/drop_sharding_table_rule_t_order_item.xml
@@ -0,0 +1,38 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/drop_table_temp_alter.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/drop_table_temp_alter.xml
new file mode 100644
index 00000000000..a824499d3e7
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/drop_table_temp_alter.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table_name" />
+ <column name="storage_unit_name" />
+ </metadata>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/set_default_single_table_storage_unit_=_ds_0.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/set_default_single_table_storage_unit_=_ds_0.xml
new file mode 100644
index 00000000000..89982f05089
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/set_default_single_table_storage_unit_=_ds_0.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="storage_unit_name" />
+ </metadata>
+ <row values="ds_0" />
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/set_default_single_table_storage_unit_=_ds_1.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/set_default_single_table_storage_unit_=_ds_1.xml
new file mode 100644
index 00000000000..ec4a1512fcc
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/set_default_single_table_storage_unit_=_ds_1.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="storage_unit_name" />
+ </metadata>
+ <row values="ds_1" />
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/set_default_single_table_storage_unit_=_random.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/set_default_single_table_storage_unit_=_random.xml
new file mode 100644
index 00000000000..a12bf8b54bb
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules/set_default_single_table_storage_unit_=_random.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="storage_unit_name" />
+ </metadata>
+ <row values="RANDOM" />
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/create_binding_rules.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/create_binding_rules.xml
new file mode 100644
index 00000000000..5acad3df919
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/create_binding_rules.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="name" />
+ <column name="sharding_table_reference" />
+ </metadata>
+ <row values="reference_0| t_order,t_order_item" />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/create_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/create_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..0caee8394a1
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/create_sharding_table_rule_t_order.xml
@@ -0,0 +1,39 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+ <row values="t_order | ds_2.t_order_${0..1} | | | | | | STANDARD | order_id | inline | algorithm-expression=t_order_${order_id % 2} | | | | |"/>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/create_sharding_table_rule_t_order_item.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/create_sharding_table_rule_t_order_item.xml
new file mode 100644
index 00000000000..ffb7158b977
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/create_sharding_table_rule_t_order_item.xml
@@ -0,0 +1,39 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+ <row values="t_order_item | ds_2.t_order_item_${0..1} | | | | | | STANDARD | order_id | inline | algorithm-expression=t_order_item_${order_id % 2} | | | | |"/>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/drop_sharding_table_reference_rule_reference_0.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/drop_sharding_table_reference_rule_reference_0.xml
new file mode 100644
index 00000000000..cc2b3831070
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/drop_sharding_table_reference_rule_reference_0.xml
@@ -0,0 +1,23 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="name" />
+ <column name="sharding_table_reference" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/drop_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/drop_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..ab41af4cbef
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/drop_sharding_table_rule_t_order.xml
@@ -0,0 +1,38 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/drop_sharding_table_rule_t_order_item.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/drop_sharding_table_rule_t_order_item.xml
new file mode 100644
index 00000000000..ab41af4cbef
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules/drop_sharding_table_rule_t_order_item.xml
@@ -0,0 +1,38 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules/create_broadcast_rules.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules/create_broadcast_rules.xml
new file mode 100644
index 00000000000..f85e249bbf3
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules/create_broadcast_rules.xml
@@ -0,0 +1,23 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="broadcast_table" />
+ </metadata>
+ <row values="t_product_category" />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules/drop_broadcast_table_rule_t_product_category.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules/drop_broadcast_table_rule_t_product_category.xml
new file mode 100644
index 00000000000..2bd51c33376
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules/drop_broadcast_table_rule_t_product_category.xml
@@ -0,0 +1,22 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="broadcast_table" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_encrypt_rule/create_encrypt_rule.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_encrypt_rule/create_encrypt_rule.xml
new file mode 100644
index 00000000000..ba7e21933c9
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_encrypt_rule/create_encrypt_rule.xml
@@ -0,0 +1,33 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="logic_column" />
+ <column name="cipher_column" />
+ <column name="assisted_query_column" />
+ <column name="like_query_column" />
+ <column name="encryptor_type" />
+ <column name="encryptor_props" />
+ <column name="assisted_query_type" />
+ <column name="assisted_query_props" />
+ <column name="like_query_type" />
+ <column name="like_query_props" />
+ </metadata>
+ <row values="t_user| pwd| pwd_cipher| | | AES| aes-key-value=123456abc| | | | " />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_encrypt_rule/drop_encrypt_rule_t_user.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_encrypt_rule/drop_encrypt_rule_t_user.xml
new file mode 100644
index 00000000000..b06c6f46d30
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_encrypt_rule/drop_encrypt_rule_t_user.xml
@@ -0,0 +1,32 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="logic_column" />
+ <column name="cipher_column" />
+ <column name="assisted_query_column" />
+ <column name="like_query_column" />
+ <column name="encryptor_type" />
+ <column name="encryptor_props" />
+ <column name="assisted_query_type" />
+ <column name="assisted_query_props" />
+ <column name="like_query_type" />
+ <column name="like_query_props" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_mask_rule/create_mask_rule.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_mask_rule/create_mask_rule.xml
new file mode 100644
index 00000000000..f8e8830ae09
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_mask_rule/create_mask_rule.xml
@@ -0,0 +1,26 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="column" />
+ <column name="algorithm_type" />
+ <column name="algorithm_props" />
+ </metadata>
+ <row values="t_mask| order_id| MD5| " />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_mask_rule/drop_mask_rule_t_mask.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_mask_rule/drop_mask_rule_t_mask.xml
new file mode 100644
index 00000000000..d1bbc872414
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_mask_rule/drop_mask_rule_t_mask.xml
@@ -0,0 +1,25 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="column" />
+ <column name="algorithm_type" />
+ <column name="algorithm_props" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_sharding_rules/create_sharding_rules.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_sharding_rules/create_sharding_rules.xml
new file mode 100644
index 00000000000..3ac65df1c31
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_sharding_rules/create_sharding_rules.xml
@@ -0,0 +1,38 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="actual_data_nodes" />
+ <column name="actual_data_sources" />
+ <column name="database_strategy_type" />
+ <column name="database_sharding_column" />
+ <column name="database_sharding_algorithm_type" />
+ <column name="database_sharding_algorithm_props" />
+ <column name="table_strategy_type" />
+ <column name="table_sharding_column" />
+ <column name="table_sharding_algorithm_type" />
+ <column name="table_sharding_algorithm_props" />
+ <column name="key_generate_column" />
+ <column name="key_generator_type" />
+ <column name="key_generator_props" />
+ <column name="auditor_types" />
+ <column name="allow_hint_disable" />
+ </metadata>
+ <row values="t_order| ds_2.t_order_${0..1} | | | | | | STANDARD | order_id| inline| algorithm-expression=t_order_${order_id % 2} | | | | | " />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_sharding_rules/drop_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_sharding_rules/drop_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..d464b03c3b3
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_sharding_rules/drop_sharding_table_rule_t_order.xml
@@ -0,0 +1,37 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="actual_data_nodes" />
+ <column name="actual_data_sources" />
+ <column name="database_strategy_type" />
+ <column name="database_sharding_column" />
+ <column name="database_sharding_algorithm_type" />
+ <column name="database_sharding_algorithm_props" />
+ <column name="table_strategy_type" />
+ <column name="table_sharding_column" />
+ <column name="table_sharding_algorithm_type" />
+ <column name="table_sharding_algorithm_props" />
+ <column name="key_generate_column" />
+ <column name="key_generator_type" />
+ <column name="key_generator_props" />
+ <column name="auditor_types" />
+ <column name="allow_hint_disable" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/create_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/create_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..15d0230d9c7
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/create_sharding_table_rule_t_order.xml
@@ -0,0 +1,39 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+ <row values="t_order | ds_2.t_order_${0..3} | | | | | | STANDARD | order_id | inline | algorithm-expression=t_order_${order_id % 4} | | | | |"/>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/create_sharding_table_rule_t_order_item.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/create_sharding_table_rule_t_order_item.xml
new file mode 100644
index 00000000000..7ef566bd07e
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/create_sharding_table_rule_t_order_item.xml
@@ -0,0 +1,39 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+ <row values="t_order_item | ds_2.t_order_item_${0..3} | | | | | | STANDARD | order_id | inline | algorithm-expression=t_order_item_${order_id % 4} | | | | |"/>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/create_single_table_rules.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/create_single_table_rules.xml
new file mode 100644
index 00000000000..bb0705ad713
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/create_single_table_rules.xml
@@ -0,0 +1,28 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table_name" />
+ <column name="storage_unit_name" />
+ </metadata>
+ <row values="t_country| ds_2" />
+ <row values="t_product_category| ds_2" />
+ <row values="t_user| ds_0" />
+ <row values="temp| ds_1" />
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/drop_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/drop_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..d464b03c3b3
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/drop_sharding_table_rule_t_order.xml
@@ -0,0 +1,37 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="actual_data_nodes" />
+ <column name="actual_data_sources" />
+ <column name="database_strategy_type" />
+ <column name="database_sharding_column" />
+ <column name="database_sharding_algorithm_type" />
+ <column name="database_sharding_algorithm_props" />
+ <column name="table_strategy_type" />
+ <column name="table_sharding_column" />
+ <column name="table_sharding_algorithm_type" />
+ <column name="table_sharding_algorithm_props" />
+ <column name="key_generate_column" />
+ <column name="key_generator_type" />
+ <column name="key_generator_props" />
+ <column name="auditor_types" />
+ <column name="allow_hint_disable" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/drop_sharding_table_rule_t_order_item.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/drop_sharding_table_rule_t_order_item.xml
new file mode 100644
index 00000000000..ab41af4cbef
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/drop_sharding_table_rule_t_order_item.xml
@@ -0,0 +1,38 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/drop_single_table_rules.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/drop_single_table_rules.xml
new file mode 100644
index 00000000000..9ed72429c45
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/drop_single_table_rules.xml
@@ -0,0 +1,27 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table_name" />
+ <column name="storage_unit_name" />
+ </metadata>
+ <row values="t_country| ds_2" />
+ <row values="t_product_category| ds_2" />
+ <row values="t_user| ds_0" />
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/drop_table_temp.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/drop_table_temp.xml
new file mode 100644
index 00000000000..a824499d3e7
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/drop_table_temp.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table_name" />
+ <column name="storage_unit_name" />
+ </metadata>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/set_default_single_table_storage_unit.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/set_default_single_table_storage_unit.xml
new file mode 100644
index 00000000000..ec4a1512fcc
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/set_default_single_table_storage_unit.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="storage_unit_name" />
+ </metadata>
+ <row values="ds_1" />
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/set_default_single_table_storage_unit_=_random.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/set_default_single_table_storage_unit_=_random.xml
new file mode 100644
index 00000000000..a12bf8b54bb
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules/set_default_single_table_storage_unit_=_random.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="storage_unit_name" />
+ </metadata>
+ <row values="RANDOM" />
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/create_sharding_table_reference_rule_reference_0.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/create_sharding_table_reference_rule_reference_0.xml
new file mode 100644
index 00000000000..5acad3df919
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/create_sharding_table_reference_rule_reference_0.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="name" />
+ <column name="sharding_table_reference" />
+ </metadata>
+ <row values="reference_0| t_order,t_order_item" />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/create_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/create_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..0caee8394a1
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/create_sharding_table_rule_t_order.xml
@@ -0,0 +1,39 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+ <row values="t_order | ds_2.t_order_${0..1} | | | | | | STANDARD | order_id | inline | algorithm-expression=t_order_${order_id % 2} | | | | |"/>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/create_sharding_table_rule_t_order_item.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/create_sharding_table_rule_t_order_item.xml
new file mode 100644
index 00000000000..ffb7158b977
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/create_sharding_table_rule_t_order_item.xml
@@ -0,0 +1,39 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+ <row values="t_order_item | ds_2.t_order_item_${0..1} | | | | | | STANDARD | order_id | inline | algorithm-expression=t_order_item_${order_id % 2} | | | | |"/>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/drop_binding_rules.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/drop_binding_rules.xml
new file mode 100644
index 00000000000..cc2b3831070
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/drop_binding_rules.xml
@@ -0,0 +1,23 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="name" />
+ <column name="sharding_table_reference" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/drop_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/drop_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..ab41af4cbef
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/drop_sharding_table_rule_t_order.xml
@@ -0,0 +1,38 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/drop_sharding_table_rule_t_order_item.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/drop_sharding_table_rule_t_order_item.xml
new file mode 100644
index 00000000000..ab41af4cbef
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_binding_rules/drop_sharding_table_rule_t_order_item.xml
@@ -0,0 +1,38 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_broadcast_rules/create_broadcast_table_rule_t_country.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_broadcast_rules/create_broadcast_table_rule_t_country.xml
new file mode 100644
index 00000000000..5c97845eb4e
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_broadcast_rules/create_broadcast_table_rule_t_country.xml
@@ -0,0 +1,23 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="broadcast_table" />
+ </metadata>
+ <row values="t_country" />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_broadcast_rules/drop_broadcast_rules.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_broadcast_rules/drop_broadcast_rules.xml
new file mode 100644
index 00000000000..2bd51c33376
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_broadcast_rules/drop_broadcast_rules.xml
@@ -0,0 +1,22 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="broadcast_table" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_encrypt_rule/create_encrypt_rule_t_user.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_encrypt_rule/create_encrypt_rule_t_user.xml
new file mode 100644
index 00000000000..ba7e21933c9
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_encrypt_rule/create_encrypt_rule_t_user.xml
@@ -0,0 +1,33 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="logic_column" />
+ <column name="cipher_column" />
+ <column name="assisted_query_column" />
+ <column name="like_query_column" />
+ <column name="encryptor_type" />
+ <column name="encryptor_props" />
+ <column name="assisted_query_type" />
+ <column name="assisted_query_props" />
+ <column name="like_query_type" />
+ <column name="like_query_props" />
+ </metadata>
+ <row values="t_user| pwd| pwd_cipher| | | AES| aes-key-value=123456abc| | | | " />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_encrypt_rule/drop_encrypt_rule_t_user.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_encrypt_rule/drop_encrypt_rule_t_user.xml
new file mode 100644
index 00000000000..b06c6f46d30
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_encrypt_rule/drop_encrypt_rule_t_user.xml
@@ -0,0 +1,32 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="logic_column" />
+ <column name="cipher_column" />
+ <column name="assisted_query_column" />
+ <column name="like_query_column" />
+ <column name="encryptor_type" />
+ <column name="encryptor_props" />
+ <column name="assisted_query_type" />
+ <column name="assisted_query_props" />
+ <column name="like_query_type" />
+ <column name="like_query_props" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_mask_rule/create_mask_rule_t_mask.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_mask_rule/create_mask_rule_t_mask.xml
new file mode 100644
index 00000000000..8009d979d35
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_mask_rule/create_mask_rule_t_mask.xml
@@ -0,0 +1,26 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="column" />
+ <column name="algorithm_type" />
+ <column name="algorithm_props" />
+ </metadata>
+ <row values="t_mask | order_id | MD5 |" />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_mask_rule/drop_mask_rule.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_mask_rule/drop_mask_rule.xml
new file mode 100644
index 00000000000..d1bbc872414
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_mask_rule/drop_mask_rule.xml
@@ -0,0 +1,25 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="column" />
+ <column name="algorithm_type" />
+ <column name="algorithm_props" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_sharding_rules/create_sharding_rules.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_sharding_rules/create_sharding_rules.xml
new file mode 100644
index 00000000000..3ac65df1c31
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_sharding_rules/create_sharding_rules.xml
@@ -0,0 +1,38 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="actual_data_nodes" />
+ <column name="actual_data_sources" />
+ <column name="database_strategy_type" />
+ <column name="database_sharding_column" />
+ <column name="database_sharding_algorithm_type" />
+ <column name="database_sharding_algorithm_props" />
+ <column name="table_strategy_type" />
+ <column name="table_sharding_column" />
+ <column name="table_sharding_algorithm_type" />
+ <column name="table_sharding_algorithm_props" />
+ <column name="key_generate_column" />
+ <column name="key_generator_type" />
+ <column name="key_generator_props" />
+ <column name="auditor_types" />
+ <column name="allow_hint_disable" />
+ </metadata>
+ <row values="t_order| ds_2.t_order_${0..1} | | | | | | STANDARD | order_id| inline| algorithm-expression=t_order_${order_id % 2} | | | | | " />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_sharding_rules/drop_sharding_rules.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_sharding_rules/drop_sharding_rules.xml
new file mode 100644
index 00000000000..d464b03c3b3
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_sharding_rules/drop_sharding_rules.xml
@@ -0,0 +1,37 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="actual_data_nodes" />
+ <column name="actual_data_sources" />
+ <column name="database_strategy_type" />
+ <column name="database_sharding_column" />
+ <column name="database_sharding_algorithm_type" />
+ <column name="database_sharding_algorithm_props" />
+ <column name="table_strategy_type" />
+ <column name="table_sharding_column" />
+ <column name="table_sharding_algorithm_type" />
+ <column name="table_sharding_algorithm_props" />
+ <column name="key_generate_column" />
+ <column name="key_generator_type" />
+ <column name="key_generator_props" />
+ <column name="auditor_types" />
+ <column name="allow_hint_disable" />
+ </metadata>
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/create_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/create_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..15d0230d9c7
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/create_sharding_table_rule_t_order.xml
@@ -0,0 +1,39 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+ <row values="t_order | ds_2.t_order_${0..3} | | | | | | STANDARD | order_id | inline | algorithm-expression=t_order_${order_id % 4} | | | | |"/>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/create_sharding_table_rule_t_order_item.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/create_sharding_table_rule_t_order_item.xml
new file mode 100644
index 00000000000..7ef566bd07e
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/create_sharding_table_rule_t_order_item.xml
@@ -0,0 +1,39 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+ <row values="t_order_item | ds_2.t_order_item_${0..3} | | | | | | STANDARD | order_id | inline | algorithm-expression=t_order_item_${order_id % 4} | | | | |"/>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/drop_sharding_table_rule_t_order.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/drop_sharding_table_rule_t_order.xml
new file mode 100644
index 00000000000..ab41af4cbef
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/drop_sharding_table_rule_t_order.xml
@@ -0,0 +1,38 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/drop_sharding_table_rule_t_order_item.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/drop_sharding_table_rule_t_order_item.xml
new file mode 100644
index 00000000000..ab41af4cbef
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/drop_sharding_table_rule_t_order_item.xml
@@ -0,0 +1,38 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table"/>
+ <column name="actual_data_nodes"/>
+ <column name="actual_data_sources"/>
+ <column name="database_strategy_type"/>
+ <column name="database_sharding_column"/>
+ <column name="database_sharding_algorithm_type"/>
+ <column name="database_sharding_algorithm_props"/>
+ <column name="table_strategy_type"/>
+ <column name="table_sharding_column"/>
+ <column name="table_sharding_algorithm_type"/>
+ <column name="table_sharding_algorithm_props"/>
+ <column name="key_generate_column"/>
+ <column name="key_generator_type"/>
+ <column name="key_generator_props"/>
+ <column name="auditor_types"/>
+ <column name="allow_hint_disable"/>
+ </metadata>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/drop_single_table_rules.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/drop_single_table_rules.xml
new file mode 100644
index 00000000000..9ed72429c45
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/drop_single_table_rules.xml
@@ -0,0 +1,27 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table_name" />
+ <column name="storage_unit_name" />
+ </metadata>
+ <row values="t_country| ds_2" />
+ <row values="t_product_category| ds_2" />
+ <row values="t_user| ds_0" />
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/set_default_single_table_storage_unit.xml b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/set_default_single_table_storage_unit.xml
new file mode 100644
index 00000000000..f085762c707
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules/set_default_single_table_storage_unit.xml
@@ -0,0 +1,24 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="storage_unit_name"/>
+ </metadata>
+ <row values="ds_0"/>
+</dataset>
+
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-alter.xml b/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-alter.xml
index 59442df1530..12e7fe4729e 100644
--- a/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-alter.xml
+++ b/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-alter.xml
@@ -22,29 +22,71 @@
<!-- </assertion>-->
<!-- </test-case>-->
- <test-case sql="ALTER SHARDING TABLE REFERENCE RULE reference_0 (t_order,t_order_item)" db-types="MySQL, PostgreSQL">
- <assertion expected-data-file="alter_binding_rules.xml">
- <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 2}')))));
- CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 2}')))));
- CREATE SHARDING TABLE REFERENCE RULE reference_0 (t_order,t_order_item);" />
+ <test-case sql="ALTER SHARDING TABLE REFERENCE RULE reference_0 (t_order,t_order_item);" db-types="MySQL, PostgreSQL">
+ <assertion expected-data-file="alter_binding_rules/create_sharding_table_rule_t_order.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 2}')))));"/>
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;" />
+ </assertion>
+
+ <assertion expected-data-file="alter_binding_rules/create_sharding_table_rule_t_order_item.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 2}')))));" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order_item;" />
+ </assertion>
+
+ <assertion expected-data-file="alter_binding_rules/create_sharding_table_reference_rule_reference_0.xml">
+ <initial-sql sql="CREATE SHARDING TABLE REFERENCE RULE reference_0 (t_order,t_order_item);" />
+ <assertion-sql sql="SHOW SHARDING TABLE REFERENCE RULES;" />
+ </assertion>
+
+ <assertion expected-data-file="alter_binding_rules/alter_binding_rules.xml">
+ <assertion-sql sql="SHOW SHARDING TABLE REFERENCE RULES;" />
+ </assertion>
+
+ <assertion expected-data-file="alter_binding_rules/drop_sharding_table_reference_rule_reference_0.xml">
+ <destroy-sql sql="DROP SHARDING TABLE REFERENCE RULE reference_0;" />
<assertion-sql sql="SHOW SHARDING TABLE REFERENCE RULES;" />
- <destroy-sql sql="DROP SHARDING TABLE REFERENCE RULE reference_0;DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;" />
+ </assertion>
+
+ <assertion expected-data-file="alter_binding_rules/drop_sharding_table_rule_t_order.xml">
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order;" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;" />
+ </assertion>
+
+ <assertion expected-data-file="alter_binding_rules/drop_sharding_table_rule_t_order_item.xml">
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order_item;" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order_item;" />
</assertion>
</test-case>
<test-case sql="ALTER ENCRYPT RULE t_user (COLUMNS((NAME=pwd,CIPHER=pwd_cipher,ENCRYPT_ALGORITHM(TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abcd'))))));" db-types="MySQL, PostgreSQL">
- <assertion expected-data-file="alter_encrypt_rule.xml">
+ <assertion expected-data-file="alter_encrypt_rule/create_encrypt_rule_t_user.xml">
<initial-sql sql="CREATE ENCRYPT RULE t_user (COLUMNS((NAME=pwd,CIPHER=pwd_cipher,ENCRYPT_ALGORITHM(TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abc'))))));" />
<assertion-sql sql="SHOW ENCRYPT TABLE RULE t_user;" />
- <destroy-sql sql="DROP ENCRYPT RULE t_user " />
+ </assertion>
+
+ <assertion expected-data-file="alter_encrypt_rule/alter_encrypt_rule.xml">
+ <assertion-sql sql="SHOW ENCRYPT TABLE RULE t_user;" />
+ </assertion>
+
+ <assertion expected-data-file="alter_encrypt_rule/drop_encrypt_rule_t_user.xml">
+ <destroy-sql sql="DROP ENCRYPT RULE t_user;" />
+ <assertion-sql sql="SHOW ENCRYPT TABLE RULE t_user;" />
</assertion>
</test-case>
<test-case sql="ALTER SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 4}')))));" db-types="MySQL">
- <assertion expected-data-file="alter_sharding_rules.xml">
+ <assertion expected-data-file="alter_sharding_rules/create_sharding_table_rule_t_order.xml">
<initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 2}')))));" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;" />
+ </assertion>
+
+ <assertion expected-data-file="alter_sharding_rules/alter_sharding_rules.xml">
<assertion-sql sql="SHOW SHARDING TABLE RULES;" />
- <destroy-sql sql="DROP SHARDING TABLE RULE t_order" />
+ </assertion>
+
+ <assertion expected-data-file="alter_sharding_rules/drop_sharding_table_rule_t_order.xml">
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order;" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;" />
</assertion>
</test-case>
@@ -65,10 +107,18 @@
<!-- </test-case>-->
<test-case sql="ALTER MASK RULE t_mask (COLUMNS((NAME=order_id, TYPE(NAME='MASK_FROM_X_TO_Y', PROPERTIES('from-x'=1, 'to-y'=2, 'replace-char'='*')))));">
- <assertion expected-data-file="alter_mask_rule.xml">
+ <assertion expected-data-file="alter_mask_rule/create_mask_rule_t_mask.xml">
<initial-sql sql="CREATE MASK RULE t_mask (COLUMNS((NAME=order_id,TYPE(NAME='MD5'))));" />
<assertion-sql sql="SHOW MASK RULES;" />
+ </assertion>
+
+ <assertion expected-data-file="alter_mask_rule/alter_mask_rule.xml">
+ <assertion-sql sql="SHOW MASK RULES;" />
+ </assertion>
+
+ <assertion expected-data-file="alter_mask_rule/drop_mask_rule_t_mask.xml">
<destroy-sql sql="DROP MASK RULE t_mask;" />
+ <assertion-sql sql="SHOW MASK RULES;" />
</assertion>
</test-case>
</integration-test-cases>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-create.xml b/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-create.xml
index 22a64cc8879..42560dc2153 100644
--- a/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-create.xml
+++ b/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-create.xml
@@ -16,52 +16,130 @@
-->
<integration-test-cases>
<test-case sql="CREATE SHARDING TABLE REFERENCE RULE reference_0 (t_order,t_order_item);" db-types="MySQL, PostgreSQL">
- <assertion expected-data-file="create_binding_rules.xml">
- <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 2}')))));
- CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 2}')))));" />
+ <assertion expected-data-file="create_binding_rules/create_sharding_table_rule_t_order.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 2}')))));"/>
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;" />
+ </assertion>
+ <assertion expected-data-file="create_binding_rules/create_sharding_table_rule_t_order_item.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 2}')))));" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order_item;" />
+ </assertion>
+ <assertion expected-data-file="create_binding_rules/create_binding_rules.xml">
+ <assertion-sql sql="SHOW SHARDING TABLE REFERENCE RULES;" />
+ </assertion>
+ <assertion expected-data-file="create_binding_rules/drop_sharding_table_reference_rule_reference_0.xml">
+ <destroy-sql sql="DROP SHARDING TABLE REFERENCE RULE reference_0;" />
<assertion-sql sql="SHOW SHARDING TABLE REFERENCE RULES;" />
- <destroy-sql sql="DROP SHARDING TABLE REFERENCE RULE reference_0;DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;" />
+ </assertion>
+ <assertion expected-data-file="create_binding_rules/drop_sharding_table_rule_t_order.xml">
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order;" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;" />
+ </assertion>
+ <assertion expected-data-file="create_binding_rules/drop_sharding_table_rule_t_order_item.xml">
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order_item;" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order_item;" />
</assertion>
</test-case>
-
+
<test-case sql="CREATE BROADCAST TABLE RULE t_product_category;" db-types="MySQL, PostgreSQL">
- <assertion expected-data-file="create_broadcast_rules.xml">
+ <assertion expected-data-file="create_broadcast_rules/create_broadcast_rules.xml">
+ <assertion-sql sql="SHOW BROADCAST TABLE RULES;" />
+ </assertion>
+ <assertion expected-data-file="create_broadcast_rules/drop_broadcast_table_rule_t_product_category.xml">
+ <destroy-sql sql="DROP BROADCAST TABLE RULE t_product_category;" />
<assertion-sql sql="SHOW BROADCAST TABLE RULES;" />
- <destroy-sql sql="DROP BROADCAST TABLE RULE t_product_category; " />
</assertion>
</test-case>
-
+
<test-case sql="CREATE ENCRYPT RULE t_user (COLUMNS((NAME=pwd,CIPHER=pwd_cipher,ENCRYPT_ALGORITHM(TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abc'))))));" db-types="MySQL, PostgreSQL">
- <assertion expected-data-file="create_encrypt_rule.xml">
+ <assertion expected-data-file="create_encrypt_rule/create_encrypt_rule.xml">
+ <assertion-sql sql="SHOW ENCRYPT TABLE RULE t_user;" />
+ </assertion>
+ <assertion expected-data-file="create_encrypt_rule/drop_encrypt_rule_t_user.xml">
+ <destroy-sql sql="DROP ENCRYPT RULE t_user;" />
<assertion-sql sql="SHOW ENCRYPT TABLE RULE t_user;" />
- <destroy-sql sql="DROP ENCRYPT RULE t_user " />
</assertion>
</test-case>
-
+
<test-case sql="CREATE TABLE temp (country_id INT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);" db-types="MySQL, PostgreSQL">
- <assertion expected-data-file="create_single_table_rules.xml">
- <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 4}')))));
- CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 4}')))));
- SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_1;" />
+ <assertion expected-data-file="create_single_table_rules/create_sharding_table_rule_t_order.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 4}')))));" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;" />
+ </assertion>
+ <assertion expected-data-file="create_single_table_rules/create_sharding_table_rule_t_order_item.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 4}')))));" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order_item;" />
+ </assertion>
+ <assertion expected-data-file="create_single_table_rules/set_default_single_table_storage_unit.xml">
+ <initial-sql sql="SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_1;" />
+ <assertion-sql sql="SHOW DEFAULT SINGLE TABLE STORAGE UNIT;" />
+ </assertion>
+ <assertion expected-data-file="create_single_table_rules/create_single_table_rules.xml">
<assertion-sql sql="SHOW SINGLE TABLES;" />
- <destroy-sql sql="DROP TABLE temp;SET DEFAULT SINGLE TABLE STORAGE UNIT = RANDOM;DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;" />
+ </assertion>
+ <assertion expected-data-file="create_single_table_rules/drop_table_temp.xml">
+ <destroy-sql sql="DROP TABLE temp;" />
+ <assertion-sql sql="SHOW SINGLE TABLE temp;" />
+ </assertion>
+ <assertion expected-data-file="create_single_table_rules/set_default_single_table_storage_unit_=_random.xml">
+ <destroy-sql sql="SET DEFAULT SINGLE TABLE STORAGE UNIT = RANDOM;" />
+ <assertion-sql sql="SHOW DEFAULT SINGLE TABLE STORAGE UNIT;" />
+ </assertion>
+ <assertion expected-data-file="create_single_table_rules/drop_sharding_table_rule_t_order.xml">
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order;" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;" />
+ </assertion>
+ <assertion expected-data-file="create_single_table_rules/drop_sharding_table_rule_t_order_item.xml">
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order_item;" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order_item;" />
</assertion>
</test-case>
-
+
<test-case sql="CREATE TABLE temp_alter (country_id INT PRIMARY KEY, country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);" db-types="MySQL, PostgreSQL">
- <assertion expected-data-file="alter_single_table_rules.xml">
- <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 4}')))));
- CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 4}')))));
- SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_1;SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_0;" />
+ <assertion expected-data-file="alter_single_table_rules/create_sharding_table_rule_t_order.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 4}')))));" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;" />
+ </assertion>
+ <assertion expected-data-file="alter_single_table_rules/create_sharding_table_rule_t_order_item.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 4}')))));" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order_item;" />
+ </assertion>
+ <assertion expected-data-file="alter_single_table_rules/set_default_single_table_storage_unit_=_ds_1.xml">
+ <initial-sql sql="SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_1;" />
+ <assertion-sql sql="SHOW DEFAULT SINGLE TABLE STORAGE UNIT;" />
+ </assertion>
+ <assertion expected-data-file="alter_single_table_rules/set_default_single_table_storage_unit_=_ds_0.xml">
+ <initial-sql sql="SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_0;" />
+ <assertion-sql sql="SHOW DEFAULT SINGLE TABLE STORAGE UNIT;" />
+ </assertion>
+ <assertion expected-data-file="alter_single_table_rules/alter_single_table_rules.xml">
<assertion-sql sql="SHOW SINGLE TABLES;" />
- <destroy-sql sql="DROP TABLE temp_alter;SET DEFAULT SINGLE TABLE STORAGE UNIT = RANDOM;DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;" />
+ </assertion>
+ <assertion expected-data-file="alter_single_table_rules/drop_table_temp_alter.xml">
+ <destroy-sql sql="DROP TABLE temp_alter;" />
+ <assertion-sql sql="SHOW SINGLE TABLE temp_alter;" />
+ </assertion>
+ <assertion expected-data-file="alter_single_table_rules/set_default_single_table_storage_unit_=_random.xml">
+ <destroy-sql sql="SET DEFAULT SINGLE TABLE STORAGE UNIT = RANDOM;" />
+ <assertion-sql sql="SHOW DEFAULT SINGLE TABLE STORAGE UNIT;" />
+ </assertion>
+ <assertion expected-data-file="alter_single_table_rules/drop_sharding_table_rule_t_order.xml">
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order;" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;" />
+ </assertion>
+ <assertion expected-data-file="alter_single_table_rules/drop_sharding_table_rule_t_order_item.xml">
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order_item;" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order_item;" />
</assertion>
</test-case>
-
+
<test-case sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 2}')))));" db-types="MySQL">
- <assertion expected-data-file="create_sharding_rules.xml">
+ <assertion expected-data-file="create_sharding_rules/create_sharding_rules.xml">
<assertion-sql sql="SHOW SHARDING TABLE RULES;" />
+ </assertion>
+ <assertion expected-data-file="create_sharding_rules/drop_sharding_table_rule_t_order.xml">
<destroy-sql sql="DROP SHARDING TABLE RULE t_order" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULES;" />
</assertion>
</test-case>
@@ -80,11 +158,14 @@
<!-- <assertion-sql sql="SHOW READWRITE_SPLITTING RULES;" />-->
<!-- </assertion>-->
<!-- </test-case>-->
-
+
<test-case sql="CREATE MASK RULE t_mask (COLUMNS((NAME=order_id,TYPE(NAME='MD5'))));">
- <assertion expected-data-file="create_mask_rule.xml">
+ <assertion expected-data-file="create_mask_rule/create_mask_rule.xml">
<assertion-sql sql="SHOW MASK RULES;" />
+ </assertion>
+ <assertion expected-data-file="create_mask_rule/drop_mask_rule_t_mask.xml">
<destroy-sql sql="DROP MASK RULE t_mask;" />
+ <assertion-sql sql="SHOW MASK RULES;" />
</assertion>
</test-case>
</integration-test-cases>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-drop.xml b/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-drop.xml
index 497cc29efa9..fc991fbe592 100644
--- a/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-drop.xml
+++ b/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-drop.xml
@@ -16,32 +16,57 @@
-->
<integration-test-cases>
<test-case sql="DROP SHARDING TABLE REFERENCE RULE reference_0;" db-types="MySQL, PostgreSQL">
- <assertion expected-data-file="drop_binding_rules.xml">
- <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 2}')))));
- CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 2}')))));
- CREATE SHARDING TABLE REFERENCE RULE reference_0 (t_order,t_order_item);" />
+ <assertion expected-data-file="drop_binding_rules/create_sharding_table_rule_t_order.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 2}')))));"/>
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;" />
+ </assertion>
+ <assertion expected-data-file="drop_binding_rules/create_sharding_table_rule_t_order_item.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 2}')))));" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order_item;" />
+ </assertion>
+ <assertion expected-data-file="drop_binding_rules/create_sharding_table_reference_rule_reference_0.xml">
+ <initial-sql sql="CREATE SHARDING TABLE REFERENCE RULE reference_0 (t_order,t_order_item);" />
<assertion-sql sql="SHOW SHARDING TABLE REFERENCE RULES;" />
- <destroy-sql sql="DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;" />
+ </assertion>
+ <assertion expected-data-file="drop_binding_rules/drop_binding_rules.xml">
+ <assertion-sql sql="SHOW SHARDING TABLE REFERENCE RULES;" />
+ </assertion>
+ <assertion expected-data-file="drop_binding_rules/drop_sharding_table_rule_t_order.xml">
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order;" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;" />
+ </assertion>
+ <assertion expected-data-file="drop_binding_rules/drop_sharding_table_rule_t_order_item.xml">
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order_item;" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order_item;" />
</assertion>
</test-case>
-
+
<test-case sql="DROP BROADCAST TABLE RULE t_country;" db-types="MySQL, PostgreSQL">
- <assertion expected-data-file="drop_broadcast_rules.xml">
+ <assertion expected-data-file="drop_broadcast_rules/create_broadcast_table_rule_t_country.xml">
<initial-sql sql="CREATE BROADCAST TABLE RULE t_country;" />
<assertion-sql sql="SHOW BROADCAST TABLE RULES;" />
</assertion>
+ <assertion expected-data-file="drop_broadcast_rules/drop_broadcast_rules.xml">
+ <assertion-sql sql="SHOW BROADCAST TABLE RULES;" />
+ </assertion>
</test-case>
-
+
<test-case sql="DROP ENCRYPT RULE t_user;" db-types="MySQL, PostgreSQL">
- <assertion expected-data-file="drop_encrypt_rule.xml">
+ <assertion expected-data-file="drop_encrypt_rule/create_encrypt_rule_t_user.xml">
<initial-sql sql="CREATE ENCRYPT RULE t_user (COLUMNS((NAME=pwd,CIPHER=pwd_cipher,ENCRYPT_ALGORITHM(TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abc'))))));" />
<assertion-sql sql="SHOW ENCRYPT TABLE RULE t_user;" />
</assertion>
+ <assertion expected-data-file="drop_encrypt_rule/drop_encrypt_rule_t_user.xml">
+ <assertion-sql sql="SHOW ENCRYPT TABLE RULE t_user;" />
+ </assertion>
</test-case>
-
- <test-case sql="DROP SHARDING TABLE RULE t_order" db-types="MySQL">
- <assertion expected-data-file="drop_sharding_rules.xml">
+
+ <test-case sql="DROP SHARDING TABLE RULE t_order;" db-types="MySQL">
+ <assertion expected-data-file="drop_sharding_rules/create_sharding_rules.xml">
<initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 2}')))));" />
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;" />
+ </assertion>
+ <assertion expected-data-file="drop_sharding_rules/drop_sharding_rules.xml">
<assertion-sql sql="SHOW SHARDING TABLE RULES;" />
</assertion>
</test-case>
@@ -53,11 +78,14 @@
<!-- <assertion-sql sql="SHOW TABLES;" />-->
<!-- </assertion>-->
<!-- </test-case>-->
-
+
<test-case sql="DROP MASK RULE t_mask;">
- <assertion expected-data-file="drop_mask_rule.xml">
+ <assertion expected-data-file="drop_mask_rule/create_mask_rule_t_mask.xml">
<initial-sql sql="CREATE MASK RULE t_mask (COLUMNS((NAME=order_id,TYPE(NAME='MD5'))));" />
<assertion-sql sql="SHOW MASK RULES;" />
</assertion>
+ <assertion expected-data-file="drop_mask_rule/drop_mask_rule.xml">
+ <assertion-sql sql="SHOW MASK RULES;" />
+ </assertion>
</test-case>
</integration-test-cases>
diff --git a/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-set.xml b/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-set.xml
index 5d1e41189d8..b0d0bf0596a 100644
--- a/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-set.xml
+++ b/test/e2e/sql/src/test/resources/cases/rdl/rdl-integration-set.xml
@@ -16,12 +16,34 @@
-->
<integration-test-cases>
<test-case sql="SET DEFAULT SINGLE TABLE STORAGE UNIT = RANDOM" db-types="MySQL, PostgreSQL">
- <assertion expected-data-file="drop_single_table_rules.xml">
- <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 4}')))));
- CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 4}')))));
- SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_0;" />
- <assertion-sql sql="SHOW SINGLE TABLES;" />
- <destroy-sql sql="DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;" />
+ <assertion expected-data-file="drop_single_table_rules/create_sharding_table_rule_t_order.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order (DATANODES('ds_2.t_order_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id % 4}')))));"/>
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;"/>
+ </assertion>
+
+ <assertion expected-data-file="drop_single_table_rules/create_sharding_table_rule_t_order_item.xml">
+ <initial-sql
+ sql="CREATE SHARDING TABLE RULE t_order_item (DATANODES('ds_2.t_order_item_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id % 4}')))));"/>
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order_item;"/>
+ </assertion>
+
+ <assertion expected-data-file="drop_single_table_rules/set_default_single_table_storage_unit.xml">
+ <initial-sql sql="SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_0;"/>
+ <assertion-sql sql="SHOW DEFAULT SINGLE TABLE STORAGE UNIT;"/>
+ </assertion>
+
+ <assertion expected-data-file="drop_single_table_rules/drop_single_table_rules.xml">
+ <assertion-sql sql="SHOW SINGLE TABLES;"/>
+ </assertion>
+
+ <assertion expected-data-file="drop_single_table_rules/drop_sharding_table_rule_t_order.xml">
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order;"/>
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order;"/>
+ </assertion>
+
+ <assertion expected-data-file="drop_single_table_rules/drop_sharding_table_rule_t_order_item.xml">
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order_item;"/>
+ <assertion-sql sql="SHOW SHARDING TABLE RULE t_order_item;"/>
</assertion>
</test-case>
</integration-test-cases>