You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2023/01/15 14:59:49 UTC

[shardingsphere] branch master updated: Optimise DistSQL parser test (#23557)

This is an automated email from the ASF dual-hosted git repository.

jianglongtao 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 d1f69f25ce1 Optimise DistSQL parser test (#23557)
d1f69f25ce1 is described below

commit d1f69f25ce14e3f2eebea5ac7a5c893ea7212f63
Author: Zichao <57...@users.noreply.github.com>
AuthorDate: Mon Jan 16 03:59:43 2023 +1300

    Optimise DistSQL parser test (#23557)
---
 .../segment/distsql/rdl/ShadowRuleAssert.java      |  2 +-
 .../rdl/ShardingTableReferenceRuleAssert.java      |  4 ++-
 .../rdl/alter/AlterRuleStatementAssert.java        |  3 +-
 .../AlterDatabaseDiscoveryRuleStatementAssert.java | 40 ++++++++++------------
 .../rdl/create/CreateRuleStatementAssert.java      |  3 +-
 ...CreateDatabaseDiscoveryRuleStatementAssert.java | 39 ++++++++++-----------
 .../ExpectedDatabaseDiscoveryDefinitionRule.java   |  4 ---
 .../impl/distsql/rdl/ExpectedShadowRule.java       |  3 --
 .../parser/src/main/resources/case/rdl/alter.xml   | 10 +++---
 .../parser/src/main/resources/case/rdl/create.xml  | 24 ++++++-------
 10 files changed, 61 insertions(+), 71 deletions(-)

diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/rdl/ShadowRuleAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/rdl/ShadowRuleAssert.java
index 92354186f6a..e7effcd6257 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/rdl/ShadowRuleAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/rdl/ShadowRuleAssert.java
@@ -59,7 +59,7 @@ public final class ShadowRuleAssert {
             assertThat(assertContext.getText(String.format("`%s`'s shadow rule segment assertion error: ",
                     actual.getClass().getSimpleName())), actual.getSource(), is(expected.getSource()));
             assertThat(assertContext.getText(String.format("`%s`'s shadow rule segment assertion error: ",
-                    actual.getClass().getSimpleName())), actual.getRuleName(), is(expected.getRuleName()));
+                    actual.getClass().getSimpleName())), actual.getRuleName(), is(expected.getName()));
             for (ExpectedShadowTableRule each : expected.getShadowTableRules()) {
                 assertIsTableRules(assertContext, actual.getShadowTableRules().get(each.getTableName()), each.getAlgorithms());
             }
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/rdl/ShardingTableReferenceRuleAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/rdl/ShardingTableReferenceRuleAssert.java
index 21c96c782d2..441db03ba64 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/rdl/ShardingTableReferenceRuleAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/rdl/ShardingTableReferenceRuleAssert.java
@@ -45,9 +45,11 @@ public final class ShardingTableReferenceRuleAssert {
         if (null == expected) {
             assertNull(assertContext.getText("Actual sharding table reference rule should not exist."), actual);
         } else {
-            assertNotNull(assertContext.getText("Actual sharding table reference rule should exist."), actual);
+            assertNotNull(assertContext.getText("Actual sharding reference table should exist."), actual);
             assertThat(assertContext.getText(String.format("`%s`'s sharding table reference rule segment assertion error: ",
                     actual.getClass().getSimpleName())), actual.getReference(), is(expected.getTableGroups()));
+            assertThat(assertContext.getText(String.format("`%s`'s sharding table reference rule name assertion error: ",
+                    actual.getClass().getName())), actual.getName(), is(expected.getName()));
         }
     }
 }
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/AlterRuleStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/AlterRuleStatementAssert.java
index 6fd78479a4f..85348c85114 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/AlterRuleStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/AlterRuleStatementAssert.java
@@ -42,6 +42,7 @@ import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.r
 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.rdl.alter.impl.AlterShardingTableReferenceRulesStatementAssert;
 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.rdl.alter.impl.AlterShardingTableRuleStatementAssert;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
