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 8f36af32470 Optimize DB_DISCOVERY related syntax (#21718)
8f36af32470 is described below

commit 8f36af3247025d68836cb0bb3fc1175a9bd99aba
Author: ChenJiaHao <[email protected]>
AuthorDate: Tue Oct 25 13:49:57 2022 +0800

    Optimize DB_DISCOVERY related syntax (#21718)
    
    * Remove DistSQL CREATE DB_DISCOVERY TYPE & CREATE DB_DISCOVERY HEARTBEAT
    
    * Remove DistSQL ALTER DB_DISCOVERY TYPE & ALTER DB_DISCOVERY HEARTBEAT
    
    * Remove Unused DistSQL test cases
    
    * Remove construction way for DatabaseDiscoveryRule
    
    * Fix unit test
    
    * Remove incorrect import
---
 .../DatabaseDiscoveryRuleStatementConverter.java   |  9 ----
 ...AlterDatabaseDiscoveryRuleStatementUpdater.java | 10 ----
 ...reateDatabaseDiscoveryRuleStatementUpdater.java | 10 ----
 ...atabaseDiscoveryRuleStatementConverterTest.java | 11 +---
 ...rDatabaseDiscoveryRuleStatementUpdaterTest.java | 62 +++++++---------------
 ...eDatabaseDiscoveryRuleStatementUpdaterTest.java | 56 ++++++-------------
 .../antlr4/imports/db-discovery/RDLStatement.g4    | 24 ---------
 .../autogen/DatabaseDiscoveryDistSQLStatement.g4   |  4 --
 .../DatabaseDiscoveryDistSQLStatementVisitor.java  | 51 ------------------
 .../parser/DatabaseDiscoveryDistSQLTest.java       | 34 ------------
 .../DatabaseDiscoveryConstructionSegment.java      | 39 --------------
 .../AlterDatabaseDiscoveryRuleStatementAssert.java | 27 +---------
 ...CreateDatabaseDiscoveryRuleStatementAssert.java | 26 +--------
 .../jaxb/cases/domain/SQLParserTestCases.java      | 24 ---------
 .../ExpectedDatabaseDiscoveryConstructionRule.java | 46 ----------------
 ...DiscoveryConstructionRuleStatementTestCase.java | 36 -------------
 ...DiscoveryConstructionRuleStatementTestCase.java | 38 -------------
 test/parser/src/main/resources/case/rdl/alter.xml  | 28 ----------
 test/parser/src/main/resources/case/rdl/create.xml | 29 ----------
 .../src/main/resources/sql/supported/rdl/alter.xml |  3 --
 .../main/resources/sql/supported/rdl/create.xml    |  3 --
 21 files changed, 41 insertions(+), 529 deletions(-)

diff --git 
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/converter/DatabaseDiscoveryRuleStatementConverter.java
 
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/converter/DatabaseDiscoveryRuleStatementConverter.java
index f797ee5bcba..f627f8c7f9c 100644
--- 
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/converter/DatabaseDiscoveryRuleStatementConverter.java
+++ 
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/converter/DatabaseDiscoveryRuleStatementConverter.java
@@ -23,7 +23,6 @@ import 
org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleCon
 import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDataSourceRuleConfiguration;
 import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryHeartBeatConfiguration;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.AbstractDatabaseDiscoverySegment;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryConstructionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryDefinitionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryHeartbeatSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryProviderAlgorithmSegment;
@@ -54,8 +53,6 @@ public final class DatabaseDiscoveryRuleStatementConverter {
         DatabaseDiscoveryRuleConfiguration result = new 
DatabaseDiscoveryRuleConfiguration(new LinkedList<>(), new LinkedHashMap<>(), 
new LinkedHashMap<>());
         
segmentMap.getOrDefault(DatabaseDiscoveryDefinitionSegment.class.getSimpleName(),
 Collections.emptyList())
                 .forEach(each -> addRuleConfiguration(result, 
(DatabaseDiscoveryDefinitionSegment) each));
-        
segmentMap.getOrDefault(DatabaseDiscoveryConstructionSegment.class.getSimpleName(),
 Collections.emptyList())
-                .forEach(each -> addRuleConfiguration(result, 
(DatabaseDiscoveryConstructionSegment) each));
         return result;
     }
     
@@ -71,12 +68,6 @@ public final class DatabaseDiscoveryRuleStatementConverter {
         ruleConfig.getDiscoveryHeartbeats().put(heartbeatName, 
heartbeatConfig);
     }
     
-    private static void addRuleConfiguration(final 
DatabaseDiscoveryRuleConfiguration ruleConfig, final 
DatabaseDiscoveryConstructionSegment segment) {
-        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceRuleConfig =
-                new 
DatabaseDiscoveryDataSourceRuleConfiguration(segment.getName(), new 
LinkedList<>(segment.getDataSources()), segment.getDiscoveryHeartbeatName(), 
segment.getDiscoveryTypeName());
-        ruleConfig.getDataSources().add(dataSourceRuleConfig);
-    }
-    
     private static String getName(final String ruleName, final String type) {
         return String.format("%s_%s", ruleName, type);
     }
diff --git 
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdater.java
 
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdater.java
index f15744906bc..b30d8f882e7 100644
--- 
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdater.java
+++ 
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdater.java
@@ -22,7 +22,6 @@ import 
org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleCon
 import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDataSourceRuleConfiguration;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.handler.converter.DatabaseDiscoveryRuleStatementConverter;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.AbstractDatabaseDiscoverySegment;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryConstructionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryDefinitionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.AlterDatabaseDiscoveryRuleStatement;
 import 
org.apache.shardingsphere.dbdiscovery.factory.DatabaseDiscoveryProviderAlgorithmFactory;
@@ -91,15 +90,6 @@ public final class 
AlterDatabaseDiscoveryRuleStatementUpdater implements RuleDef
                 .map(each -> ((DatabaseDiscoveryDefinitionSegment) 
each).getDiscoveryType().getName()).distinct()
                 .filter(each -> 
!DatabaseDiscoveryProviderAlgorithmFactory.contains(each)).collect(Collectors.toList());
         ShardingSpherePreconditions.checkState(invalidInput.isEmpty(), () -> 
new InvalidAlgorithmConfigurationException("database discovery", invalidInput));
-        
segmentMap.getOrDefault(DatabaseDiscoveryConstructionSegment.class.getSimpleName(),
 Collections.emptyList()).stream().map(each -> 
(DatabaseDiscoveryConstructionSegment) each)
-                .forEach(each -> {
-                    if 
(!currentRuleConfig.getDiscoveryTypes().containsKey(each.getDiscoveryTypeName()))
 {
-                        invalidInput.add(each.getDiscoveryTypeName());
-                    }
-                    if 
(!currentRuleConfig.getDiscoveryHeartbeats().containsKey(each.getDiscoveryHeartbeatName()))
 {
-                        invalidInput.add(each.getDiscoveryHeartbeatName());
-                    }
-                });
         ShardingSpherePreconditions.checkState(invalidInput.isEmpty(), () -> 
new MissingRequiredAlgorithmException("database discovery", invalidInput));
     }
     
diff --git 
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdater.java
 
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdater.java
index 72a07328e12..f8402fdd3c2 100644
--- 
a/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdater.java
+++ 
b/features/db-discovery/distsql/handler/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdater.java
@@ -21,7 +21,6 @@ import 
org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleCon
 import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDataSourceRuleConfiguration;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.handler.converter.DatabaseDiscoveryRuleStatementConverter;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.AbstractDatabaseDiscoverySegment;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryConstructionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryDefinitionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryRuleStatement;
 import 
org.apache.shardingsphere.dbdiscovery.factory.DatabaseDiscoveryProviderAlgorithmFactory;
@@ -85,15 +84,6 @@ public final class 
CreateDatabaseDiscoveryRuleStatementUpdater implements RuleDe
                 .map(each -> ((DatabaseDiscoveryDefinitionSegment) 
each).getDiscoveryType().getName()).distinct()
                 .filter(each -> 
!DatabaseDiscoveryProviderAlgorithmFactory.contains(each)).collect(Collectors.toList());
         ShardingSpherePreconditions.checkState(invalidInput.isEmpty(), () -> 
new InvalidAlgorithmConfigurationException(RULE_TYPE.toLowerCase(), 
invalidInput));
-        
segmentMap.getOrDefault(DatabaseDiscoveryConstructionSegment.class.getSimpleName(),
 Collections.emptyList()).stream().map(each -> 
(DatabaseDiscoveryConstructionSegment) each)
-                .forEach(each -> {
-                    if (null == currentRuleConfig || 
!currentRuleConfig.getDiscoveryTypes().containsKey(each.getDiscoveryTypeName()))
 {
-                        invalidInput.add(each.getDiscoveryTypeName());
-                    }
-                    if (null == currentRuleConfig || 
!currentRuleConfig.getDiscoveryHeartbeats().containsKey(each.getDiscoveryHeartbeatName()))
 {
-                        invalidInput.add(each.getDiscoveryHeartbeatName());
-                    }
-                });
         ShardingSpherePreconditions.checkState(invalidInput.isEmpty(), () -> 
new MissingRequiredAlgorithmException(RULE_TYPE, databaseName, invalidInput));
     }
     
diff --git 
a/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/converter/DatabaseDiscoveryRuleStatementConverterTest.java
 
b/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/converter/DatabaseDiscoveryRuleStatementConverterTest.java
index 3e843f0dbca..4be2c5e1f0a 100644
--- 
a/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/converter/DatabaseDiscoveryRuleStatementConverterTest.java
+++ 
b/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/converter/DatabaseDiscoveryRuleStatementConverterTest.java
@@ -20,13 +20,13 @@ package 
org.apache.shardingsphere.dbdiscovery.distsql.handler.converter;
 import 
