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

menghaoran 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 7113be2578b Refactor DatabaseMetaDataPersistFacade (#36834)
7113be2578b is described below

commit 7113be2578bed2fc6327fdffceaacc085eeaed20
Author: Haoran Meng <[email protected]>
AuthorDate: Fri Oct 10 11:19:48 2025 +0800

    Refactor DatabaseMetaDataPersistFacade (#36834)
---
 .../metadata/DatabaseMetaDataPersistFacade.java    | 22 +++------------
 .../service/SchemaMetaDataPersistService.java      | 24 ----------------
 .../DatabaseMetaDataPersistFacadeTest.java         |  8 ++----
 .../service/SchemaMetaDataPersistServiceTest.java  | 33 ----------------------
 .../ClusterMetaDataManagerPersistService.java      |  6 ++--
 .../StandaloneMetaDataManagerPersistService.java   |  6 ++--
 ...tandaloneMetaDataManagerPersistServiceTest.java |  2 +-
 7 files changed, 14 insertions(+), 87 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/DatabaseMetaDataPersistFacade.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/DatabaseMetaDataPersistFacade.java
index e382a7352c9..32dc4fceb03 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/DatabaseMetaDataPersistFacade.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/DatabaseMetaDataPersistFacade.java
@@ -69,31 +69,17 @@ public final class DatabaseMetaDataPersistFacade {
     }
     
     /**
-     * Persist reload meta data by alter.
+     * Persist reload meta data.
      *
      * @param databaseName database name
      * @param reloadDatabase reload database
      * @param currentDatabase current database
      */
-    public void persistReloadDatabaseByAlter(final String databaseName, final 
ShardingSphereDatabase reloadDatabase, final ShardingSphereDatabase 
currentDatabase) {
+    public void persistReloadDatabase(final String databaseName, final 
ShardingSphereDatabase reloadDatabase, final ShardingSphereDatabase 
currentDatabase) {
         Collection<ShardingSphereSchema> toBeAlteredSchemasWithTablesDropped = 
GenericSchemaManager.getToBeAlteredSchemasWithTablesDropped(reloadDatabase, 
currentDatabase);
         Collection<ShardingSphereSchema> toBeAlteredSchemasWithTablesAdded = 
GenericSchemaManager.getToBeAlteredSchemasWithTablesAdded(reloadDatabase, 
currentDatabase);
-        toBeAlteredSchemasWithTablesAdded.forEach(each -> 
schema.alterByRuleAltered(databaseName, each));
-        toBeAlteredSchemasWithTablesDropped.forEach(each -> 
table.drop(databaseName, each.getName(), each.getAllTables()));
-    }
-    
-    /**
-     * Persist reload meta data by drop.
-     *
-     * @param databaseName database name
-     * @param reloadDatabase reload database
-     * @param currentDatabase current database
-     */
-    public void persistReloadDatabaseByDrop(final String databaseName, final 
ShardingSphereDatabase reloadDatabase, final ShardingSphereDatabase 
currentDatabase) {
-        Collection<ShardingSphereSchema> toBeAlteredSchemasWithTablesDropped = 
GenericSchemaManager.getToBeAlteredSchemasWithTablesDropped(reloadDatabase, 
currentDatabase);
-        Collection<ShardingSphereSchema> toBeAlteredSchemasWithTablesAdded = 
GenericSchemaManager.getToBeAlteredSchemasWithTablesAdded(reloadDatabase, 
currentDatabase);
-        toBeAlteredSchemasWithTablesAdded.forEach(each -> 
schema.alterByRuleDropped(databaseName, each));
-        toBeAlteredSchemasWithTablesDropped.forEach(each -> 
table.drop(databaseName, each.getName(), each.getAllTables()));
+        toBeAlteredSchemasWithTablesAdded.forEach(each -> 
table.persist(databaseName, each.getName().toLowerCase(), each.getAllTables()));
+        toBeAlteredSchemasWithTablesDropped.forEach(each -> 
table.drop(databaseName, each.getName().toLowerCase(), each.getAllTables()));
     }
     
     /**
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/SchemaMetaDataPersistService.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/SchemaMetaDataPersistService.java
index 8754adeff4a..ba57cd950d9 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/SchemaMetaDataPersistService.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/SchemaMetaDataPersistService.java
@@ -78,30 +78,6 @@ public final class SchemaMetaDataPersistService {
         GenericSchemaManager.getToBeDroppedTables(schema, 
currentSchema).forEach(each -> tableMetaDataPersistService.drop(databaseName, 
schemaName, each.getName()));
     }
     
-    /**
-     * Alter schema by rule altered.
-     *
-     * @param databaseName database name
-     * @param schema to be altered schema
-     */
-    public void alterByRuleAltered(final String databaseName, final 
ShardingSphereSchema schema) {
-        String schemaName = schema.getName().toLowerCase();
-        if (schema.isEmpty()) {
-            add(databaseName, schemaName);
-        }
-        tableMetaDataPersistService.persist(databaseName, schemaName, 
schema.getAllTables());
-    }
-    
-    /**
-     * Alter schema by rule dropped.
-     *
-     * @param databaseName database name
-     * @param schema to be altered schema
-     */
-    public void alterByRuleDropped(final String databaseName, final 
ShardingSphereSchema schema) {
-        tableMetaDataPersistService.persist(databaseName, schema.getName(), 
schema.getAllTables());
-    }
-    
     /**
      * Load schemas.
      *
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/DatabaseMetaDataPersistFacadeTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/DatabaseMetaDataPersistFacadeTest.java
index 1a4e828f020..dd1fa517e99 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/DatabaseMetaDataPersistFacadeTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/DatabaseMetaDataPersistFacadeTest.java
@@ -65,13 +65,12 @@ class DatabaseMetaDataPersistFacadeTest {
     }
     
     @Test
-    void assertPersistReloadDatabaseByAlter() {
+    void assertPersistReloadDatabase() {
         ShardingSphereSchema toBeDeletedSchema = new 
ShardingSphereSchema("to_be_deleted");
         ShardingSphereSchema toBeAddedSchema = new 
ShardingSphereSchema("to_be_added");
         
when(GenericSchemaManager.getToBeAlteredSchemasWithTablesDropped(any(), 
any())).thenReturn(Collections.singleton(toBeDeletedSchema));
         when(GenericSchemaManager.getToBeAlteredSchemasWithTablesAdded(any(), 
any())).thenReturn(Collections.singleton(toBeAddedSchema));
-        databaseMetaDataFacade.persistReloadDatabaseByAlter("foo_db", 
mock(ShardingSphereDatabase.class), mock(ShardingSphereDatabase.class));
-        verify(schemaMetaDataService).alterByRuleAltered("foo_db", 
toBeAddedSchema);
+        databaseMetaDataFacade.persistReloadDatabase("foo_db", 
mock(ShardingSphereDatabase.class), mock(ShardingSphereDatabase.class));
         verify(tableMetaDataService).drop(eq("foo_db"), eq("to_be_deleted"), 
anyCollection());
     }
     
@@ -81,8 +80,7 @@ class DatabaseMetaDataPersistFacadeTest {
         ShardingSphereSchema toBeAlterSchema = new 
ShardingSphereSchema("to_be_altered");
         
when(GenericSchemaManager.getToBeAlteredSchemasWithTablesDropped(any(), 
any())).thenReturn(Collections.singleton(toBeDeletedSchema));
         when(GenericSchemaManager.getToBeAlteredSchemasWithTablesAdded(any(), 
any())).thenReturn(Collections.singleton(toBeAlterSchema));
-        databaseMetaDataFacade.persistReloadDatabaseByDrop("foo_db", 
mock(ShardingSphereDatabase.class), mock(ShardingSphereDatabase.class));
-        verify(schemaMetaDataService).alterByRuleDropped("foo_db", 
toBeAlterSchema);
+        databaseMetaDataFacade.persistReloadDatabase("foo_db", 
mock(ShardingSphereDatabase.class), mock(ShardingSphereDatabase.class));
         verify(tableMetaDataService).drop(eq("foo_db"), eq("to_be_deleted"), 
anyCollection());
     }
 }
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/SchemaMetaDataPersistServiceTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/SchemaMetaDataPersistServiceTest.java
index 2fcdf4c9a26..3986a7cd151 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/SchemaMetaDataPersistServiceTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/SchemaMetaDataPersistServiceTest.java
@@ -32,8 +32,6 @@ import java.util.Collections;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.mockito.ArgumentMatchers.anyCollection;
-import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
@@ -109,35 +107,4 @@ class SchemaMetaDataPersistServiceTest {
         assertThat(actual.iterator().next().getTable("foo_tbl"), is(table));
         assertThat(actual.iterator().next().getView("foo_view"), is(view));
     }
-    
-    @Test
-    void assertAlterSchemaByAlterConfigurationByRefresh() {
-        persistService.alterByRuleAltered("foo_db", new 
ShardingSphereSchema("foo_schema"));
-        
verify(repository).persist("/metadata/foo_db/schemas/foo_schema/tables", "");
-        verify(tableMetaDataPersistService).persist(eq("foo_db"), 
eq("foo_schema"), anyCollection());
-    }
-    
-    @Test
-    void assertAlterSchemaByAlterConfigurationWithNotEmptyTablesByRefresh() {
-        ShardingSphereTable table = mock(ShardingSphereTable.class);
-        when(table.getName()).thenReturn("foo_tbl");
-        persistService.alterByRuleAltered("foo_db", new 
ShardingSphereSchema("foo_schema", Collections.singletonList(table), 
Collections.emptyList()));
-        verify(repository, 
times(0)).persist("/metadata/foo_db/schemas/foo_schema/tables", "");
-        verify(tableMetaDataPersistService).persist(eq("foo_db"), 
eq("foo_schema"), anyCollection());
-    }
-    
-    @Test
-    void assertAlterSchemaByAlterConfigurationWithNotEmptyViewsByRefresh() {
-        ShardingSphereView view = mock(ShardingSphereView.class);
-        when(view.getName()).thenReturn("foo_view");
-        persistService.alterByRuleAltered("foo_db", new 
ShardingSphereSchema("foo_schema", Collections.emptyList(), 
Collections.singleton(view)));
-        verify(repository, 
times(0)).persist("/metadata/foo_db/schemas/foo_schema/tables", "");
-        verify(tableMetaDataPersistService).persist(eq("foo_db"), 
eq("foo_schema"), anyCollection());
-    }
-    
-    @Test
-    void assertAlterByRefreshByDropConfiguration() {
-        persistService.alterByRuleDropped("foo_db", new 
ShardingSphereSchema("foo_schema"));
-        verify(tableMetaDataPersistService).persist(eq("foo_db"), 
eq("foo_schema"), anyCollection());
-    }
 }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
index 191bdfd9992..b85ef469349 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
@@ -150,7 +150,7 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
         
Optional.ofNullable(reloadMetaDataContexts.getStatistics().getDatabaseStatistics(databaseName))
                 .ifPresent(optional -> 
optional.getSchemaStatisticsMap().forEach((schemaName, schemaStatistics) -> 
metaDataPersistFacade.getStatisticsService()
                         
.persist(originalMetaDataContexts.getMetaData().getDatabase(databaseName), 
schemaName, schemaStatistics)));
-        
metaDataPersistFacade.getDatabaseMetaDataFacade().persistReloadDatabaseByAlter(databaseName,
 reloadMetaDataContexts.getMetaData().getDatabase(databaseName),
+        
metaDataPersistFacade.getDatabaseMetaDataFacade().persistReloadDatabase(databaseName,
 reloadMetaDataContexts.getMetaData().getDatabase(databaseName),
                 
originalMetaDataContexts.getMetaData().getDatabase(databaseName));
     }
     
@@ -161,7 +161,7 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
             MetaDataContexts originalMetaDataContexts = new 
MetaDataContexts(metaDataContextManager.getMetaDataContexts().getMetaData(), 
metaDataContextManager.getMetaDataContexts().getStatistics());
             
metaDataPersistFacade.getDataSourceUnitService().delete(database.getName(), 
each);
             MetaDataContexts reloadMetaDataContexts = 
getReloadedMetaDataContexts(originalMetaDataContexts);
-            
metaDataPersistFacade.getDatabaseMetaDataFacade().persistReloadDatabaseByDrop(databaseName,
 reloadMetaDataContexts.getMetaData().getDatabase(databaseName),
+            
metaDataPersistFacade.getDatabaseMetaDataFacade().persistReloadDatabase(databaseName,
 reloadMetaDataContexts.getMetaData().getDatabase(databaseName),
                     
originalMetaDataContexts.getMetaData().getDatabase(databaseName));
             DatabaseStatistics databaseStatistics = 
reloadMetaDataContexts.getStatistics().getDatabaseStatistics(database.getName());
             if (null != databaseStatistics) {
@@ -191,7 +191,7 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
         MetaDataContexts originalMetaDataContexts = new 
MetaDataContexts(metaDataContextManager.getMetaDataContexts().getMetaData(), 
metaDataContextManager.getMetaDataContexts().getStatistics());
         
metaDataPersistFacade.getDatabaseRuleService().persist(database.getName(), 
Collections.singleton(toBeAlteredRuleConfig));
         MetaDataContexts reloadMetaDataContexts = 
getReloadedMetaDataContexts(originalMetaDataContexts);
-        
metaDataPersistFacade.getDatabaseMetaDataFacade().persistReloadDatabaseByAlter(
+        
metaDataPersistFacade.getDatabaseMetaDataFacade().persistReloadDatabase(
                 database.getName(), 
reloadMetaDataContexts.getMetaData().getDatabase(database.getName()), 
originalMetaDataContexts.getMetaData().getDatabase(database.getName()));
     }
     
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
index b956e826b8b..6e56b85e5f0 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
@@ -71,7 +71,7 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
         MetaDataContexts originalMetaDataContexts = new 
MetaDataContexts(metaDataContextManager.getMetaDataContexts().getMetaData(), 
metaDataContextManager.getMetaDataContexts().getStatistics());
         
metaDataPersistFacade.getDatabaseMetaDataFacade().getDatabase().add(databaseName);
         
metaDataContextManager.getDatabaseMetaDataManager().addDatabase(databaseName);
-        
metaDataPersistFacade.getDatabaseMetaDataFacade().persistReloadDatabaseByAlter(databaseName,
 
metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName),
+        
metaDataPersistFacade.getDatabaseMetaDataFacade().persistReloadDatabase(databaseName,
 
metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName),
                 
originalMetaDataContexts.getMetaData().getDatabase(databaseName));
         OrderedServicesCache.clearCache();
     }
@@ -163,7 +163,7 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
     private void afterStorageUnitsRegistered(final String databaseName, final 
MetaDataContexts originalMetaDataContexts,
                                              final Map<String, 
DataSourcePoolProperties> toBeRegisteredProps) {
         metaDataContextManager.getStorageUnitManager().register(databaseName, 
toBeRegisteredProps);
-        
metaDataPersistFacade.getDatabaseMetaDataFacade().persistReloadDatabaseByAlter(databaseName,
 
metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName),
+        
metaDataPersistFacade.getDatabaseMetaDataFacade().persistReloadDatabase(databaseName,
 
metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName),
                 
originalMetaDataContexts.getMetaData().getDatabase(databaseName));
         
metaDataContextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules()
                 .forEach(each -> ((GlobalRule) 
each).refresh(metaDataContextManager.getMetaDataContexts().getMetaData().getAllDatabases(),
 GlobalRuleChangedType.DATABASE_CHANGED));
@@ -179,7 +179,7 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
     
     private void afterStorageUnitsAltered(final String databaseName, final 
MetaDataContexts originalMetaDataContexts, final Map<String, 
DataSourcePoolProperties> toBeRegisteredProps) {
         metaDataContextManager.getStorageUnitManager().alter(databaseName, 
toBeRegisteredProps);
-        
metaDataPersistFacade.getDatabaseMetaDataFacade().persistReloadDatabaseByAlter(databaseName,
 
metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName),
+        
metaDataPersistFacade.getDatabaseMetaDataFacade().persistReloadDatabase(databaseName,
 
metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName),
                 
originalMetaDataContexts.getMetaData().getDatabase(databaseName));
         
metaDataContextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules()
                 .forEach(each -> ((GlobalRule) 
each).refresh(metaDataContextManager.getMetaDataContexts().getMetaData().getAllDatabases(),
 GlobalRuleChangedType.DATABASE_CHANGED));
diff --git 
a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
 
b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
index 6681f79eab2..59ff721eae6 100644
--- 
a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
+++ 
b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
@@ -81,7 +81,7 @@ class StandaloneMetaDataManagerPersistServiceTest {
         metaDataManagerPersistService.createDatabase("foo_db");
         
verify(metaDataContextManager.getDatabaseMetaDataManager()).addDatabase("foo_db");
         
verify(metaDataPersistFacade.getDatabaseMetaDataFacade().getDatabase()).add("foo_db");
-        
verify(metaDataPersistFacade.getDatabaseMetaDataFacade()).persistReloadDatabaseByAlter(eq("foo_db"),
 any(ShardingSphereDatabase.class), any(ShardingSphereDatabase.class));
+        
verify(metaDataPersistFacade.getDatabaseMetaDataFacade()).persistReloadDatabase(eq("foo_db"),
 any(ShardingSphereDatabase.class), any(ShardingSphereDatabase.class));
     }
     
     @Test

Reply via email to