+import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rdl.rule.dbdiscovery.AlterDatabaseDiscoveryDefinitionRuleStatementTestCase;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rdl.rule.dbdiscovery.AlterDatabaseDiscoveryHeartbeatStatementTestCase;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rdl.rule.dbdiscovery.AlterDatabaseDiscoveryTypeStatementTestCase;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rdl.rule.encrypt.AlterEncryptRuleStatementTestCase;
@@ -66,7 +67,7 @@ public final class AlterRuleStatementAssert {
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final AlterRuleStatement actual, final SQLParserTestCase expected) {
         if (actual instanceof AlterDatabaseDiscoveryRuleStatement) {
-            AlterDatabaseDiscoveryRuleStatementAssert.assertIs(assertContext, (AlterDatabaseDiscoveryRuleStatement) actual, expected);
+            AlterDatabaseDiscoveryRuleStatementAssert.assertIs(assertContext, (AlterDatabaseDiscoveryRuleStatement) actual, (AlterDatabaseDiscoveryDefinitionRuleStatementTestCase) expected);
         } else if (actual instanceof AlterDatabaseDiscoveryHeartbeatStatement) {
             AlterDatabaseDiscoveryHeartbeatStatementAssert.assertIs(assertContext, (AlterDatabaseDiscoveryHeartbeatStatement) actual, (AlterDatabaseDiscoveryHeartbeatStatementTestCase) expected);
         } else if (actual instanceof AlterDatabaseDiscoveryTypeStatement) {
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterDatabaseDiscoveryRuleStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterDatabaseDiscoveryRuleStatementAssert.java
index 3d6588f781d..e9e5b166ac0 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterDatabaseDiscoveryRuleStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterDatabaseDiscoveryRuleStatementAssert.java
@@ -19,19 +19,16 @@ package org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.AbstractDatabaseDiscoverySegment;
 import org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryDefinitionSegment;
 import org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.AlterDatabaseDiscoveryRuleStatement;
 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.distsql.AlgorithmAssert;
 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.distsql.PropertiesAssert;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.distsql.rdl.ExpectedDatabaseDiscoveryDefinitionRule;
-import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rdl.rule.dbdiscovery.AlterDatabaseDiscoveryDefinitionRuleStatementTestCase;
 
 import java.util.Collection;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 
 import static org.hamcrest.CoreMatchers.is;
@@ -52,33 +49,32 @@ public final class AlterDatabaseDiscoveryRuleStatementAssert {
      * @param actual actual alter database discovery rule statement
      * @param expected expected alter database discovery rule statement test case
      */
-    public static void assertIs(final SQLCaseAssertContext assertContext, final AlterDatabaseDiscoveryRuleStatement actual, final SQLParserTestCase expected) {
+    public static void assertIs(final SQLCaseAssertContext assertContext, final AlterDatabaseDiscoveryRuleStatement actual, final AlterDatabaseDiscoveryDefinitionRuleStatementTestCase expected) {
         if (null == expected) {
             assertNull(assertContext.getText("Actual statement should not exist."), actual);
         } else {
+            Collection<DatabaseDiscoveryDefinitionSegment> actualDBDiscoveryRule = actual.getRules().stream().map(each -> (DatabaseDiscoveryDefinitionSegment) each).collect(Collectors.toList());
             assertNotNull(assertContext.getText("Actual statement should exist."), actual);
-            assertDatabaseDiscoveryRules(assertContext, actual.getRules(), expected);
+            assertDatabaseDiscoveryRules(assertContext, actualDBDiscoveryRule, expected.getRules());
         }
     }
     
-    private static void assertDatabaseDiscoveryRules(final SQLCaseAssertContext assertContext, final Collection<AbstractDatabaseDiscoverySegment> actual,
-                                                     final SQLParserTestCase expected) {
-        assertDiscoveryDefinitionRule(assertContext, actual, ((AlterDatabaseDiscoveryDefinitionRuleStatementTestCase) expected).getRules());
-    }
-    
-    private static void assertDiscoveryDefinitionRule(final SQLCaseAssertContext assertContext, final Collection<AbstractDatabaseDiscoverySegment> actual,
-                                                      final List<ExpectedDatabaseDiscoveryDefinitionRule> expected) {
+    private static void assertDatabaseDiscoveryRules(final SQLCaseAssertContext assertContext, final Collection<DatabaseDiscoveryDefinitionSegment> actual,
+                                                     final List<ExpectedDatabaseDiscoveryDefinitionRule> expected) {
         assertThat(assertContext.getText(String.format("Actual database discovery rule size should be %s , but it was %s", expected.size(),
                 actual.size())), actual.size(), is(expected.size()));
-        Map<String, DatabaseDiscoveryDefinitionSegment> actualMap = actual.stream().map(each -> (DatabaseDiscoveryDefinitionSegment) each)
-                .collect(Collectors.toMap(AbstractDatabaseDiscoverySegment::getName, each -> each));
-        expected.forEach(each -> {
-            DatabaseDiscoveryDefinitionSegment actualSegment = actualMap.get(each.getName());
-            assertNotNull(actualSegment);
-            assertThat(actualSegment.getName(), is(each.getName()));
-            assertThat(actualSegment.getDataSources(), is(each.getDataSources()));
-            PropertiesAssert.assertIs(assertContext, actualSegment.getDiscoveryHeartbeat(), each.getProperties());
-            AlgorithmAssert.assertIs(assertContext, actualSegment.getDiscoveryType(), each.getDiscoveryType());
-        });
+        int count = 0;
+        for (DatabaseDiscoveryDefinitionSegment each : actual) {
+            assertDiscoveryDefinitionRule(assertContext, each, expected.get(count));
+            count++;
+        }
+    }
+    
+    private static void assertDiscoveryDefinitionRule(final SQLCaseAssertContext assertContext, final DatabaseDiscoveryDefinitionSegment actual,
+                                                      final ExpectedDatabaseDiscoveryDefinitionRule expected) {
+        assertThat(actual.getName(), is(expected.getName()));
+        assertThat(actual.getDataSources(), is(expected.getDataSources()));
+        PropertiesAssert.assertIs(assertContext, actual.getDiscoveryHeartbeat(), expected.getProperties());
+        AlgorithmAssert.assertIs(assertContext, actual.getDiscoveryType(), expected.getDiscoveryType());
     }
 }
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/CreateRuleStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/CreateRuleStatementAssert.java
index b4e3f09e24b..3408a8d88d6 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/CreateRuleStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/CreateRuleStatementAssert.java
@@ -48,6 +48,7 @@ import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.r
 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.rdl.create.impl.CreateShardingTableRuleStatementAssert;
 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.rdl.create.impl.SetDefaultSingleTableStorageUnitStatementAssert;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
+import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rdl.rule.dbdiscovery.CreateDatabaseDiscoveryDefinitionRuleStatementTestCase;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rdl.rule.dbdiscovery.CreateDatabaseDiscoveryHeartbeatStatementTestCase;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rdl.rule.dbdiscovery.CreateDatabaseDiscoveryTypeStatementTestCase;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rdl.rule.encrypt.CreateEncryptRuleStatementTestCase;
@@ -75,7 +76,7 @@ public final class CreateRuleStatementAssert {
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final CreateRuleStatement actual, final SQLParserTestCase expected) {
         if (actual instanceof CreateDatabaseDiscoveryRuleStatement) {
-            CreateDatabaseDiscoveryRuleStatementAssert.assertIs(assertContext, (CreateDatabaseDiscoveryRuleStatement) actual, expected);
+            CreateDatabaseDiscoveryRuleStatementAssert.assertIs(assertContext, (CreateDatabaseDiscoveryRuleStatement) actual, (CreateDatabaseDiscoveryDefinitionRuleStatementTestCase) expected);
         } else if (actual instanceof CreateDatabaseDiscoveryTypeStatement) {
             CreateDatabaseDiscoveryTypeStatementAssert.assertIs(assertContext, (CreateDatabaseDiscoveryTypeStatement) actual, (CreateDatabaseDiscoveryTypeStatementTestCase) expected);
         } else if (actual instanceof CreateDatabaseDiscoveryHeartbeatStatement) {
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateDatabaseDiscoveryRuleStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateDatabaseDiscoveryRuleStatementAssert.java
index 219b4d69a67..69171ae6964 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateDatabaseDiscoveryRuleStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateDatabaseDiscoveryRuleStatementAssert.java
@@ -19,19 +19,16 @@ package org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.AbstractDatabaseDiscoverySegment;
 import org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryDefinitionSegment;
 import org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryRuleStatement;
 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.distsql.AlgorithmAssert;
 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.distsql.PropertiesAssert;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.distsql.rdl.ExpectedDatabaseDiscoveryDefinitionRule;
-import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rdl.rule.dbdiscovery.CreateDatabaseDiscoveryDefinitionRuleStatementTestCase;
 
 import java.util.Collection;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 
 import static org.hamcrest.CoreMatchers.is;
@@ -52,32 +49,32 @@ public final class CreateDatabaseDiscoveryRuleStatementAssert {
      * @param actual actual create database discovery rule statement
      * @param expected expected create database discovery rule statement test case
      */
-    public static void assertIs(final SQLCaseAssertContext assertContext, final CreateDatabaseDiscoveryRuleStatement actual, final SQLParserTestCase expected) {
+    public static void assertIs(final SQLCaseAssertContext assertContext, final CreateDatabaseDiscoveryRuleStatement actual, final CreateDatabaseDiscoveryDefinitionRuleStatementTestCase expected) {
         if (null == expected) {
             assertNull(assertContext.getText("Actual statement should not exist."), actual);
         } else {
+            Collection<DatabaseDiscoveryDefinitionSegment> actualDBDiscoveryRule = actual.getRules().stream().map(each -> (DatabaseDiscoveryDefinitionSegment) each).collect(Collectors.toList());
             assertNotNull(assertContext.getText("Actual statement should exist."), actual);
-            assertDatabaseDiscoveryRules(assertContext, actual.getRules(), expected);
+            assertDatabaseDiscoveryRules(assertContext, actualDBDiscoveryRule, expected.getRules());
         }
     }
     
-    private static void assertDatabaseDiscoveryRules(final SQLCaseAssertContext assertContext, final Collection<AbstractDatabaseDiscoverySegment> actual,
-                                                     final SQLParserTestCase expected) {
-        assertDiscoveryDefinitionRule(assertContext, actual, ((CreateDatabaseDiscoveryDefinitionRuleStatementTestCase) expected).getRules());
-    }
-    
-    private static void assertDiscoveryDefinitionRule(final SQLCaseAssertContext assertContext, final Collection<AbstractDatabaseDiscoverySegment> actual,
-                                                      final List<ExpectedDatabaseDiscoveryDefinitionRule> expected) {
+    private static void assertDatabaseDiscoveryRules(final SQLCaseAssertContext assertContext, final Collection<DatabaseDiscoveryDefinitionSegment> actual,
+                                                     final List<ExpectedDatabaseDiscoveryDefinitionRule> expected) {
         assertThat(assertContext.getText(String.format("Actual database discovery rule size should be %s , but it was %s", expected.size(),
                 actual.size())), actual.size(), is(expected.size()));
-        Map<String, DatabaseDiscoveryDefinitionSegment> actualMap = actual.stream().map(each -> (DatabaseDiscoveryDefinitionSegment) each)
-                .collect(Collectors.toMap(AbstractDatabaseDiscoverySegment::getName, each -> each));
-        expected.forEach(each -> {
-            DatabaseDiscoveryDefinitionSegment actualSegment = actualMap.get(each.getName());
-            assertThat(actualSegment.getName(), is(each.getName()));
-            assertThat(actualSegment.getDataSources(), is(each.getDataSources()));
-            PropertiesAssert.assertIs(assertContext, actualSegment.getDiscoveryHeartbeat(), each.getProperties());
-            AlgorithmAssert.assertIs(assertContext, actualSegment.getDiscoveryType(), each.getDiscoveryType());
-        });
+        int count = 0;
+        for (DatabaseDiscoveryDefinitionSegment each : actual) {
+            assertDiscoveryDefinitionRule(assertContext, each, expected.get(count));
+            count++;
+        }
+    }
+    
+    private static void assertDiscoveryDefinitionRule(final SQLCaseAssertContext assertContext, final DatabaseDiscoveryDefinitionSegment actual,
+                                                      final ExpectedDatabaseDiscoveryDefinitionRule expected) {
+        assertThat(actual.getName(), is(expected.getName()));
+        assertThat(actual.getDataSources(), is(expected.getDataSources()));
+        PropertiesAssert.assertIs(assertContext, actual.getDiscoveryHeartbeat(), expected.getProperties());
+        AlgorithmAssert.assertIs(assertContext, actual.getDiscoveryType(), expected.getDiscoveryType());
     }
 }
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/distsql/rdl/ExpectedDatabaseDiscoveryDefinitionRule.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/distsql/rdl/ExpectedDatabaseDiscoveryDefinitionRule.java
index d78303d3039..dd85c325828 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/distsql/rdl/ExpectedDatabaseDiscoveryDefinitionRule.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/distsql/rdl/ExpectedDatabaseDiscoveryDefinitionRule.java
@@ -23,7 +23,6 @@ import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.s
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.distsql.ExpectedAlgorithm;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.distsql.ExpectedProperty;
 
-import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import java.util.Collection;
 import java.util.LinkedList;
@@ -36,9 +35,6 @@ import java.util.List;
 @Setter
 public final class ExpectedDatabaseDiscoveryDefinitionRule extends AbstractExpectedIdentifierSQLSegment {
     
-    @XmlAttribute(name = "rule-name")
-    private String name;
-    
     @XmlElement(name = "data-source")
     private Collection<String> dataSources;
     
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/distsql/rdl/ExpectedShadowRule.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/distsql/rdl/ExpectedShadowRule.java
index d9079596eb2..4fde226dfc4 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/distsql/rdl/ExpectedShadowRule.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/segment/impl/distsql/rdl/ExpectedShadowRule.java
@@ -32,9 +32,6 @@ import java.util.Collection;
 @Setter
 public final class ExpectedShadowRule extends AbstractExpectedIdentifierSQLSegment {
     
-    @XmlAttribute(name = "rule-name")
-    private String ruleName;
-    
     @XmlAttribute
     private String source;
     
diff --git a/test/it/parser/src/main/resources/case/rdl/alter.xml b/test/it/parser/src/main/resources/case/rdl/alter.xml
index 08e0322f1ef..df6f9ac0289 100644
--- a/test/it/parser/src/main/resources/case/rdl/alter.xml
+++ b/test/it/parser/src/main/resources/case/rdl/alter.xml
@@ -152,8 +152,8 @@
     </alter-sharding-table-rule>
     
     <alter-sharding-table-reference-rule sql-case-id="alter-sharding-table-reference-rule">
-        <rule table-groups="t_order,t_order_item" />
-        <rule table-groups="t_1,t_2" />
+        <rule name="reference_0" table-groups="t_order,t_order_item" />
+        <rule name="reference_1" table-groups="t_1,t_2" />
     </alter-sharding-table-reference-rule>
     
     <alter-readwrite-splitting-rule sql-case-id="alter-readwrite-splitting-rule">
@@ -167,7 +167,7 @@
     </alter-readwrite-splitting-rule>
 
     <alter-database-discovery-definition-rule sql-case-id="alter-database-discovery-definition-rule">
-        <rule rule-name="ha_group_0" type="mgr">
+        <rule name="ha_group_0" type="mgr">
             <data-source>ds_0</data-source>
             <data-source>ds_1</data-source>
             <discovery-type algorithm-name="mgr">
@@ -175,7 +175,7 @@
             </discovery-type>
             <property key="keepAliveCron" value="0/5 * * * * ?" />
         </rule>
-        <rule rule-name="ha_group_1" type="mgr2">
+        <rule name="ha_group_1" type="mgr2">
             <data-source>ds_2</data-source>
             <data-source>ds_3</data-source>
             <discovery-type algorithm-name="mgr2">
@@ -240,7 +240,7 @@
     </alter-encrypt-rule>
     
     <alter-shadow-rule sql-case-id="alter-shadow-rule">
-        <rule name="rule" rule-name="shadow_rule" source="demo_ds" shadow="demo_ds_shadow">
+        <rule name="shadow_rule" source="demo_ds" shadow="demo_ds_shadow">
             <table-rule table-name="t_order">
                 <shadow-algorithm algorithm-id="shadow_rule_t_order_regex_match_0">
                     <algorithm algorithm-name="REGEX_MATCH">
diff --git a/test/it/parser/src/main/resources/case/rdl/create.xml b/test/it/parser/src/main/resources/case/rdl/create.xml
index 06b759a0ac9..48e03dd96f0 100644
--- a/test/it/parser/src/main/resources/case/rdl/create.xml
+++ b/test/it/parser/src/main/resources/case/rdl/create.xml
@@ -251,13 +251,13 @@
     </create-sharding-table-rule>
     
     <create-sharding-table-reference-rule sql-case-id="create-sharding-table-reference-rule">
-        <rule table-groups="t_order,t_order_item" />
-        <rule table-groups="t_1,t_2" />
+        <rule name="reference_0" table-groups="t_order,t_order_item" />
+        <rule name="reference_1" table-groups="t_1,t_2" />
     </create-sharding-table-reference-rule>
 
     <create-sharding-table-reference-rule sql-case-id="create-sharding-table-reference-rule-with-quota">
-        <rule table-groups="t_order,t_order_item" />
-        <rule table-groups="t_1,t_2" />
+        <rule name="reference_0" table-groups="t_order,t_order_item" />
+        <rule name="reference_1" table-groups="t_1,t_2" />
     </create-sharding-table-reference-rule>
     
     <create-broadcast-table-rule sql-case-id="create-broadcast-table-rule">
@@ -291,7 +291,7 @@
     </create-readwrite-splitting-rule>
     
     <create-database-discovery-definition-rule sql-case-id="create-database-discovery-definition-rule">
-        <rule rule-name="ha_group_0" type="mgr">
+        <rule name="ha_group_0" type="mgr">
             <data-source>ds_0</data-source>
             <data-source>ds_1</data-source>
             <discovery-type algorithm-name="mgr">
@@ -299,7 +299,7 @@
             </discovery-type>
             <property key="keepAliveCron" value="0/5 * * * * ?" />
         </rule>
-        <rule rule-name="ha_group_1" type="mgr2">
+        <rule name="ha_group_1" type="mgr2">
             <data-source>ds_2</data-source>
             <data-source>ds_3</data-source>
             <discovery-type algorithm-name="mgr2">
@@ -310,7 +310,7 @@
     </create-database-discovery-definition-rule>
 
     <create-database-discovery-definition-rule sql-case-id="create-database-discovery-rule-with-quota">
-        <rule rule-name="ha_group_0" type="mgr">
+        <rule name="ha_group_0" type="mgr">
             <data-source>ds_0</data-source>
             <data-source>ds_1</data-source>
             <discovery-type algorithm-name="mgr">
@@ -318,7 +318,7 @@
             </discovery-type>
             <property key="keepAliveCron" value="0/5 * * * * ?" />
         </rule>
-        <rule rule-name="ha_group_1" type="mgr2">
+        <rule name="ha_group_1" type="mgr2">
             <data-source>ds_2</data-source>
             <data-source>ds_3</data-source>
             <discovery-type algorithm-name="mgr2">
@@ -393,7 +393,7 @@
     </create-encrypt-rule>
     
     <create-shadow-rule sql-case-id="create-shadow-rule">
-        <rule name="rule" rule-name="shadow_rule" source="demo_ds" shadow="demo_ds_shadow">
+        <rule name="shadow_rule" source="demo_ds" shadow="demo_ds_shadow">
             <table-rule table-name="t_order">
                 <shadow-algorithm algorithm-id="shadow_rule_t_order_regex_match_0">
                     <algorithm algorithm-name="REGEX_MATCH">
@@ -413,7 +413,7 @@
     </create-shadow-rule>
     
     <create-shadow-rule sql-case-id="create-shadow-rule-with-quota">
-        <rule name="rule" rule-name="shadow_rule" source="demo_ds" shadow="demo_ds_shadow">
+        <rule name="shadow_rule" source="demo_ds" shadow="demo_ds_shadow">
             <table-rule table-name="t_order">
                 <shadow-algorithm algorithm-id="shadow_rule_t_order_regex_match_0">
                     <algorithm algorithm-name="REGEX_MATCH">
@@ -506,7 +506,7 @@
     </create-readwrite-splitting-rule>
 
     <create-database-discovery-definition-rule sql-case-id="create-db-discovery-rule-without-quote-on-build-in-db-discovery-type-name">
-        <rule rule-name="db_discovery_group_0" type="MYSQL.MGR">
+        <rule name="db_discovery_group_0" type="MYSQL.MGR">
             <data-source>ds_0</data-source>
             <data-source>ds_1</data-source>
             <discovery-type algorithm-name="MYSQL.MGR">
@@ -517,7 +517,7 @@
     </create-database-discovery-definition-rule>
 
     <create-shadow-rule sql-case-id="create-shadow-rule-without-quote-on-build-in-shadow-algorithm-name">
-        <rule rule-name="shadow_rule" source="demo_ds" shadow="demo_ds_shadow">
+        <rule name="shadow_rule" source="demo_ds" shadow="demo_ds_shadow">
             <table-rule table-name="t_order">
                 <shadow-algorithm algorithm-id="shadow_rule_t_order_simple_hint_0">
                     <algorithm algorithm-name="SIMPLE_HINT">