org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleConfiguration;
 import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDataSourceRuleConfiguration;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.AbstractDatabaseDiscoverySegment;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryConstructionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryDefinitionSegment;
 import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
 import org.junit.Test;
 
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.Properties;
 
@@ -47,20 +47,13 @@ public final class 
DatabaseDiscoveryRuleStatementConverterTest {
         assertThat(dataSourceRuleConfig.getGroupName(), is("definition"));
         assertThat(dataSourceRuleConfig.getDiscoveryTypeName(), 
is("definition_MySQL.MGR"));
         assertThat(dataSourceRuleConfig.getDiscoveryHeartbeatName(), 
is("definition_heartbeat"));
-        dataSourceRuleConfig = iterator.next();
-        assertThat(dataSourceRuleConfig.getDataSourceNames(), 
is(Arrays.asList("resource0", "resource1")));
-        assertThat(dataSourceRuleConfig.getGroupName(), is("construction"));
-        assertThat(dataSourceRuleConfig.getDiscoveryTypeName(), is("type"));
-        assertThat(dataSourceRuleConfig.getDiscoveryHeartbeatName(), 
is("heartbeat"));
     }
     
     private Collection<AbstractDatabaseDiscoverySegment> 
createDatabaseDiscoveryRuleSegments() {
         Properties props = createProperties();
         DatabaseDiscoveryDefinitionSegment databaseDiscoveryDefinitionSegment =
                 new DatabaseDiscoveryDefinitionSegment("definition", 
Arrays.asList("resource0", "resource1"), new AlgorithmSegment("MySQL.MGR", 
props), props);
-        DatabaseDiscoveryConstructionSegment 
databaseDiscoveryConstructionSegment =
-                new DatabaseDiscoveryConstructionSegment("construction", 
Arrays.asList("resource0", "resource1"), "type", "heartbeat");
-        return Arrays.asList(databaseDiscoveryConstructionSegment, 
databaseDiscoveryDefinitionSegment);
+        return Collections.singletonList(databaseDiscoveryDefinitionSegment);
     }
     
     private Properties createProperties() {
diff --git 
a/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdaterTest.java
 
b/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdaterTest.java
index ba6b21df2a7..66e8054ba7c 100644
--- 
a/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdaterTest.java
+++ 
b/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/AlterDatabaseDiscoveryRuleStatementUpdaterTest.java
@@ -19,13 +19,11 @@ package 
org.apache.shardingsphere.dbdiscovery.distsql.handler.update;
 
 import 
org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleConfiguration;
 import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDataSourceRuleConfiguration;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryConstructionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryDefinitionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.AlterDatabaseDiscoveryRuleStatement;
 import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
 import 
org.apache.shardingsphere.infra.distsql.exception.resource.MissingRequiredResourcesException;
 import 
org.apache.shardingsphere.infra.distsql.exception.rule.InvalidAlgorithmConfigurationException;
-import 
org.apache.shardingsphere.infra.distsql.exception.rule.MissingRequiredAlgorithmException;
 import 
org.apache.shardingsphere.infra.distsql.exception.rule.MissingRequiredRuleException;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
@@ -72,7 +70,9 @@ public final class 
AlterDatabaseDiscoveryRuleStatementUpdaterTest {
     
     @Test(expected = MissingRequiredRuleException.class)
     public void 
assertCheckSQLStatementWithoutToBeAlteredDatabaseDiscoveryRule() {
-        DatabaseDiscoveryConstructionSegment segment = new 
DatabaseDiscoveryConstructionSegment("readwrite_ds", Arrays.asList("ds_read_0", 
"ds_read_1"), "", "");
+        Properties props = new Properties();
+        DatabaseDiscoveryDefinitionSegment segment =
+                new DatabaseDiscoveryDefinitionSegment("readwrite_ds", 
Arrays.asList("ds_read_0", "ds_read_1"), new AlgorithmSegment("MySQL.MGR", 
props), props);
         updater.checkSQLStatement(database, new 
AlterDatabaseDiscoveryRuleStatement(Collections.singletonList(segment)),
                 new 
DatabaseDiscoveryRuleConfiguration(Collections.emptyList(), 
Collections.emptyMap(), Collections.emptyMap()));
     }
@@ -80,7 +80,9 @@ public final class 
AlterDatabaseDiscoveryRuleStatementUpdaterTest {
     @Test(expected = MissingRequiredResourcesException.class)
     public void assertCheckSQLStatementWithoutExistedResources() {
         
when(resourceMetaData.getNotExistedResources(any())).thenReturn(Collections.singleton("ds0"));
-        DatabaseDiscoveryConstructionSegment segment = new 
DatabaseDiscoveryConstructionSegment("readwrite_ds", Arrays.asList("ds_read_0", 
"ds_read_1"), "readwrite_ds_mgr", "readwrite_ds_heartbeat");
+        Properties props = new Properties();
+        DatabaseDiscoveryDefinitionSegment segment =
+                new DatabaseDiscoveryDefinitionSegment("readwrite_ds", 
Arrays.asList("ds_read_0", "ds_read_1"), new AlgorithmSegment("MySQL.MGR", 
props), props);
         DatabaseDiscoveryDataSourceRuleConfiguration dataSourceRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("readwrite_ds", 
Collections.emptyList(), "ha-heartbeat", "TEST");
         DatabaseDiscoveryRuleConfiguration ruleConfig = new 
DatabaseDiscoveryRuleConfiguration(new 
LinkedList<>(Collections.singleton(dataSourceRuleConfig)),
                 Collections.singletonMap("readwrite_ds_mgr", null), 
Collections.singletonMap("readwrite_ds_heartbeat", null));
@@ -97,61 +99,33 @@ public final class 
AlterDatabaseDiscoveryRuleStatementUpdaterTest {
         updater.checkSQLStatement(database, new 
AlterDatabaseDiscoveryRuleStatement(Collections.singleton(segment)), 
ruleConfig);
     }
     
-    @Test(expected = MissingRequiredAlgorithmException.class)
-    public void assertCheckSQLStatementWithNotExistDiscoveryTypeName() {
-        DatabaseDiscoveryConstructionSegment segment = new 
DatabaseDiscoveryConstructionSegment("readwrite_ds", Arrays.asList("ds_read_0", 
"ds_read_1"), "not_exist_discovery_type_name", "");
-        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("readwrite_ds", 
Collections.emptyList(), "ha-heartbeat", "TEST");
-        DatabaseDiscoveryRuleConfiguration ruleConfig = new 
DatabaseDiscoveryRuleConfiguration(new 
LinkedList<>(Collections.singleton(dataSourceRuleConfig)),
-                Collections.singletonMap("readwrite_ds_mgr", null), 
Collections.singletonMap("readwrite_ds_heartbeat", null));
-        updater.checkSQLStatement(database, new 
AlterDatabaseDiscoveryRuleStatement(Collections.singleton(segment)), 
ruleConfig);
-    }
-    
-    @Test(expected = MissingRequiredAlgorithmException.class)
-    public void assertCheckSQLStatementWithNotExistDiscoveryHeartbeatName() {
-        DatabaseDiscoveryConstructionSegment segment = new 
DatabaseDiscoveryConstructionSegment(
-                "readwrite_ds", Arrays.asList("ds_read_0", "ds_read_1"), 
"discovery_type_name", "not_exist_heartbeat_name");
-        DatabaseDiscoveryDataSourceRuleConfiguration dataSourceRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("readwrite_ds", 
Collections.emptyList(), "ha-heartbeat", "TEST");
-        DatabaseDiscoveryRuleConfiguration ruleConfig = new 
DatabaseDiscoveryRuleConfiguration(new 
LinkedList<>(Collections.singleton(dataSourceRuleConfig)),
-                Collections.singletonMap("readwrite_ds_mgr", null), 
Collections.singletonMap("readwrite_ds_heartbeat", null));
-        updater.checkSQLStatement(database, new 
AlterDatabaseDiscoveryRuleStatement(Collections.singleton(segment)), 
ruleConfig);
-    }
-    
     @Test
     public void assertBuild() {
-        DatabaseDiscoveryConstructionSegment constructionSegment = new 
DatabaseDiscoveryConstructionSegment("readwrite_ds_1", 
Arrays.asList("ds_read_0", "ds_read_1"),
-                "discovery_type_name", "heartbeat_name");
         AlgorithmSegment algorithmSegment = new AlgorithmSegment("MySQL.MGR", 
new Properties());
-        DatabaseDiscoveryDefinitionSegment definitionSegment = new 
DatabaseDiscoveryDefinitionSegment("readwrite_ds_2", Arrays.asList("ds_read_0", 
"ds_read_1"), algorithmSegment, new Properties());
+        DatabaseDiscoveryDefinitionSegment definitionSegment = new 
DatabaseDiscoveryDefinitionSegment("readwrite_ds_1", Arrays.asList("ds_read_0", 
"ds_read_1"), algorithmSegment, new Properties());
         DatabaseDiscoveryRuleConfiguration databaseDiscoveryRuleConfiguration =
-                (DatabaseDiscoveryRuleConfiguration) 
updater.buildToBeAlteredRuleConfiguration(new 
AlterDatabaseDiscoveryRuleStatement(Arrays.asList(constructionSegment, 
definitionSegment)));
-        assertThat(databaseDiscoveryRuleConfiguration.getDataSources().size(), 
is(2));
+                (DatabaseDiscoveryRuleConfiguration) 
updater.buildToBeAlteredRuleConfiguration(new 
AlterDatabaseDiscoveryRuleStatement(Collections.singletonList(definitionSegment)));
+        assertThat(databaseDiscoveryRuleConfiguration.getDataSources().size(), 
is(1));
         
assertTrue(databaseDiscoveryRuleConfiguration.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getGroupName)
                 
.collect(Collectors.toList()).removeAll(Collections.singletonList("readwrite_ds_1")));
-        
assertTrue(databaseDiscoveryRuleConfiguration.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getGroupName)
-                
.collect(Collectors.toList()).removeAll(Collections.singletonList("readwrite_ds_2")));
-        
assertTrue(databaseDiscoveryRuleConfiguration.getDiscoveryTypes().containsKey("readwrite_ds_2_MySQL.MGR"));
-        
assertTrue(databaseDiscoveryRuleConfiguration.getDiscoveryHeartbeats().containsKey("readwrite_ds_2_heartbeat"));
+        
assertTrue(databaseDiscoveryRuleConfiguration.getDiscoveryTypes().containsKey("readwrite_ds_1_MySQL.MGR"));
+        
assertTrue(databaseDiscoveryRuleConfiguration.getDiscoveryHeartbeats().containsKey("readwrite_ds_1_heartbeat"));
     }
     
     @Test
     public void assertUpdate() {
-        DatabaseDiscoveryConstructionSegment constructionSegment = new 
DatabaseDiscoveryConstructionSegment(
-                "readwrite_ds_1", Arrays.asList("ds_read_0", "ds_read_1"), 
"readwrite_ds_2_mgr", "heartbeat_name");
         AlgorithmSegment algorithmSegment = new AlgorithmSegment("MySQL.MGR", 
new Properties());
-        DatabaseDiscoveryDefinitionSegment definitionSegment = new 
DatabaseDiscoveryDefinitionSegment("readwrite_ds_2", Arrays.asList("ds_read_0", 
"ds_read_1"), algorithmSegment, new Properties());
+        DatabaseDiscoveryDefinitionSegment definitionSegment = new 
DatabaseDiscoveryDefinitionSegment("readwrite_ds_1", Arrays.asList("ds_read_0", 
"ds_read_1"), algorithmSegment, new Properties());
         DatabaseDiscoveryRuleConfiguration toBeCreatedRuleConfig =
-                (DatabaseDiscoveryRuleConfiguration) 
updater.buildToBeAlteredRuleConfiguration(new 
AlterDatabaseDiscoveryRuleStatement(Arrays.asList(constructionSegment, 
definitionSegment)));
-        DatabaseDiscoveryDataSourceRuleConfiguration constructionRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("readwrite_ds_1", 
Collections.emptyList(), "", "");
-        DatabaseDiscoveryDataSourceRuleConfiguration definitionRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("readwrite_ds_2", 
Collections.emptyList(), "", "");
-        DatabaseDiscoveryRuleConfiguration currentConfig = new 
DatabaseDiscoveryRuleConfiguration(new 
LinkedList<>(Arrays.asList(constructionRuleConfig, definitionRuleConfig)),
+                (DatabaseDiscoveryRuleConfiguration) 
updater.buildToBeAlteredRuleConfiguration(new 
AlterDatabaseDiscoveryRuleStatement(Collections.singletonList(definitionSegment)));
+        DatabaseDiscoveryDataSourceRuleConfiguration definitionRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("readwrite_ds_1", 
Collections.emptyList(), "", "");
+        DatabaseDiscoveryRuleConfiguration currentConfig = new 
DatabaseDiscoveryRuleConfiguration(new 
LinkedList<>(Collections.singletonList(definitionRuleConfig)),
                 new HashMap<>(Collections.singletonMap("discovery_type_name", 
null)), new HashMap<>(Collections.singletonMap("heartbeat_name", null)));
         updater.updateCurrentRuleConfiguration(currentConfig, 
toBeCreatedRuleConfig);
-        assertThat(currentConfig.getDataSources().size(), is(2));
+        assertThat(currentConfig.getDataSources().size(), is(1));
         
assertTrue(currentConfig.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getGroupName)
                 
.collect(Collectors.toList()).removeAll(Collections.singletonList("readwrite_ds_1")));
-        
assertTrue(currentConfig.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getGroupName)
-                
.collect(Collectors.toList()).removeAll(Collections.singletonList("readwrite_ds_2")));
-        
assertTrue(currentConfig.getDiscoveryTypes().containsKey("readwrite_ds_2_MySQL.MGR"));
-        
assertTrue(currentConfig.getDiscoveryHeartbeats().containsKey("readwrite_ds_2_heartbeat"));
+        
assertTrue(currentConfig.getDiscoveryTypes().containsKey("readwrite_ds_1_MySQL.MGR"));
+        
assertTrue(currentConfig.getDiscoveryHeartbeats().containsKey("readwrite_ds_1_heartbeat"));
     }
 }
