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

zhangliang 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 c2c6f22ec27 Refactor DatabaseMetaDataPersistFacade (#35011)
c2c6f22ec27 is described below

commit c2c6f22ec27cb36db77650ce020d166ab06a09b4
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Sun Mar 16 14:37:52 2025 +0800

    Refactor DatabaseMetaDataPersistFacade (#35011)
---
 .../mode/metadata/persist/metadata/DatabaseMetaDataPersistFacade.java | 4 +++-
 .../persist/service/StandaloneMetaDataManagerPersistService.java      | 3 ++-
 2 files changed, 5 insertions(+), 2 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 66f7d398636..8ae46cc8fdd 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
@@ -38,6 +38,7 @@ import 
org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 
 import java.sql.SQLException;
 import java.util.Collection;
+import java.util.Map;
 import java.util.Map.Entry;
 
 /**
@@ -139,7 +140,8 @@ public final class DatabaseMetaDataPersistFacade {
         GenericSchemaBuilderMaterial material = new 
GenericSchemaBuilderMaterial(database.getResourceMetaData().getStorageUnits(),
                 database.getRuleMetaData().getRules(), 
reloadMetaDataContexts.getMetaData().getProps(), new 
DatabaseTypeRegistry(database.getProtocolType()).getDefaultSchemaName(databaseName));
         try {
-            for (Entry<String, ShardingSphereSchema> entry : 
GenericSchemaBuilder.build(database.getProtocolType(), material).entrySet()) {
+            Map<String, ShardingSphereSchema> schemas = 
GenericSchemaBuilder.build(database.getProtocolType(), material);
+            for (Entry<String, ShardingSphereSchema> entry : 
schemas.entrySet()) {
                 GenericSchemaManager.getToBeDroppedTables(entry.getValue(), 
database.getSchema(entry.getKey())).forEach(each -> table.drop(databaseName, 
entry.getKey(), each.getName()));
             }
         } catch (final SQLException ex) {
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 fe71b99d162..6e0cecf3991 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
@@ -189,7 +189,8 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
         for (String each : getToBeDroppedResourceNames(database.getName(), 
toBeDroppedStorageUnitNames)) {
             
metaDataPersistFacade.getDataSourceUnitService().delete(database.getName(), 
each);
             
metaDataContextManager.getStorageUnitManager().unregister(database.getName(), 
each);
-            
metaDataPersistFacade.getDatabaseMetaDataFacade().unregisterStorageUnits(database.getName(),
 metaDataContextManager.getMetaDataContexts());
+            MetaDataContexts reloadMetaDataContexts = 
metaDataContextManager.getMetaDataContexts();
+            
metaDataPersistFacade.getDatabaseMetaDataFacade().unregisterStorageUnits(database.getName(),
 reloadMetaDataContexts);
         }
         OrderedServicesCache.clearCache();
     }

Reply via email to