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

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 5431eca2ea9 Alter table add schema (#17010)
5431eca2ea9 is described below

commit 5431eca2ea9ee8c64f7447f267976157cf4632bf
Author: zhaojinchao <[email protected]>
AuthorDate: Fri Apr 22 20:40:46 2022 +0800

    Alter table add schema (#17010)
---
 .../metadata/FederationDatabaseMetaData.java       | 32 +++++++++++++++++++++-
 .../mode/manager/ContextManager.java               | 19 +++++++------
 .../metadata/persist/MetaDataPersistService.java   |  6 ++--
 .../persist/MetaDataPersistServiceTest.java        |  6 ++--
 .../cluster/ClusterContextManagerBuilder.java      |  2 +-
 .../ClusterContextManagerCoordinator.java          | 24 ++++++++--------
 .../event/datasource/DataSourceChangedEvent.java   |  2 +-
 .../event/rule/RuleConfigurationsChangedEvent.java |  2 +-
 .../ClusterContextManagerCoordinatorTest.java      |  6 ++--
 .../StandaloneContextManagerBuilder.java           |  2 +-
 .../ImportDatabaseConfigurationHandler.java        |  2 +-
 .../rdl/rule/RuleDefinitionBackendHandler.java     |  6 ++--
 12 files changed, 70 insertions(+), 39 deletions(-)

diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/metadata/FederationDatabaseMetaData.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/metadata/FederationDatabaseMetaData.java
index 051090f5f9a..0272fd6b288 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/metadata/FederationDatabaseMetaData.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/main/java/org/apache/shardingsphere/infra/federation/optimizer/metadata/FederationDatabaseMetaData.java
@@ -49,6 +49,7 @@ public final class FederationDatabaseMetaData {
      *
      * @param metaData table meta data to be updated
      */
+    // TODO Remove this when search path are finished
     public void put(final TableMetaData metaData) {
         if (schemas.containsKey(name)) {
             schemas.get(name).put(metaData);
@@ -59,14 +60,43 @@ public final class FederationDatabaseMetaData {
         }
     }
     
+    /**
+     * Add table meta data.
+     *
+     * @param schemaName schema name
+     * @param metaData table meta data to be updated
+     */
+    public void put(final String schemaName, final TableMetaData metaData) {
+        if (schemas.containsKey(schemaName)) {
+            schemas.get(schemaName).put(metaData);
+        } else {
+            Map<String, TableMetaData> tableMetaData = new LinkedHashMap<>();
+            tableMetaData.put(schemaName, metaData);
+            schemas.put(schemaName, new FederationSchemaMetaData(schemaName, 
tableMetaData));
+        }
+    }
+    
     /**
      * Remove table meta data.
      *
      * @param tableName table name to be removed
      */
+    // TODO Remove this when search path are finished
     public void remove(final String tableName) {
-        if (schemas.containsKey(name)) {
+        if (schemas.containsKey(tableName)) {
             schemas.get(name).remove(tableName);
         }
     }
+    
+    /**
+     * Remove table meta data.
+     *
+     * @param schemaName schema name
+     * @param tableName table name to be removed
+     */
+    public void remove(final String schemaName, final String tableName) {
+        if (schemas.containsKey(schemaName)) {
+            schemas.get(schemaName).remove(tableName);
+        }
+    }
 }
diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 79b860e4a2f..df2a1740b16 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -166,20 +166,21 @@ public final class ContextManager implements 
AutoCloseable {
      * Alter database.
      *
      * @param databaseName database name
+     * @param schemaName schema name
      * @param changedTableMetaData changed table meta data
      * @param deletedTable deleted table
      */
-    public void alterDatabase(final String databaseName, final TableMetaData 
changedTableMetaData, final String deletedTable) {
-        Optional.ofNullable(changedTableMetaData).ifPresent(optional -> 
alterTableSchema(databaseName, optional));
-        Optional.ofNullable(deletedTable).ifPresent(optional -> 
deleteTableSchema(databaseName, optional));
+    public void alterDatabase(final String databaseName, final String 
schemaName, final TableMetaData changedTableMetaData, final String 
deletedTable) {
+        Optional.ofNullable(changedTableMetaData).ifPresent(optional -> 
alterTableSchema(databaseName, schemaName, optional));
+        Optional.ofNullable(deletedTable).ifPresent(optional -> 
deleteTable(databaseName, schemaName, optional));
     }
     
-    private void alterTableSchema(final String databaseName, final 
TableMetaData changedTableMetaData) {
+    private void alterTableSchema(final String databaseName, final String 
schemaName, final TableMetaData changedTableMetaData) {
         ShardingSphereMetaData metaData = 
metaDataContexts.getMetaData(databaseName);
         alterSingleTableDataNodes(databaseName, metaData, 
changedTableMetaData);
         FederationDatabaseMetaData databaseMetaData = 
metaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases().get(databaseName);
-        metaData.getDefaultSchema().put(changedTableMetaData.getName(), 
changedTableMetaData);
-        databaseMetaData.put(changedTableMetaData);
+        
metaData.getSchemaByName(schemaName).put(changedTableMetaData.getName(), 
changedTableMetaData);
+        databaseMetaData.put(schemaName, changedTableMetaData);
         
metaDataContexts.getOptimizerContext().getPlannerContexts().put(databaseName, 
OptimizerPlannerContextFactory.create(databaseMetaData));
     }
     
@@ -196,11 +197,11 @@ public final class ContextManager implements 
AutoCloseable {
         metaData.getRuleMetaData().getRules().addAll(rules);
     }
     
-    private void deleteTableSchema(final String databaseName, final String 
deletedTable) {
+    private void deleteTable(final String databaseName, final String 
schemaName, final String deletedTable) {
         ShardingSphereMetaData metaData = 
metaDataContexts.getMetaData(databaseName);
+        metaData.getSchemaByName(schemaName).remove(deletedTable);
         FederationDatabaseMetaData databaseMetaData = 
metaDataContexts.getOptimizerContext().getFederationMetaData().getDatabases().get(databaseName);
-        metaData.getDefaultSchema().remove(deletedTable);
-        databaseMetaData.remove(deletedTable);
+        databaseMetaData.remove(schemaName, deletedTable);
         
metaDataContexts.getOptimizerContext().getPlannerContexts().put(databaseName, 
OptimizerPlannerContextFactory.create(databaseMetaData));
     }
     
diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java
index 93a938e10ac..27325714dc3 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java
@@ -55,7 +55,7 @@ public final class MetaDataPersistService {
     
     private final SchemaMetaDataPersistService schemaMetaDataService;
     
-    private final DatabaseRulePersistService schemaRuleService;
+    private final DatabaseRulePersistService databaseRulePersistService;
     
     private final GlobalRulePersistService globalRuleService;
     
@@ -69,7 +69,7 @@ public final class MetaDataPersistService {
         this.repository = repository;
         dataSourceService = new DataSourcePersistService(repository);
         schemaMetaDataService = new SchemaMetaDataPersistService(repository);
-        schemaRuleService = new DatabaseRulePersistService(repository);
+        databaseRulePersistService = new 
DatabaseRulePersistService(repository);
         globalRuleService = new GlobalRulePersistService(repository);
         propsService = new PropertiesPersistService(repository);
         computeNodePersistService = new ComputeNodePersistService(repository);
@@ -91,7 +91,7 @@ public final class MetaDataPersistService {
         for (Entry<String, ? extends DatabaseConfiguration> entry : 
schemaConfigs.entrySet()) {
             String schemaName = entry.getKey();
             dataSourceService.persist(schemaName, 
getDataSourcePropertiesMap(entry.getValue().getDataSources()), isOverwrite);
-            schemaRuleService.persist(schemaName, 
entry.getValue().getRuleConfigurations(), isOverwrite);
+            databaseRulePersistService.persist(schemaName, 
entry.getValue().getRuleConfigurations(), isOverwrite);
         }
     }
     
diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistServiceTest.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistServiceTest.java
index 682e42ada7f..f272a8ac943 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistServiceTest.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistServiceTest.java
@@ -66,7 +66,7 @@ public final class MetaDataPersistServiceTest {
     private DataSourcePersistService dataSourceService;
     
     @Mock
-    private DatabaseRulePersistService schemaRuleService;
+    private DatabaseRulePersistService databaseRulePersistService;
     
     @Mock
     private GlobalRulePersistService globalRuleService;
@@ -83,7 +83,7 @@ public final class MetaDataPersistServiceTest {
     public void setUp() throws ReflectiveOperationException {
         metaDataPersistService = new 
MetaDataPersistService(mock(PersistRepository.class));
         setField("dataSourceService", dataSourceService);
-        setField("schemaRuleService", schemaRuleService);
+        setField("databaseRulePersistService", databaseRulePersistService);
         setField("globalRuleService", globalRuleService);
         setField("propsService", propsService);
         setField("computeNodePersistService", computeNodePersistService);
@@ -104,7 +104,7 @@ public final class MetaDataPersistServiceTest {
         metaDataPersistService.persistConfigurations(
                 Collections.singletonMap("foo_db", new 
DataSourceProvidedDatabaseConfiguration(dataSourceMap, ruleConfigs)), 
globalRuleConfigs, props, false);
         verify(dataSourceService).persist("foo_db", 
createDataSourcePropertiesMap(dataSourceMap), false);
-        verify(schemaRuleService).persist("foo_db", ruleConfigs, false);
+        verify(databaseRulePersistService).persist("foo_db", ruleConfigs, 
false);
         verify(globalRuleService).persist(globalRuleConfigs, false);
         verify(propsService).persist(props, false);
     }
diff --git 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
index d060b360b7a..9e6e13005f9 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
@@ -145,7 +145,7 @@ public final class ClusterContextManagerBuilder implements 
ContextManagerBuilder
     private DatabaseConfiguration createDatabaseConfiguration(final String 
databaseName, final MetaDataPersistService metaDataPersistService,
                                                               final 
ContextManagerBuilderParameter parameter) {
         Map<String, DataSource> dataSources = 
metaDataPersistService.getEffectiveDataSources(databaseName, 
parameter.getDatabaseConfigs());
-        Collection<RuleConfiguration> databaseRuleConfigs = 
metaDataPersistService.getSchemaRuleService().load(databaseName);
+        Collection<RuleConfiguration> databaseRuleConfigs = 
metaDataPersistService.getDatabaseRulePersistService().load(databaseName);
         return new DataSourceProvidedDatabaseConfiguration(dataSources, 
databaseRuleConfigs);
     }
     
diff --git 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinator.java
 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinator.java
index 7c7c9937c50..db4472f3c08 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinator.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinator.java
@@ -123,7 +123,7 @@ public final class ClusterContextManagerCoordinator {
      */
     @Subscribe
     public synchronized void renew(final SchemaChangedEvent event) {
-        contextManager.alterDatabase(event.getDatabaseName(), 
event.getChangedTableMetaData(), event.getDeletedTable());
+        contextManager.alterDatabase(event.getDatabaseName(), 
event.getSchemaName(), event.getChangedTableMetaData(), 
event.getDeletedTable());
     }
     
     /**
@@ -133,7 +133,7 @@ public final class ClusterContextManagerCoordinator {
      */
     @Subscribe
     public synchronized void renew(final RuleConfigurationsChangedEvent event) 
{
-        if 
(metaDataPersistService.getDatabaseVersionPersistService().isActiveVersion(event.getDatabaseName(),
 event.getSchemaVersion())) {
+        if 
(metaDataPersistService.getDatabaseVersionPersistService().isActiveVersion(event.getDatabaseName(),
 event.getDatabaseVersion())) {
             contextManager.alterRuleConfiguration(event.getDatabaseName(), 
event.getRuleConfigurations());
             buildSpecialRules();
         }
@@ -146,7 +146,7 @@ public final class ClusterContextManagerCoordinator {
      */
     @Subscribe
     public synchronized void renew(final DataSourceChangedEvent event) {
-        if 
(metaDataPersistService.getDatabaseVersionPersistService().isActiveVersion(event.getDatabaseName(),
 event.getSchemaVersion())) {
+        if 
(metaDataPersistService.getDatabaseVersionPersistService().isActiveVersion(event.getDatabaseName(),
 event.getDatabaseVersion())) {
             
contextManager.alterDataSourceConfiguration(event.getDatabaseName(), 
event.getDataSourcePropertiesMap());
             buildSpecialRules();
         }
@@ -159,12 +159,12 @@ public final class ClusterContextManagerCoordinator {
      */
     @Subscribe
     public synchronized void renew(final DisabledStateChangedEvent event) {
-        QualifiedDatabase qualifiedSchema = event.getQualifiedSchema();
-        
contextManager.getMetaDataContexts().getMetaDataMap().get(qualifiedSchema.getDatabaseName()).getRuleMetaData().getRules()
+        QualifiedDatabase qualifiedDatabase = event.getQualifiedSchema();
+        
contextManager.getMetaDataContexts().getMetaDataMap().get(qualifiedDatabase.getDatabaseName()).getRuleMetaData().getRules()
                 .stream()
                 .filter(each -> each instanceof StatusContainedRule)
                 .forEach(each -> ((StatusContainedRule) each)
-                        .updateStatus(new 
DataSourceNameDisabledEvent(qualifiedSchema, event.isDisabled())));
+                        .updateStatus(new 
DataSourceNameDisabledEvent(qualifiedDatabase, event.isDisabled())));
     }
     
     /**
@@ -174,12 +174,12 @@ public final class ClusterContextManagerCoordinator {
      */
     @Subscribe
     public synchronized void renew(final PrimaryStateChangedEvent event) {
-        QualifiedDatabase qualifiedSchema = event.getQualifiedDatabase();
-        
contextManager.getMetaDataContexts().getMetaDataMap().get(qualifiedSchema.getDatabaseName()).getRuleMetaData().getRules()
+        QualifiedDatabase qualifiedDatabase = event.getQualifiedDatabase();
+        
contextManager.getMetaDataContexts().getMetaDataMap().get(qualifiedDatabase.getDatabaseName()).getRuleMetaData().getRules()
                 .stream()
                 .filter(each -> each instanceof StatusContainedRule)
                 .forEach(each -> ((StatusContainedRule) each)
-                        .updateStatus(new 
PrimaryDataSourceChangedEvent(qualifiedSchema)));
+                        .updateStatus(new 
PrimaryDataSourceChangedEvent(qualifiedDatabase)));
     }
     
     /**
@@ -266,7 +266,7 @@ public final class ClusterContextManagerCoordinator {
     @Subscribe
     public synchronized void renew(final SchemaVersionChangedEvent event) {
         Map<String, DataSourceProperties> dataSourcePropertiesMap = 
metaDataPersistService.getDataSourceService().load(event.getDatabaseName(), 
event.getActiveVersion());
-        Collection<RuleConfiguration> ruleConfigs = 
metaDataPersistService.getSchemaRuleService().load(event.getDatabaseName(), 
event.getActiveVersion());
+        Collection<RuleConfiguration> ruleConfigs = 
metaDataPersistService.getDatabaseRulePersistService().load(event.getDatabaseName(),
 event.getActiveVersion());
         
contextManager.alterDataSourceAndRuleConfiguration(event.getDatabaseName(), 
dataSourcePropertiesMap, ruleConfigs);
     }
     
@@ -308,8 +308,8 @@ public final class ClusterContextManagerCoordinator {
         if 
(!metaDataPersistService.getDataSourceService().isExisted(databaseName)) {
             
metaDataPersistService.getDataSourceService().persist(databaseName, new 
LinkedHashMap<>());
         }
-        if 
(!metaDataPersistService.getSchemaRuleService().isExisted(databaseName)) {
-            
metaDataPersistService.getSchemaRuleService().persist(databaseName, new 
LinkedList<>());
+        if 
(!metaDataPersistService.getDatabaseRulePersistService().isExisted(databaseName))
 {
+            
metaDataPersistService.getDatabaseRulePersistService().persist(databaseName, 
new LinkedList<>());
         }
     }
     
diff --git 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/config/event/datasource/DataSourceChangedEvent.java
 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/config/event/datasource/DataSourceChangedEvent.java
index 0bc1ada9df5..73ac99fd034 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/config/event/datasource/DataSourceChangedEvent.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/config/event/datasource/DataSourceChangedEvent.java
@@ -33,7 +33,7 @@ public final class DataSourceChangedEvent implements 
GovernanceEvent {
     
     private final String databaseName;
     
-    private final String schemaVersion;
+    private final String databaseVersion;
     
     private final Map<String, DataSourceProperties> dataSourcePropertiesMap;
 }
diff --git 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/config/event/rule/RuleConfigurationsChangedEvent.java
 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/config/event/rule/RuleConfigurationsChangedEvent.java
index ec1deeee7ed..fc74df70b14 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/config/event/rule/RuleConfigurationsChangedEvent.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/config/event/rule/RuleConfigurationsChangedEvent.java
@@ -33,7 +33,7 @@ public final class RuleConfigurationsChangedEvent implements 
GovernanceEvent {
     
     private final String databaseName;
     
-    private final String schemaVersion;
+    private final String databaseVersion;
     
     private final Collection<RuleConfiguration> ruleConfigurations;
 }
diff --git 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
index 18b75963f98..cf6c9c3b4c8 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
@@ -143,7 +143,7 @@ public final class ClusterContextManagerCoordinatorTest {
     public void assertDatabaseAdd() throws SQLException {
         DatabaseAddedEvent event = new DatabaseAddedEvent("db_add");
         
when(metaDataPersistService.getDataSourceService().load("db_add")).thenReturn(getDataSourcePropertiesMap());
-        
when(metaDataPersistService.getSchemaRuleService().load("db_add")).thenReturn(Collections.emptyList());
+        
when(metaDataPersistService.getDatabaseRulePersistService().load("db_add")).thenReturn(Collections.emptyList());
         coordinator.renew(event);
         
assertNotNull(contextManager.getMetaDataContexts().getMetaData("db_add"));
         
assertNotNull(contextManager.getMetaDataContexts().getMetaData("db_add").getResource().getDataSources());
@@ -180,7 +180,7 @@ public final class ClusterContextManagerCoordinatorTest {
         SchemaChangedEvent event = new SchemaChangedEvent("db", "db", 
changedTableMetaData, null);
         coordinator.renew(event);
         
assertTrue(contextManager.getMetaDataContexts().getAllDatabaseNames().contains("db"));
-        
verify(contextManager.getMetaDataContexts().getMetaData("db").getDefaultSchema()).put(eq("t_order"),
 eq(event.getChangedTableMetaData()));
+        
verify(contextManager.getMetaDataContexts().getMetaData("db").getSchemaByName("db")).put(eq("t_order"),
 eq(event.getChangedTableMetaData()));
     }
     
     @Test
@@ -321,7 +321,7 @@ public final class ClusterContextManagerCoordinatorTest {
     @Test
     public void assertRenewSchemaVersionChangedEvent() {
         when(metaDataPersistService.getDataSourceService().load("db", 
"1")).thenReturn(getVersionChangedDataSourcePropertiesMap());
-        when(metaDataPersistService.getSchemaRuleService().load("db", 
"1")).thenReturn(Collections.emptyList());
+        when(metaDataPersistService.getDatabaseRulePersistService().load("db", 
"1")).thenReturn(Collections.emptyList());
         SchemaVersionChangedEvent schemaVersionChangedEvent = new 
SchemaVersionChangedEvent("db", "1");
         Map<String, DataSource> dataSourceMap = initContextManager();
         coordinator.renew(schemaVersionChangedEvent);
diff --git 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
index 5b16ef5cf41..9bc6d045c7b 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
@@ -88,7 +88,7 @@ public final class StandaloneContextManagerBuilder implements 
ContextManagerBuil
     private DatabaseConfiguration createDatabaseConfiguration(final String 
databaseName, final MetaDataPersistService metaDataPersistService,
                                                               final 
ContextManagerBuilderParameter parameter) {
         Map<String, DataSource> dataSources = 
metaDataPersistService.getEffectiveDataSources(databaseName, 
parameter.getDatabaseConfigs());
-        Collection<RuleConfiguration> databaseRuleConfigs = 
metaDataPersistService.getSchemaRuleService().load(databaseName);
+        Collection<RuleConfiguration> databaseRuleConfigs = 
metaDataPersistService.getDatabaseRulePersistService().load(databaseName);
         return new DataSourceProvidedDatabaseConfiguration(dataSources, 
databaseRuleConfigs);
     }
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
index ae9832f060a..c45d1be7024 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
@@ -141,7 +141,7 @@ public final class ImportDatabaseConfigurationHandler 
extends UpdatableRALBacken
         
shardingSphereMetaData.getRuleMetaData().getConfigurations().addAll(toBeUpdatedRuleConfigs);
         
ProxyContext.getInstance().getContextManager().renewMetaDataContexts(metaDataContexts);
         Optional<MetaDataPersistService> metaDataPersistService = 
metaDataContexts.getMetaDataPersistService();
-        metaDataPersistService.ifPresent(op -> 
op.getSchemaRuleService().persist(databaseName, toBeUpdatedRuleConfigs));
+        metaDataPersistService.ifPresent(op -> 
op.getDatabaseRulePersistService().persist(databaseName, 
toBeUpdatedRuleConfigs));
     }
     
     private void checkDatabaseName(final String databaseName) {
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/RuleDefinitionBackendHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/RuleDefinitionBackendHandler.java
index 3aad36cfe9b..4332d871fab 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/RuleDefinitionBackendHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/RuleDefinitionBackendHandler.java
@@ -153,14 +153,14 @@ public final class RuleDefinitionBackendHandler<T extends 
RuleDefinitionStatemen
             if (!newVersion.isPresent()) {
                 throw new RuntimeException(String.format("Unable to get a new 
version for schema: %s", shardingSphereMetaData.getName()));
             }
-            
metaDataPersistService.get().getSchemaRuleService().persist(shardingSphereMetaData.getName(),
 newVersion.get(), buildAlteredRuleConfigurations(shardingSphereMetaData, 
sqlStatement,
-                    updater, currentRuleConfig, preprocessor));
+            
metaDataPersistService.get().getDatabaseRulePersistService().persist(shardingSphereMetaData.getName(),
 newVersion.get(),
+                    buildAlteredRuleConfigurations(shardingSphereMetaData, 
sqlStatement, updater, currentRuleConfig, preprocessor));
             ShardingSphereEventBus.getInstance().post(new 
SchemaVersionPreparedEvent(newVersion.get(), shardingSphereMetaData.getName()));
         }
     }
     
     private void persistRuleConfigurationChange(final ShardingSphereMetaData 
shardingSphereMetaData) {
-        
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaDataPersistService().ifPresent(optional
 -> optional.getSchemaRuleService().persist(
+        
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaDataPersistService().ifPresent(optional
 -> optional.getDatabaseRulePersistService().persist(
                 shardingSphereMetaData.getName(), 
shardingSphereMetaData.getRuleMetaData().getConfigurations()));
     }
     

Reply via email to