diff --git 
a/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdaterTest.java
 
b/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdaterTest.java
index d903bc85c27..22d3807ebfb 100644
--- 
a/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdaterTest.java
+++ 
b/features/db-discovery/distsql/handler/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/handler/update/CreateDatabaseDiscoveryRuleStatementUpdaterTest.java
@@ -19,14 +19,12 @@ package 
org.apache.shardingsphere.dbdiscovery.distsql.handler.update;
 
 import 
org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleConfiguration;
 import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDataSourceRuleConfiguration;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryConstructionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryDefinitionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryRuleStatement;
 import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
 import 
org.apache.shardingsphere.infra.distsql.exception.resource.MissingRequiredResourcesException;
 import 
org.apache.shardingsphere.infra.distsql.exception.rule.DuplicateRuleException;
 import 
org.apache.shardingsphere.infra.distsql.exception.rule.InvalidAlgorithmConfigurationException;
-import 
org.apache.shardingsphere.infra.distsql.exception.rule.MissingRequiredAlgorithmException;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
 import org.junit.Before;
@@ -68,15 +66,19 @@ public final class 
CreateDatabaseDiscoveryRuleStatementUpdaterTest {
     @Test(expected = DuplicateRuleException.class)
     public void assertCheckSQLStatementWithDuplicateRuleNames() {
         DatabaseDiscoveryDataSourceRuleConfiguration dataSourceRuleConfig = 
new DatabaseDiscoveryDataSourceRuleConfiguration("readwrite_ds", 
Collections.emptyList(), "ha-heartbeat", "test");
-        DatabaseDiscoveryConstructionSegment segment = new 
DatabaseDiscoveryConstructionSegment("readwrite_ds", Collections.emptyList(), 
"", "");
-        updater.checkSQLStatement(database, new 
CreateDatabaseDiscoveryRuleStatement(Collections.singleton(segment)),
+        Properties props = new Properties();
+        DatabaseDiscoveryDefinitionSegment databaseDiscoveryDefinitionSegment =
+                new DatabaseDiscoveryDefinitionSegment("readwrite_ds", 
Collections.emptyList(), new AlgorithmSegment("MySQL.MGR", props), props);
+        updater.checkSQLStatement(database, new 
CreateDatabaseDiscoveryRuleStatement(Collections.singletonList(databaseDiscoveryDefinitionSegment)),
                 new 
DatabaseDiscoveryRuleConfiguration(Collections.singleton(dataSourceRuleConfig), 
Collections.emptyMap(), Collections.emptyMap()));
     }
     
     @Test(expected = MissingRequiredResourcesException.class)
     public void assertCheckSQLStatementWithoutExistedResources() {
         
when(resourceMetaData.getNotExistedResources(any())).thenReturn(Collections.singleton("ds_read_0"));
-        DatabaseDiscoveryConstructionSegment segment = new 
DatabaseDiscoveryConstructionSegment("readwrite_ds", Arrays.asList("ds_read_0", 
"ds_read_1"), "", "");
+        Properties props = new Properties();
+        DatabaseDiscoveryDefinitionSegment segment =
+                new DatabaseDiscoveryDefinitionSegment("readwrite_ds", 
Arrays.asList("ds_read_0", "ds_read_1"), new AlgorithmSegment("MySQL.MGR", 
props), props);
         updater.checkSQLStatement(database, new 
CreateDatabaseDiscoveryRuleStatement(Collections.singleton(segment)), null);
     }
     
@@ -87,55 +89,31 @@ public final class 
CreateDatabaseDiscoveryRuleStatementUpdaterTest {
         updater.checkSQLStatement(database, new 
CreateDatabaseDiscoveryRuleStatement(Collections.singleton(segment)), null);
     }
     
-    @Test(expected = MissingRequiredAlgorithmException.class)
-    public void assertCheckSQLStatementWithNotExistDiscoveryTypeName() {
-        DatabaseDiscoveryConstructionSegment segment = new 
DatabaseDiscoveryConstructionSegment("readwrite_ds", Arrays.asList("ds_read_0", 
"ds_read_1"), "not_exist_discovery_type_name", "");
-        DatabaseDiscoveryRuleConfiguration ruleConfig = new 
DatabaseDiscoveryRuleConfiguration(Collections.emptyList(), 
Collections.emptyMap(), Collections.emptyMap());
-        updater.checkSQLStatement(database, new 
CreateDatabaseDiscoveryRuleStatement(Collections.singleton(segment)), 
ruleConfig);
-    }
-    
-    @Test(expected = MissingRequiredAlgorithmException.class)
-    public void assertCheckSQLStatementWithNotExistDiscoveryHeartbeatName() {
-        DatabaseDiscoveryConstructionSegment segment = new 
DatabaseDiscoveryConstructionSegment(
-                "readwrite_ds", Arrays.asList("ds_read_0", "ds_read_1"), 
"discovery_type_name", "not_exist_heartbeat_name");
-        DatabaseDiscoveryRuleConfiguration ruleConfig = new 
DatabaseDiscoveryRuleConfiguration(Collections.emptyList(), 
Collections.emptyMap(),
-                Collections.singletonMap("discovery_type_name", null));
-        updater.checkSQLStatement(database, new 
CreateDatabaseDiscoveryRuleStatement(Collections.singleton(segment)), 
ruleConfig);
-    }
-    
     @Test
     public void assertBuild() {
-        DatabaseDiscoveryConstructionSegment constructionSegment = new 
DatabaseDiscoveryConstructionSegment("readwrite_ds_1", 
Arrays.asList("ds_read_0", "ds_read_1"),
-                "discovery_type_name", "heartbeat_name");
         AlgorithmSegment algorithmSegment = new AlgorithmSegment("MySQL.MGR", 
new Properties());
-        DatabaseDiscoveryDefinitionSegment definitionSegment = new 
DatabaseDiscoveryDefinitionSegment("readwrite_ds_2", Arrays.asList("ds_read_0", 
"ds_read_1"), algorithmSegment, new Properties());
+        DatabaseDiscoveryDefinitionSegment definitionSegment = new 
DatabaseDiscoveryDefinitionSegment("readwrite_ds_1", Arrays.asList("ds_read_0", 
"ds_read_1"), algorithmSegment, new Properties());
         DatabaseDiscoveryRuleConfiguration ruleConfig =
-                updater.buildToBeCreatedRuleConfiguration(new 
CreateDatabaseDiscoveryRuleStatement(Arrays.asList(constructionSegment, 
definitionSegment)));
-        assertThat(ruleConfig.getDataSources().size(), is(2));
+                updater.buildToBeCreatedRuleConfiguration(new 
CreateDatabaseDiscoveryRuleStatement(Collections.singletonList(definitionSegment)));
+        assertThat(ruleConfig.getDataSources().size(), is(1));
         
assertTrue(ruleConfig.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getGroupName)
                 
.collect(Collectors.toList()).removeAll(Collections.singletonList("readwrite_ds_1")));
-        
assertTrue(ruleConfig.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getGroupName)
-                
.collect(Collectors.toList()).removeAll(Collections.singletonList("readwrite_ds_2")));
-        
assertTrue(ruleConfig.getDiscoveryTypes().containsKey("readwrite_ds_2_MySQL.MGR"));
-        
assertTrue(ruleConfig.getDiscoveryHeartbeats().containsKey("readwrite_ds_2_heartbeat"));
+        
assertTrue(ruleConfig.getDiscoveryTypes().containsKey("readwrite_ds_1_MySQL.MGR"));
+        
assertTrue(ruleConfig.getDiscoveryHeartbeats().containsKey("readwrite_ds_1_heartbeat"));
     }
     
     @Test
     public void assertUpdate() {
-        DatabaseDiscoveryConstructionSegment constructionSegment = new 
DatabaseDiscoveryConstructionSegment(
-                "readwrite_ds_1", Arrays.asList("ds_read_0", "ds_read_1"), 
"discovery_type_name", "heartbeat_name");
         AlgorithmSegment algorithmSegment = new AlgorithmSegment("MySQL.MGR", 
new Properties());
-        DatabaseDiscoveryDefinitionSegment definitionSegment = new 
DatabaseDiscoveryDefinitionSegment("readwrite_ds_2", Arrays.asList("ds_read_0", 
"ds_read_1"), algorithmSegment, new Properties());
+        DatabaseDiscoveryDefinitionSegment definitionSegment = new 
DatabaseDiscoveryDefinitionSegment("readwrite_ds_1", Arrays.asList("ds_read_0", 
"ds_read_1"), algorithmSegment, new Properties());
         DatabaseDiscoveryRuleConfiguration toBeCreatedRuleConfig = 
updater.buildToBeCreatedRuleConfiguration(
-                new 
CreateDatabaseDiscoveryRuleStatement(Arrays.asList(constructionSegment, 
definitionSegment)));
+                new 
CreateDatabaseDiscoveryRuleStatement(Collections.singletonList(definitionSegment)));
         DatabaseDiscoveryRuleConfiguration currentConfig = new 
