diff --git a/test/e2e/sql/pom.xml b/test/e2e/sql/pom.xml
index 5d2f2774c52cc..a9f804dede48c 100644
--- a/test/e2e/sql/pom.xml
+++ b/test/e2e/sql/pom.xml
@@ -55,5 +55,9 @@
com.zaxxer
HikariCP
+
+ org.awaitility
+ awaitility
+
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 07afb9ea6d3b6..d9f6e8ec53a50 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 @@ private Stream getBatchTestCaseArguments(final SQLCommandType type) {
private Stream getSingleTestCaseArguments(final SQLCommandType type) {
Collection 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 67a9f5f6cb54a..7c819ea735958 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.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 assertions;
+
+ private final List dataSets = new ArrayList<>();
+
private final DataSet dataSet;
private final DataSet generatedKeyDataSet;
@@ -49,7 +55,16 @@ public SingleE2EContainerComposer(final AssertionTestParameter testParam) {
super(testParam);
sql = testParam.getTestCaseContext().getTestCase().getSql();
sqlExecuteType = testParam.getSqlExecuteType();
+ assertions = testParam.getAssertions();
assertion = testParam.getAssertion();
+
+ 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 f09565d594294..0ac8c60b20eb1 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,13 @@
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.awaitility.Durations;
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;
@@ -41,11 +41,9 @@
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
-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 @@ void assertExecute(final AssertionTestParameter testParam) throws SQLException {
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 (each.getInitialSQL() != null && each.getAssertionSQL() != null) {
+ init(containerComposer, each, dataSetIndex, mode);
+ }
+ if (each.getAssertionSQL() != null && each.getDestroySQL() == null && each.getInitialSQL() == null) {
+ executeSQLCase(containerComposer, each, dataSetIndex, mode);
+ }
+ if (each.getDestroySQL() != null && each.getAssertionSQL() != null) {
+ 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, int dataSetIndex, 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().atMost(Durations.ONE_MINUTE).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 getExpectedColumns(final SingleE2EContainerComposer containerComposer) {
+ private Collection getExpectedColumns(final SingleE2EContainerComposer containerComposer, final int dataSetIndex) {
Collection result = new LinkedList<>();
- for (DataSetMetaData each : containerComposer.getDataSet().getMetaDataList()) {
+ List 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 381472540352a..bc6bea2ec9567 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,33 @@ private Collection getAssertionTestParameter(final Integ
private Collection getAssertionTestParameter(final IntegrationTestCaseContext testCaseContext,
final DatabaseType databaseType, final SQLExecuteType sqlExecuteType, final SQLCommandType sqlCommandType) {
Collection result = new LinkedList<>();
- for (IntegrationTestCaseAssertion each : testCaseContext.getTestCase().getAssertions()) {
- result.addAll(getAssertionTestParameter(testCaseContext, databaseType, sqlExecuteType, each, sqlCommandType));
- }
+ IntegrationTestCaseAssertion each = testCaseContext.getTestCase().getAssertions().iterator().next();
+ result.addAll(getAssertionTestParameter(testCaseContext, databaseType, sqlExecuteType, each, testCaseContext.getTestCase().getAssertions(), sqlCommandType));
+
return result;
}
private Collection getAssertionTestParameter(final IntegrationTestCaseContext testCaseContext,
final DatabaseType databaseType, final SQLExecuteType sqlExecuteType,
- final IntegrationTestCaseAssertion assertion, final SQLCommandType sqlCommandType) {
+ final IntegrationTestCaseAssertion assertion,
+ final Collection assertions,
+ final SQLCommandType sqlCommandType) {
Collection 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 getAssertionTestParameter(final IntegrationTestCaseContext testCaseContext, final IntegrationTestCaseAssertion assertion,
+ final Collection assertions,
final String adapter, final DatabaseType databaseType,
final SQLExecuteType sqlExecuteType, final SQLCommandType sqlCommandType) {
Collection 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 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 4a44185c2ff40..ecb88d4295cc6 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,6 +25,7 @@
import org.apache.shardingsphere.test.e2e.cases.SQLExecuteType;
import org.apache.shardingsphere.test.e2e.cases.assertion.IntegrationTestCaseAssertion;
+import java.util.Collection;
/**
* Assertion test parameter.
*/
@@ -36,6 +37,8 @@ public final class AssertionTestParameter implements E2ETestParameter {
private final IntegrationTestCaseAssertion assertion;
+ private final Collection 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 0000000000000..5acad3df919ee
--- /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 @@
+
+
+
+
+
+
+
+
+
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 0000000000000..5acad3df919ee
--- /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 @@
+
+
+
+
+
+
+
+
+
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 0000000000000..0caee8394a1f3
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..ffb7158b977c6
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..cc2b38310703f
--- /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 @@
+
+
+
+
+
+
+
+
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 0000000000000..d464b03c3b36b
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..d464b03c3b36b
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..c198bcecbc5ce
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..ba7e21933c9a6
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..b06c6f46d308f
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..0f7bc437a10dd
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..053ee1b62ac77
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..d1bbc8724145a
--- /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 @@
+
+
+
+
+
+
+
+
+
+
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 0000000000000..7e7ca28af327d
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..0caee8394a1f3
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..d464b03c3b36b
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..b19b759d4027a
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..15d0230d9c7ac
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..7ef566bd07e87
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..d464b03c3b36b
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..ab41af4cbef00
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..a824499d3e720
--- /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 @@
+
+
+
+
+
+
+
+
+
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 0000000000000..89982f0508908
--- /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 @@
+
+
+
+
+
+
+
+
+
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 0000000000000..ec4a1512fcc24
--- /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 @@
+
+
+
+
+
+
+
+
+
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 0000000000000..a12bf8b54bb94
--- /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 @@
+
+
+
+
+
+
+
+
+
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 0000000000000..5acad3df919ee
--- /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 @@
+
+
+
+
+
+
+
+
+
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 0000000000000..0caee8394a1f3
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..ffb7158b977c6
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..cc2b38310703f
--- /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 @@
+
+
+
+
+
+
+
+
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 0000000000000..ab41af4cbef00
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..ab41af4cbef00
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..f85e249bbf30f
--- /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 @@
+
+
+
+
+
+
+
+
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 0000000000000..2bd51c333760a
--- /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 @@
+
+
+
+
+
+
+
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 0000000000000..ba7e21933c9a6
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..b06c6f46d308f
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..f8e8830ae09fd
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..d1bbc8724145a
--- /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 @@
+
+
+
+
+
+
+
+
+
+
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 0000000000000..3ac65df1c3133
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..d464b03c3b36b
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..15d0230d9c7ac
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..7ef566bd07e87
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..bb0705ad713a4
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..d464b03c3b36b
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..ab41af4cbef00
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..9ed72429c4504
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..a824499d3e720
--- /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 @@
+
+
+
+
+
+
+
+
+
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 0000000000000..ec4a1512fcc24
--- /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 @@
+
+
+
+
+
+
+
+
+
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 0000000000000..a12bf8b54bb94
--- /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 @@
+
+
+
+
+
+
+
+
+
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 0000000000000..5acad3df919ee
--- /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 @@
+
+
+
+
+
+
+
+
+
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 0000000000000..0caee8394a1f3
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..ffb7158b977c6
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..cc2b38310703f
--- /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 @@
+
+
+
+
+
+
+
+
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 0000000000000..ab41af4cbef00
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..ab41af4cbef00
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..5c97845eb4ece
--- /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 @@
+
+
+
+
+
+
+
+
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 0000000000000..2bd51c333760a
--- /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 @@
+
+
+
+
+
+
+
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 0000000000000..ba7e21933c9a6
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..b06c6f46d308f
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..8009d979d3514
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..d1bbc8724145a
--- /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 @@
+
+
+
+
+
+
+
+
+
+
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 0000000000000..3ac65df1c3133
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..d464b03c3b36b
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..15d0230d9c7ac
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..7ef566bd07e87
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..ab41af4cbef00
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..ab41af4cbef00
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..9ed72429c4504
--- /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 @@
+
+
+
+
+
+
+
+
+
+
+
+
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 0000000000000..f085762c707e5
--- /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 @@
+
+
+
+
+
+
+
+
+
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 59442df1530d1..12e7fe4729e85 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 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
-
+
+
+
+
+
@@ -65,10 +107,18 @@
-
+
+
+
+
+
+
+
+
+
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 22a64cc8879d3..42560dc215393 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 @@
-->
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
-
-
+
-
+
+
+
+
+
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
@@ -80,11 +158,14 @@
-
+
-
+
+
+
+
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 497cc29efa9fc..fc991fbe592d4 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 @@
-->
-
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
-
+
-
+
+
+
+
-
-
-
+
+
+
+
+
+
@@ -53,11 +78,14 @@
-
+
-
+
+
+
+
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 5d1e41189d830..b0d0bf0596a79 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 @@
-->
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+