DatabaseDiscoveryRuleConfiguration(new LinkedList<>(), new LinkedHashMap<>(), 
new LinkedHashMap<>());
         updater.updateCurrentRuleConfiguration(currentConfig, 
toBeCreatedRuleConfig);
-        assertThat(currentConfig.getDataSources().size(), is(2));
+        assertThat(currentConfig.getDataSources().size(), is(1));
         
assertTrue(currentConfig.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getGroupName)
                 
.collect(Collectors.toList()).removeAll(Collections.singletonList("readwrite_ds_1")));
-        
assertTrue(currentConfig.getDataSources().stream().map(DatabaseDiscoveryDataSourceRuleConfiguration::getGroupName)
-                
.collect(Collectors.toList()).removeAll(Collections.singletonList("readwrite_ds_2")));
-        
assertTrue(currentConfig.getDiscoveryTypes().containsKey("readwrite_ds_2_MySQL.MGR"));
-        
assertTrue(currentConfig.getDiscoveryHeartbeats().containsKey("readwrite_ds_2_heartbeat"));
+        
assertTrue(currentConfig.getDiscoveryTypes().containsKey("readwrite_ds_1_MySQL.MGR"));
+        
assertTrue(currentConfig.getDiscoveryHeartbeats().containsKey("readwrite_ds_1_heartbeat"));
     }
 }
diff --git 
a/features/db-discovery/distsql/parser/src/main/antlr4/imports/db-discovery/RDLStatement.g4
 
b/features/db-discovery/distsql/parser/src/main/antlr4/imports/db-discovery/RDLStatement.g4
index f076be3d821..dad23be25bd 100644
--- 
a/features/db-discovery/distsql/parser/src/main/antlr4/imports/db-discovery/RDLStatement.g4
+++ 
b/features/db-discovery/distsql/parser/src/main/antlr4/imports/db-discovery/RDLStatement.g4
@@ -31,42 +31,18 @@ dropDatabaseDiscoveryRule
     : DROP DB_DISCOVERY RULE ifExists? ruleName (COMMA ruleName)*
     ;
 
-createDatabaseDiscoveryType
-    : CREATE DB_DISCOVERY TYPE databaseDiscoveryTypeDefinition (COMMA 
databaseDiscoveryTypeDefinition)*
-    ;
-
-alterDatabaseDiscoveryType
-    : ALTER DB_DISCOVERY TYPE databaseDiscoveryTypeDefinition (COMMA 
databaseDiscoveryTypeDefinition)*
-    ;
-
 dropDatabaseDiscoveryType
     : DROP DB_DISCOVERY TYPE ifExists? discoveryTypeName (COMMA 
discoveryTypeName)*
     ;
 
-createDatabaseDiscoveryHeartbeat
-    : CREATE DB_DISCOVERY HEARTBEAT heartbeatDefinition (COMMA 
heartbeatDefinition)*
-    ;
-
-alterDatabaseDiscoveryHeartbeat
-    : ALTER DB_DISCOVERY HEARTBEAT heartbeatDefinition (COMMA 
heartbeatDefinition)*
-    ;
-
 dropDatabaseDiscoveryHeartbeat
     : DROP DB_DISCOVERY HEARTBEAT ifExists? discoveryHeartbeatName (COMMA 
discoveryHeartbeatName)*
     ;
 
 databaseDiscoveryRule
-    : (databaseDiscoveryRuleDefinition | databaseDiscoveryRuleConstruction)
-    ;
-
-databaseDiscoveryRuleDefinition
     : ruleName LP resources COMMA typeDefinition COMMA discoveryHeartbeat RP
     ;
 
-databaseDiscoveryRuleConstruction
-    : ruleName LP resources COMMA TYPE EQ discoveryTypeName COMMA HEARTBEAT EQ 
discoveryHeartbeatName RP
-    ;
-
 databaseDiscoveryTypeDefinition
     : discoveryTypeName LP typeDefinition RP
     ;
diff --git 
a/features/db-discovery/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/DatabaseDiscoveryDistSQLStatement.g4
 
b/features/db-discovery/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/DatabaseDiscoveryDistSQLStatement.g4
index 701da734203..405c9f1b195 100644
--- 
a/features/db-discovery/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/DatabaseDiscoveryDistSQLStatement.g4
+++ 
b/features/db-discovery/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/DatabaseDiscoveryDistSQLStatement.g4
@@ -26,12 +26,8 @@ execute
     | showDatabaseDiscoveryTypes
     | showDatabaseDiscoveryHeartbeats
     | showDatabaseDiscoveryRules
-    | createDatabaseDiscoveryType
-    | createDatabaseDiscoveryHeartbeat
-    | alterDatabaseDiscoveryHeartbeat
     | dropDatabaseDiscoveryType
     | dropDatabaseDiscoveryHeartbeat
-    | alterDatabaseDiscoveryType
     | countDatabaseDiscoveryRule
     ) SEMI?
     ;
diff --git 
a/features/db-discovery/distsql/parser/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/core/DatabaseDiscoveryDistSQLStatementVisitor.java
 
b/features/db-discovery/distsql/parser/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/core/DatabaseDiscoveryDistSQLStatementVisitor.java
index 42fcb49304b..6c7e475fd06 100644
--- 
a/features/db-discovery/distsql/parser/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/core/DatabaseDiscoveryDistSQLStatementVisitor.java
+++ 
b/features/db-discovery/distsql/parser/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/core/DatabaseDiscoveryDistSQLStatementVisitor.java
@@ -19,17 +19,11 @@ package 
org.apache.shardingsphere.dbdiscovery.distsql.parser.core;
 
 import org.antlr.v4.runtime.tree.ParseTree;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.AbstractDatabaseDiscoverySegment;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryConstructionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryDefinitionSegment;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryHeartbeatSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryProviderAlgorithmSegment;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.AlterDatabaseDiscoveryHeartbeatStatement;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.AlterDatabaseDiscoveryRuleStatement;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.AlterDatabaseDiscoveryTypeStatement;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CountDatabaseDiscoveryRuleStatement;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryHeartbeatStatement;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryRuleStatement;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryTypeStatement;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.DropDatabaseDiscoveryHeartbeatStatement;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.DropDatabaseDiscoveryRuleStatement;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.DropDatabaseDiscoveryTypeStatement;
@@ -38,15 +32,9 @@ import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.ShowDataba
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.ShowDatabaseDiscoveryTypesStatement;
 import 
org.apache.shardingsphere.distsql.parser.autogen.DatabaseDiscoveryDistSQLStatementBaseVisitor;
 import 
org.apache.shardingsphere.distsql.parser.autogen.DatabaseDiscoveryDistSQLStatementParser;
-import 
org.apache.shardingsphere.distsql.parser.autogen.DatabaseDiscoveryDistSQLStatementParser.AlterDatabaseDiscoveryHeartbeatContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.DatabaseDiscoveryDistSQLStatementParser.AlterDatabaseDiscoveryRuleContext;
-import 
org.apache.shardingsphere.distsql.parser.autogen.DatabaseDiscoveryDistSQLStatementParser.AlterDatabaseDiscoveryTypeContext;
-import 
org.apache.shardingsphere.distsql.parser.autogen.DatabaseDiscoveryDistSQLStatementParser.CreateDatabaseDiscoveryHeartbeatContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.DatabaseDiscoveryDistSQLStatementParser.CreateDatabaseDiscoveryRuleContext;
-import 
org.apache.shardingsphere.distsql.parser.autogen.DatabaseDiscoveryDistSQLStatementParser.CreateDatabaseDiscoveryTypeContext;
-import 
org.apache.shardingsphere.distsql.parser.autogen.DatabaseDiscoveryDistSQLStatementParser.DatabaseDiscoveryRuleConstructionContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.DatabaseDiscoveryDistSQLStatementParser.DatabaseDiscoveryRuleContext;
-import 
org.apache.shardingsphere.distsql.parser.autogen.DatabaseDiscoveryDistSQLStatementParser.DatabaseDiscoveryRuleDefinitionContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.DatabaseDiscoveryDistSQLStatementParser.DatabaseDiscoveryTypeDefinitionContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.DatabaseDiscoveryDistSQLStatementParser.DatabaseNameContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.DatabaseDiscoveryDistSQLStatementParser.DropDatabaseDiscoveryHeartbeatContext;
@@ -65,7 +53,6 @@ import 
org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
 import 
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
 
-import java.util.Collection;
 import java.util.List;
 import java.util.Objects;
 import java.util.Properties;
@@ -88,20 +75,8 @@ public final class DatabaseDiscoveryDistSQLStatementVisitor 
extends DatabaseDisc
     
     @Override
     public ASTNode visitDatabaseDiscoveryRule(final 
DatabaseDiscoveryRuleContext ctx) {
-        return null == ctx.databaseDiscoveryRuleDefinition() ? 
visit(ctx.databaseDiscoveryRuleConstruction()) : 
visit(ctx.databaseDiscoveryRuleDefinition());
-    }
-    
-    @Override
-    public ASTNode visitDatabaseDiscoveryRuleConstruction(final 
DatabaseDiscoveryRuleConstructionContext ctx) {
-        return new DatabaseDiscoveryConstructionSegment(
-                getIdentifierValue(ctx.ruleName()), 
buildResources(ctx.resources()), getIdentifierValue(ctx.discoveryTypeName()), 
getIdentifierValue(ctx.discoveryHeartbeatName()));
-    }
-    
-    @Override
-    public ASTNode visitDatabaseDiscoveryRuleDefinition(final 
DatabaseDiscoveryRuleDefinitionContext ctx) {
         return new DatabaseDiscoveryDefinitionSegment(
                 getIdentifierValue(ctx.ruleName()), 
buildResources(ctx.resources()), (AlgorithmSegment) 
visit(ctx.typeDefinition()), 
getProperties(ctx.discoveryHeartbeat().properties()));
-        
     }
     
     private List<String> buildResources(final ResourcesContext ctx) {
@@ -118,32 +93,6 @@ public final class DatabaseDiscoveryDistSQLStatementVisitor 
extends DatabaseDisc
         return new ShowDatabaseDiscoveryRulesStatement(null == 
ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
     }
     
-    @Override
-    public ASTNode visitCreateDatabaseDiscoveryHeartbeat(final 
CreateDatabaseDiscoveryHeartbeatContext ctx) {
-        return new 
CreateDatabaseDiscoveryHeartbeatStatement(ctx.heartbeatDefinition().stream()
-                .map(each -> new 
DatabaseDiscoveryHeartbeatSegment(getIdentifierValue(each.discoveryHeartbeatName()),
 getProperties(each.properties()))).collect(Collectors.toList()));
-    }
-    
-    @Override
-    public ASTNode visitAlterDatabaseDiscoveryHeartbeat(final 
AlterDatabaseDiscoveryHeartbeatContext ctx) {
-        return new 
AlterDatabaseDiscoveryHeartbeatStatement(ctx.heartbeatDefinition().stream()
-                .map(each -> new 
DatabaseDiscoveryHeartbeatSegment(getIdentifierValue(each.discoveryHeartbeatName()),
 getProperties(each.properties()))).collect(Collectors.toList()));
-    }
-    
-    @Override
-    public ASTNode visitCreateDatabaseDiscoveryType(final 
CreateDatabaseDiscoveryTypeContext ctx) {
-        return new 
CreateDatabaseDiscoveryTypeStatement(buildAlgorithmEntry(ctx.databaseDiscoveryTypeDefinition()));
-    }
-    
-    @Override
-    public ASTNode visitAlterDatabaseDiscoveryType(final 
AlterDatabaseDiscoveryTypeContext ctx) {
-        return new 
AlterDatabaseDiscoveryTypeStatement(buildAlgorithmEntry(ctx.databaseDiscoveryTypeDefinition()));
-    }
-    
-    private Collection<DatabaseDiscoveryProviderAlgorithmSegment> 
buildAlgorithmEntry(final List<DatabaseDiscoveryTypeDefinitionContext> ctx) {
-        return ctx.stream().map(each -> 
(DatabaseDiscoveryProviderAlgorithmSegment) 
visit(each)).collect(Collectors.toList());
-    }
-    
     @Override
     public ASTNode visitDatabaseDiscoveryTypeDefinition(final 
DatabaseDiscoveryTypeDefinitionContext ctx) {
         return new 
DatabaseDiscoveryProviderAlgorithmSegment(getIdentifierValue(ctx.discoveryTypeName()),
 (AlgorithmSegment) visit(ctx.typeDefinition()));
diff --git 
a/features/db-discovery/distsql/parser/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/DatabaseDiscoveryDistSQLTest.java
 
b/features/db-discovery/distsql/parser/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/DatabaseDiscoveryDistSQLTest.java
index 4d3449cf504..d65e304e120 100644
--- 
a/features/db-discovery/distsql/parser/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/DatabaseDiscoveryDistSQLTest.java
+++ 
b/features/db-discovery/distsql/parser/src/test/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/DatabaseDiscoveryDistSQLTest.java
@@ -21,11 +21,8 @@ import lombok.SneakyThrows;
 import org.antlr.v4.runtime.tree.ParseTreeVisitor;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.facade.DatabaseDiscoveryDistSQLStatementParserFacade;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryDefinitionSegment;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryProviderAlgorithmSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.AlterDatabaseDiscoveryRuleStatement;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.AlterDatabaseDiscoveryTypeStatement;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryRuleStatement;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryTypeStatement;
 import 
org.apache.shardingsphere.distsql.parser.core.featured.FeaturedDistSQLStatementParserFacadeFactory;
 import org.apache.shardingsphere.distsql.parser.statement.DistSQLStatement;
 import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor;
@@ -34,7 +31,6 @@ import 
org.apache.shardingsphere.sql.parser.core.SQLParserFactory;
 import org.junit.Test;
 
 import java.util.Arrays;
-import java.util.Iterator;
 import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.equalTo;
@@ -48,7 +44,6 @@ public class DatabaseDiscoveryDistSQLTest {
         String sql = "CREATE DB_DISCOVERY RULE db_discovery_group_0 ("
                 + "RESOURCES(ds_0, ds_1), 
TYPE(NAME='mgr',PROPERTIES('group-name'='92504d5b')),"
                 + "HEARTBEAT(PROPERTIES('keep-alive-cron'='0/5 * * * * ?')))";
-        
         CreateDatabaseDiscoveryRuleStatement distSQLStatement = 
(CreateDatabaseDiscoveryRuleStatement) getDistSQLStatement(sql);
         assertThat(distSQLStatement.getRules().size(), is(1));
         assertDiscoverySegment((DatabaseDiscoveryDefinitionSegment) 
distSQLStatement.getRules().iterator().next());
@@ -64,22 +59,6 @@ public class DatabaseDiscoveryDistSQLTest {
         assertDiscoverySegment((DatabaseDiscoveryDefinitionSegment) 
distSQLStatement.getRules().iterator().next());
     }
     
-    @Test
-    public void assertCreateDatabaseDiscoveryType() {
-        String sql = "CREATE DB_DISCOVERY TYPE 
primary_replica_ds_mgr(TYPE(NAME='mgr',PROPERTIES('group-name'='92504d5b'))),primary_replica_ds_mgr_2(TYPE(NAME='mgr'))";
-        CreateDatabaseDiscoveryTypeStatement distSQLStatement = 
(CreateDatabaseDiscoveryTypeStatement) getDistSQLStatement(sql);
-        assertThat(distSQLStatement.getProviders().size(), is(2));
-        assertAlgorithmSegment(distSQLStatement.getProviders().iterator());
-    }
-    
-    @Test
-    public void assertAlterDatabaseDiscoveryType() {
-        String sql = "ALTER DB_DISCOVERY TYPE 
primary_replica_ds_mgr(TYPE(NAME='mgr',PROPERTIES('group-name'='92504d5b'))),primary_replica_ds_mgr_2(TYPE(NAME='mgr'))";
-        AlterDatabaseDiscoveryTypeStatement distSQLStatement = 
(AlterDatabaseDiscoveryTypeStatement) getDistSQLStatement(sql);
-        assertThat(distSQLStatement.getProviders().size(), is(2));
-        assertAlgorithmSegment(distSQLStatement.getProviders().iterator());
-    }
-    
     private void assertDiscoverySegment(final 
DatabaseDiscoveryDefinitionSegment discoverySegment) {
         assertThat(discoverySegment.getName(), is("db_discovery_group_0"));
         assertThat(discoverySegment.getDataSources(), is(Arrays.asList("ds_0", 
"ds_1")));
@@ -92,19 +71,6 @@ public class DatabaseDiscoveryDistSQLTest {
         assertThat(discoverySegment.getDiscoveryHeartbeat(), 
is(heartbeatProps));
     }
     
-    private void assertAlgorithmSegment(final 
Iterator<DatabaseDiscoveryProviderAlgorithmSegment> iterator) {
-        DatabaseDiscoveryProviderAlgorithmSegment providerAlgorithmSegment = 
iterator.next();
-        Properties properties = new Properties();
-        properties.setProperty("group-name", "92504d5b");
-        assertThat(providerAlgorithmSegment.getDiscoveryProviderName(), 
is("primary_replica_ds_mgr"));
-        assertThat(providerAlgorithmSegment.getAlgorithm().getName(), 
is("mgr"));
-        assertThat(providerAlgorithmSegment.getAlgorithm().getProps(), 
is(properties));
-        DatabaseDiscoveryProviderAlgorithmSegment providerAlgorithmSegment2 = 
iterator.next();
-        assertThat(providerAlgorithmSegment2.getDiscoveryProviderName(), 
is("primary_replica_ds_mgr_2"));
-        assertThat(providerAlgorithmSegment2.getAlgorithm().getName(), 
is("mgr"));
-        assertThat(providerAlgorithmSegment2.getAlgorithm().getProps(), is(new 
Properties()));
-    }
-    
     @SneakyThrows(ReflectiveOperationException.class)
     @SuppressWarnings("rawtypes")
     private DistSQLStatement getDistSQLStatement(final String sql) {
diff --git 
a/features/db-discovery/distsql/statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/segment/DatabaseDiscoveryConstructionSegment.java
 
b/features/db-discovery/distsql/statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/segment/DatabaseDiscoveryConstructionSegment.java
deleted file mode 100644
index db9a8511b7d..00000000000
--- 
a/features/db-discovery/distsql/statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/segment/DatabaseDiscoveryConstructionSegment.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.dbdiscovery.distsql.parser.segment;
-
-import lombok.Getter;
-
-import java.util.Collection;
-
-/**
- * Database discovery rule construction segment.
- */
-@Getter
-public final class DatabaseDiscoveryConstructionSegment extends 
AbstractDatabaseDiscoverySegment {
-    
-    private final String discoveryTypeName;
-    
-    private final String discoveryHeartbeatName;
-    
-    public DatabaseDiscoveryConstructionSegment(final String name, final 
Collection<String> dataSources, final String discoveryTypeName, final String 
discoveryHeartbeatName) {
-        super(name, dataSources);
-        this.discoveryTypeName = discoveryTypeName;
-        this.discoveryHeartbeatName = discoveryHeartbeatName;
-    }
-}
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/impl/AlterDatabaseDiscoveryRuleStatementAssert.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/impl/AlterDatabaseDiscoveryRuleStatementAssert.java
index 8e8cf2ce2a2..5c0a8f36841 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/impl/AlterDatabaseDiscoveryRuleStatementAssert.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/alter/impl/AlterDatabaseDiscoveryRuleStatementAssert.java
@@ -20,16 +20,13 @@ package 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statemen
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.AbstractDatabaseDiscoverySegment;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryConstructionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryDefinitionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.AlterDatabaseDiscoveryRuleStatement;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.AlgorithmAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.PropertiesAssert;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedDatabaseDiscoveryConstructionRule;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedDatabaseDiscoveryDefinitionRule;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterDatabaseDiscoveryConstructionRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterDatabaseDiscoveryDefinitionRuleStatementTestCase;
 
 import java.util.Collection;
@@ -38,9 +35,9 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
-import static org.hamcrest.MatcherAssert.assertThat;
 
 /**
  * Alter database discovery rule statement assert.
@@ -66,11 +63,7 @@ public final class AlterDatabaseDiscoveryRuleStatementAssert 
{
     
     private static void assertDatabaseDiscoveryRules(final 
SQLCaseAssertContext assertContext, final 
Collection<AbstractDatabaseDiscoverySegment> actual,
                                                      final SQLParserTestCase 
expected) {
-        if (expected instanceof 
AlterDatabaseDiscoveryConstructionRuleStatementTestCase) {
-            assertDiscoveryConstructionRule(assertContext, actual, 
((AlterDatabaseDiscoveryConstructionRuleStatementTestCase) 
expected).getRules());
-        } else if (expected instanceof 
AlterDatabaseDiscoveryDefinitionRuleStatementTestCase) {
-            assertDiscoveryDefinitionRule(assertContext, actual, 
((AlterDatabaseDiscoveryDefinitionRuleStatementTestCase) expected).getRules());
-        }
+        assertDiscoveryDefinitionRule(assertContext, actual, 
((AlterDatabaseDiscoveryDefinitionRuleStatementTestCase) expected).getRules());
     }
     
     private static void assertDiscoveryDefinitionRule(final 
SQLCaseAssertContext assertContext, final 
Collection<AbstractDatabaseDiscoverySegment> actual,
@@ -88,20 +81,4 @@ public final class AlterDatabaseDiscoveryRuleStatementAssert 
{
             AlgorithmAssert.assertIs(assertContext, 
actualSegment.getDiscoveryType(), each.getDiscoveryType());
         });
     }
-    
-    private static void assertDiscoveryConstructionRule(final 
SQLCaseAssertContext assertContext, final 
Collection<AbstractDatabaseDiscoverySegment> actual,
-                                                        final 
Collection<ExpectedDatabaseDiscoveryConstructionRule> 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, DatabaseDiscoveryConstructionSegment> actualMap = 
actual.stream().map(each -> (DatabaseDiscoveryConstructionSegment) each)
-                
.collect(Collectors.toMap(AbstractDatabaseDiscoverySegment::getName, each -> 
each));
-        expected.forEach(each -> {
-            DatabaseDiscoveryConstructionSegment actualSegment = 
actualMap.get(each.getName());
-            assertNotNull(actualSegment);
-            assertThat(actualSegment.getName(), is(each.getName()));
-            assertThat(actualSegment.getDataSources(), 
is(each.getDataSources()));
-            assertThat(actualSegment.getDiscoveryHeartbeatName(), 
is(each.getDiscoveryHeartbeat()));
-            assertThat(actualSegment.getDiscoveryTypeName(), 
is(each.getDiscoveryType()));
-        });
-    }
 }
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateDatabaseDiscoveryRuleStatementAssert.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateDatabaseDiscoveryRuleStatementAssert.java
index be4c98cbfcc..7f213a171ec 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateDatabaseDiscoveryRuleStatementAssert.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rdl/create/impl/CreateDatabaseDiscoveryRuleStatementAssert.java
@@ -20,16 +20,13 @@ package 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statemen
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.AbstractDatabaseDiscoverySegment;
-import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryConstructionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryDefinitionSegment;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.CreateDatabaseDiscoveryRuleStatement;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.AlgorithmAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.distsql.PropertiesAssert;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedDatabaseDiscoveryConstructionRule;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedDatabaseDiscoveryDefinitionRule;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateDatabaseDiscoveryConstructionRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateDatabaseDiscoveryDefinitionRuleStatementTestCase;
 
 import java.util.Collection;
@@ -38,9 +35,9 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
-import static org.hamcrest.MatcherAssert.assertThat;
 
 /**
  * Create database discovery rule statement assert.
@@ -66,11 +63,7 @@ public final class 
CreateDatabaseDiscoveryRuleStatementAssert {
     
     private static void assertDatabaseDiscoveryRules(final 
SQLCaseAssertContext assertContext, final 
Collection<AbstractDatabaseDiscoverySegment> actual,
                                                      final SQLParserTestCase 
expected) {
-        if (expected instanceof 
CreateDatabaseDiscoveryConstructionRuleStatementTestCase) {
-            assertDiscoveryConstructionRule(assertContext, actual, 
((CreateDatabaseDiscoveryConstructionRuleStatementTestCase) 
expected).getRules());
-        } else if (expected instanceof 
CreateDatabaseDiscoveryDefinitionRuleStatementTestCase) {
-            assertDiscoveryDefinitionRule(assertContext, actual, 
((CreateDatabaseDiscoveryDefinitionRuleStatementTestCase) expected).getRules());
-        }
+        assertDiscoveryDefinitionRule(assertContext, actual, 
((CreateDatabaseDiscoveryDefinitionRuleStatementTestCase) expected).getRules());
     }
     
     private static void assertDiscoveryDefinitionRule(final 
SQLCaseAssertContext assertContext, final 
Collection<AbstractDatabaseDiscoverySegment> actual,
@@ -87,19 +80,4 @@ public final class 
CreateDatabaseDiscoveryRuleStatementAssert {
             AlgorithmAssert.assertIs(assertContext, 
actualSegment.getDiscoveryType(), each.getDiscoveryType());
         });
     }
-    
-    private static void assertDiscoveryConstructionRule(final 
SQLCaseAssertContext assertContext, final 
Collection<AbstractDatabaseDiscoverySegment> actual,
-                                                        final 
Collection<ExpectedDatabaseDiscoveryConstructionRule> 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, DatabaseDiscoveryConstructionSegment> actualMap = 
actual.stream().map(each -> (DatabaseDiscoveryConstructionSegment) each)
-                
.collect(Collectors.toMap(AbstractDatabaseDiscoverySegment::getName, each -> 
each));
-        expected.forEach(each -> {
-            DatabaseDiscoveryConstructionSegment actualSegment = 
actualMap.get(each.getName());
-            assertThat(actualSegment.getName(), is(each.getName()));
-            assertThat(actualSegment.getDataSources(), 
is(each.getDataSources()));
-            assertThat(actualSegment.getDiscoveryHeartbeatName(), 
is(each.getDiscoveryHeartbeat()));
-            assertThat(actualSegment.getDiscoveryTypeName(), 
is(each.getDiscoveryType()));
-        });
-    }
 }
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
index b3818e1158f..6a08593903c 100644
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
+++ 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
@@ -326,10 +326,7 @@ import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.StartMigrationStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.StopMigrationStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.UnregisterMigrationSourceStorageUnitStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterDatabaseDiscoveryConstructionRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterDatabaseDiscoveryDefinitionRuleStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterDatabaseDiscoveryHeartbeatStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterDatabaseDiscoveryTypeStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterDefaultShardingStrategyStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterEncryptRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterReadwriteSplittingRuleStatementTestCase;
@@ -343,10 +340,7 @@ import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingKeyGeneratorStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterShardingTableRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.AddResourceStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateDatabaseDiscoveryConstructionRuleStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateDatabaseDiscoveryDefinitionRuleStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateDatabaseDiscoveryHeartbeatStatementTestCase;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateDatabaseDiscoveryTypeStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateDefaultShadowAlgorithmStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateDefaultShardingStrategyStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create.CreateDefaultSingleTableRuleStatementTestCase;
@@ -890,9 +884,6 @@ public final class SQLParserTestCases {
     @XmlElement(name = "alter-database-discovery-definition-rule")
     private final List<AlterDatabaseDiscoveryDefinitionRuleStatementTestCase> 
alterDatabaseDiscoveryDefinitionRuleTestCases = new LinkedList<>();
     
-    @XmlElement(name = "alter-database-discovery-construction-rule")
-    private final 
List<AlterDatabaseDiscoveryConstructionRuleStatementTestCase> 
alterDataBaseDiscoveryConstructionRuleTestCases = new LinkedList<>();
-    
     @XmlElement(name = "alter-encrypt-rule")
     private final List<AlterEncryptRuleStatementTestCase> 
alterEncryptRuleTestCases = new LinkedList<>();
     
@@ -911,21 +902,6 @@ public final class SQLParserTestCases {
     @XmlElement(name = "create-database-discovery-definition-rule")
     private final List<CreateDatabaseDiscoveryDefinitionRuleStatementTestCase> 
createDatabaseDiscoveryDefinitionRuleTestCases = new LinkedList<>();
     
-    @XmlElement(name = "create-database-discovery-construction-rule")
-    private final 
List<CreateDatabaseDiscoveryConstructionRuleStatementTestCase> 
createDataBaseDiscoveryConstructionRuleTestCases = new LinkedList<>();
-    
-    @XmlElement(name = "create-database-discovery-type")
-    private final List<CreateDatabaseDiscoveryTypeStatementTestCase> 
createDatabaseDiscoveryTypeTestCases = new LinkedList<>();
-    
-    @XmlElement(name = "create-database-discovery-heartbeat")
-    private final List<CreateDatabaseDiscoveryHeartbeatStatementTestCase> 
createDatabaseDiscoveryHeartbeatTestCases = new LinkedList<>();
-    
-    @XmlElement(name = "alter-database-discovery-heartbeat")
-    private final List<AlterDatabaseDiscoveryHeartbeatStatementTestCase> 
alterDatabaseDiscoveryHeartbeatTestCases = new LinkedList<>();
-    
-    @XmlElement(name = "alter-database-discovery-type")
-    private final List<AlterDatabaseDiscoveryTypeStatementTestCase> 
alterDatabaseDiscoveryTypeTestCases = new LinkedList<>();
-    
     @XmlElement(name = "create-encrypt-rule")
     private final List<CreateEncryptRuleStatementTestCase> 
createEncryptRuleTestCases = new LinkedList<>();
     
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/distsql/rdl/ExpectedDatabaseDiscoveryConstructionRule.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/distsql/rdl/ExpectedDatabaseDiscoveryConstructionRule.java
deleted file mode 100644
index 3e88e5b0ba1..00000000000
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/distsql/rdl/ExpectedDatabaseDiscoveryConstructionRule.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl;
-
-import lombok.Getter;
-import lombok.Setter;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.AbstractExpectedIdentifierSQLSegment;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import java.util.Collection;
-
-/**
- * Expected database discovery construction rule.
- */
-@Getter
-@Setter
-public final class ExpectedDatabaseDiscoveryConstructionRule extends 
AbstractExpectedIdentifierSQLSegment {
-    
-    @XmlAttribute(name = "rule-name")
-    private String name;
-    
-    @XmlElement(name = "data-source")
-    private Collection<String> dataSources;
-    
-    @XmlAttribute(name = "type")
-    private String discoveryType;
-    
-    @XmlAttribute(name = "heartbeat")
-    private String discoveryHeartbeat;
-}
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterDatabaseDiscoveryConstructionRuleStatementTestCase.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterDatabaseDiscoveryConstructionRuleStatementTestCase.java
deleted file mode 100644
index 6bd105cd5e8..00000000000
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/alter/AlterDatabaseDiscoveryConstructionRuleStatementTestCase.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter;
-
-import lombok.Getter;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedDatabaseDiscoveryConstructionRule;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
-
-import javax.xml.bind.annotation.XmlElement;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Alter database discovery construction rule statement test case.
- */
-@Getter
-public final class AlterDatabaseDiscoveryConstructionRuleStatementTestCase 
extends SQLParserTestCase {
-    
-    @XmlElement(name = "rule")
-    private final List<ExpectedDatabaseDiscoveryConstructionRule> rules = new 
LinkedList<>();
-}
diff --git 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/CreateDatabaseDiscoveryConstructionRuleStatementTestCase.java
 
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/CreateDatabaseDiscoveryConstructionRuleStatementTestCase.java
deleted file mode 100644
index 9669fddbc5e..00000000000
--- 
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rdl/create/CreateDatabaseDiscoveryConstructionRuleStatementTestCase.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.create;
-
-import lombok.Getter;
-import lombok.Setter;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.distsql.rdl.ExpectedDatabaseDiscoveryConstructionRule;
-import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
-
-import javax.xml.bind.annotation.XmlElement;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Create database discovery construction rule statement test case.
- */
-@Getter
-@Setter
-public final class CreateDatabaseDiscoveryConstructionRuleStatementTestCase 
extends SQLParserTestCase {
-    
-    @XmlElement(name = "rule")
-    private final List<ExpectedDatabaseDiscoveryConstructionRule> rules = new 
LinkedList<>();
-}
diff --git a/test/parser/src/main/resources/case/rdl/alter.xml 
b/test/parser/src/main/resources/case/rdl/alter.xml
index f6c5bdef621..499c2b6bc10 100644
--- a/test/parser/src/main/resources/case/rdl/alter.xml
+++ b/test/parser/src/main/resources/case/rdl/alter.xml
@@ -149,34 +149,6 @@
             </heartbeat>
         </rule>
     </alter-database-discovery-definition-rule>
-
-    <alter-database-discovery-construction-rule 
sql-case-id="alter-database-discovery-construction-rule">
-        <rule rule-name="ha_group_0" type="ha_group_0_mgr" 
heartbeat="ha_group_0_heartbeat">
-            <data-source>resource0</data-source>
-            <data-source>resource1</data-source>
-        </rule>
-    </alter-database-discovery-construction-rule>
-
-    <alter-database-discovery-heartbeat 
sql-case-id="alter-database-discovery-heartbeat">
-        <rule heartbeat-name="mgr_heartbeat">
-            <properties>
-                <property key="keepAliveCron" value="0/5 * * * * ?" />
-            </properties>
-        </rule>
-    </alter-database-discovery-heartbeat>
-    
-    <alter-database-discovery-type sql-case-id="alter-database-discovery-type">
-        <type discovery-type-name="primary_replica_ds_mgr">
-            <algorithm algorithm-name="mgr">
-                <properties>
-                    <property key="groupName" value="92504d5b-6dec" />
-                </properties>
-            </algorithm>
-        </type>
-        <type discovery-type-name="primary_replica_ds_mgr_2">
-            <algorithm algorithm-name="mgr" />
-        </type>
-    </alter-database-discovery-type>
     
     <alter-encrypt-rule sql-case-id="alter-encrypt-rule">
         <rule name="t_encrypt">
diff --git a/test/parser/src/main/resources/case/rdl/create.xml 
b/test/parser/src/main/resources/case/rdl/create.xml
index b1eb22b61be..9670fef1699 100644
--- a/test/parser/src/main/resources/case/rdl/create.xml
+++ b/test/parser/src/main/resources/case/rdl/create.xml
@@ -235,35 +235,6 @@
         </rule>
     </create-database-discovery-definition-rule>
 
-    <create-database-discovery-construction-rule 
sql-case-id="create-database-discovery-construction-rule">
-        <rule rule-name="ha_group_0" type="ha_group_0_mgr" 
heartbeat="ha_group_0_heartbeat">
-            <data-source>resource0</data-source>
-            <data-source>resource1</data-source>
-        </rule>
-    </create-database-discovery-construction-rule>
-
-    <create-database-discovery-type 
sql-case-id="create-database-discovery-type">
-        <type discovery-type-name="primary_replica_ds_mgr">
-            <algorithm algorithm-name="mgr">
-                <properties>
-                    <property key="groupName" value="92504d5b-6dec" />
-                </properties>
-            </algorithm>
-        </type>
-        <type discovery-type-name="primary_replica_ds_mgr_2">
-            <algorithm algorithm-name="mgr" />
-        </type>
-    </create-database-discovery-type>
-
-
-    <create-database-discovery-heartbeat 
sql-case-id="create-database-discovery-heartbeat">
-        <rule heartbeat-name="mgr_heartbeat" >
-            <properties>
-                <property key="keepAliveCron" value="0/5 * * * * ?" />
-            </properties>
-        </rule>
-    </create-database-discovery-heartbeat>
-
     <create-database-discovery-definition-rule 
sql-case-id="create-database-discovery-rule-with-quota">
         <rule rule-name="ha_group_0" type="mgr">
             <data-source>resource0</data-source>
diff --git a/test/parser/src/main/resources/sql/supported/rdl/alter.xml 
b/test/parser/src/main/resources/sql/supported/rdl/alter.xml
index 2bd812767a7..7f46c7a6a84 100644
--- a/test/parser/src/main/resources/sql/supported/rdl/alter.xml
+++ b/test/parser/src/main/resources/sql/supported/rdl/alter.xml
@@ -31,9 +31,6 @@
     <distsql-case id="alter-sharding-binding-table-rules" value="ALTER 
SHARDING BINDING TABLE RULES (t_order,t_order_item), (t_1,t_2)" />
     <distsql-case id="alter-readwrite-splitting-rule" value="ALTER 
READWRITE_SPLITTING RULE ms_group_0 (AUTO_AWARE_RESOURCE=group_0, 
TYPE(NAME='random',PROPERTIES('read_weight'='2:1'))), ms_group_1 
(WRITE_RESOURCE=primary_ds, 
READ_RESOURCES(replica_ds_0,replica_ds_1),TYPE(NAME='random'))" />
     <distsql-case id="alter-database-discovery-definition-rule" value="ALTER 
DB_DISCOVERY RULE ha_group_0 (RESOURCES(resource0,resource1), 
TYPE(NAME='mgr',PROPERTIES('groupName'='92504d5b-6dec')),HEARTBEAT(PROPERTIES('keepAliveCron'='0/5
 * * * * ?'))), ha_group_1 (RESOURCES(resource2,resource3), 
TYPE(NAME='mgr2',PROPERTIES('groupName'='92504d5b-6dec-2')),HEARTBEAT(PROPERTIES('keepAliveCron'='0/6
 * * * * ?')))" />
-    <distsql-case id="alter-database-discovery-construction-rule" value="ALTER 
DB_DISCOVERY RULE ha_group_0 (RESOURCES(resource0,resource1), 
TYPE=ha_group_0_mgr,HEARTBEAT=ha_group_0_heartbeat)" />
-    <distsql-case id="alter-database-discovery-heartbeat" value="ALTER 
DB_DISCOVERY HEARTBEAT mgr_heartbeat(PROPERTIES('keepAliveCron'='0/5 * * * * 
?'))" />
-    <distsql-case id="alter-database-discovery-type" value="ALTER DB_DISCOVERY 
TYPE 
primary_replica_ds_mgr(TYPE(NAME='mgr',PROPERTIES('groupName'='92504d5b-6dec'))),primary_replica_ds_mgr_2(TYPE(NAME='mgr'))"
 />
     <distsql-case id="alter-encrypt-rule" value="ALTER ENCRYPT RULE t_encrypt 
(RESOURCE=ds_1, 
COLUMNS((NAME=user_id,PLAIN=user_plain,CIPHER=user_cipher,TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abc'))),
 (NAME=order_id, CIPHER =order_cipher,TYPE(NAME='MD5'))))" />
     <distsql-case id="alter-encrypt-rule-with-assisted-query-column" 
value="ALTER ENCRYPT RULE t_encrypt (RESOURCE=ds_1, 
COLUMNS((NAME=user_id,PLAIN=user_plain,CIPHER=user_cipher,ASSISTED_QUERY_COLUMN=assisted_column,
 TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abc')), TYPE(NAME='MD5')), 
(NAME=order_id, CIPHER =order_cipher,TYPE(NAME='MD5'))))" />
     <distsql-case id="alter-encrypt-rule-with-query-with-cipher-column" 
value="ALTER ENCRYPT RULE t_encrypt (RESOURCE=ds_1, 
COLUMNS((NAME=user_id,PLAIN=user_plain,CIPHER=user_cipher, 
TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abc'))), (NAME=order_id, 
CIPHER =order_cipher,TYPE(NAME='MD5'))), QUERY_WITH_CIPHER_COLUMN=false)" />
diff --git a/test/parser/src/main/resources/sql/supported/rdl/create.xml 
b/test/parser/src/main/resources/sql/supported/rdl/create.xml
index 95b3ce02f8e..a7d3e5ef879 100644
--- a/test/parser/src/main/resources/sql/supported/rdl/create.xml
+++ b/test/parser/src/main/resources/sql/supported/rdl/create.xml
@@ -33,9 +33,6 @@
     <distsql-case id="create-static-readwrite-splitting-rule" value="CREATE 
READWRITE_SPLITTING RULE ms_group_0 (WRITE_RESOURCE=primary_ds, 
READ_RESOURCES(replica_ds_0,replica_ds_1), TYPE(NAME='random')))" />
     <distsql-case id="create-dynamic-readwrite-splitting-rule" value="CREATE 
READWRITE_SPLITTING RULE ms_group_1(AUTO_AWARE_RESOURCE=group_0, 
TYPE(NAME='random',PROPERTIES('read_weight'='2:1')))" />
     <distsql-case id="create-database-discovery-definition-rule" value="CREATE 
DB_DISCOVERY RULE ha_group_0 (RESOURCES(resource0,resource1), 
TYPE(NAME='mgr',PROPERTIES('groupName'='92504d5b-6dec')),HEARTBEAT(PROPERTIES('keepAliveCron'='0/5
 * * * * ?'))), ha_group_1 (RESOURCES(resource2,resource3), 
TYPE(NAME='mgr2',PROPERTIES('groupName'='92504d5b-6dec-2')),HEARTBEAT(PROPERTIES('keepAliveCron'='0/6
 * * * * ?')))" />
-    <distsql-case id="create-database-discovery-construction-rule" 
value="CREATE DB_DISCOVERY RULE ha_group_0 (RESOURCES(resource0,resource1), 
TYPE=ha_group_0_mgr,HEARTBEAT=ha_group_0_heartbeat)" />
-    <distsql-case id="create-database-discovery-type" value="CREATE 
DB_DISCOVERY TYPE 
primary_replica_ds_mgr(TYPE(NAME='mgr',PROPERTIES('groupName'='92504d5b-6dec'))),primary_replica_ds_mgr_2(TYPE(NAME='mgr'))"
 />
-    <distsql-case id="create-database-discovery-heartbeat" value="CREATE 
DB_DISCOVERY HEARTBEAT mgr_heartbeat(PROPERTIES('keepAliveCron'='0/5 * * * * 
?'))" />
     <distsql-case id="create-encrypt-rule" value="CREATE ENCRYPT RULE 
t_encrypt (RESOURCE=ds_1, 
COLUMNS((NAME=user_id,PLAIN=user_plain,CIPHER=user_cipher,TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abc'))),
 (NAME=order_id, CIPHER =order_cipher,TYPE(NAME='MD5'))))" />
     <distsql-case id="create-encrypt-rule-with-assisted-query-column" 
value="CREATE ENCRYPT RULE t_encrypt (RESOURCE=ds_1, 
COLUMNS((NAME=user_id,PLAIN=user_plain,CIPHER=user_cipher,ASSISTED_QUERY_COLUMN=assisted_column,
 TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abc')), TYPE(NAME='MD5')), 
(NAME=order_id, CIPHER =order_cipher,TYPE(NAME='MD5'))))" />
     <distsql-case id="create-shadow-rule" value="CREATE SHADOW RULE 
shadow_rule(SOURCE=demo_ds,SHADOW=demo_ds_shadow,t_order((TYPE(NAME='REGEX_MATCH',PROPERTIES('operation'='insert','column'='user_id','regex'='[1]'))),(simple_hint_algorithm,TYPE(NAME='SIMPLE_HINT',PROPERTIES('shadow'='true','foo'='bar')))))"
 />

Reply via email to