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 4216a773fa4 Add DatabaseMetaDataPersistFacade.alterSchema() (#35007)
4216a773fa4 is described below

commit 4216a773fa4d5876dd4dc2cb3e61241311b41d5b
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Sat Mar 15 23:09:21 2025 +0800

    Add DatabaseMetaDataPersistFacade.alterSchema() (#35007)
    
    * Add DatabaseMetaDataPersistFacade.alterSchema()
    
    * Add DatabaseMetaDataPersistFacade.alterSchema()
---
 .../metadata/DatabaseMetaDataPersistFacade.java    | 24 ++++++++++++++++++++++
 .../ClusterMetaDataManagerPersistService.java      |  7 +------
 .../StandaloneMetaDataManagerPersistService.java   |  7 +------
 3 files changed, 26 insertions(+), 12 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 e60a58d4d91..697d1da4d3d 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
@@ -18,6 +18,9 @@
 package org.apache.shardingsphere.mode.metadata.persist.metadata;
 
 import lombok.Getter;
+import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
+import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
+import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
 import 
org.apache.shardingsphere.mode.metadata.persist.metadata.service.DatabaseMetaDataPersistService;
 import 
org.apache.shardingsphere.mode.metadata.persist.metadata.service.SchemaMetaDataPersistService;
 import 
org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableMetaDataPersistService;
@@ -25,6 +28,8 @@ import 
org.apache.shardingsphere.mode.metadata.persist.metadata.service.ViewMeta
 import 
org.apache.shardingsphere.mode.metadata.persist.version.VersionPersistService;
 import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
 
+import java.util.Collection;
+
 /**
  * Database meta data persist facade.
  */
@@ -45,4 +50,23 @@ public final class DatabaseMetaDataPersistFacade {
         table = new TableMetaDataPersistService(repository, 
versionPersistService);
         view = new ViewMetaDataPersistService(repository, 
versionPersistService);
     }
+    
+    /**
+     * Persist schema.
+     *
+     * @param database database
+     * @param schemaName schema name
+     * @param alteredTables altered tables
+     * @param alteredViews altered views
+     * @param droppedTables dropped tables
+     * @param droppedViews dropped views
+     */
+    public void alterSchema(final ShardingSphereDatabase database, final 
String schemaName,
+                            final Collection<ShardingSphereTable> 
alteredTables, final Collection<ShardingSphereView> alteredViews,
+                            final Collection<String> droppedTables, final 
Collection<String> droppedViews) {
+        table.persist(database.getName(), schemaName, alteredTables);
+        view.persist(database.getName(), schemaName, alteredViews);
+        droppedTables.forEach(each -> table.drop(database.getName(), 
schemaName, each));
+        droppedViews.forEach(each -> view.drop(database.getName(), schemaName, 
each));
+    }
 }
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 86b8e7e15d3..0a111579274 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
@@ -38,7 +38,6 @@ import 
org.apache.shardingsphere.mode.manager.cluster.persist.coordinator.databa
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistFacade;
-import 
org.apache.shardingsphere.mode.metadata.persist.metadata.DatabaseMetaDataPersistFacade;
 import 
org.apache.shardingsphere.mode.metadata.refresher.metadata.util.TableRefreshUtils;
 import 
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
@@ -95,11 +94,7 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
     public void alterSchema(final ShardingSphereDatabase database, final 
String schemaName,
                             final Collection<ShardingSphereTable> 
alteredTables, final Collection<ShardingSphereView> alteredViews,
                             final Collection<String> droppedTables, final 
Collection<String> droppedViews) {
-        DatabaseMetaDataPersistFacade databaseMetaDataFacade = 
metaDataPersistFacade.getDatabaseMetaDataFacade();
-        databaseMetaDataFacade.getTable().persist(database.getName(), 
schemaName, alteredTables);
-        databaseMetaDataFacade.getView().persist(database.getName(), 
schemaName, alteredViews);
-        droppedTables.forEach(each -> 
databaseMetaDataFacade.getTable().drop(database.getName(), schemaName, each));
-        droppedViews.forEach(each -> 
databaseMetaDataFacade.getView().drop(database.getName(), schemaName, each));
+        
metaDataPersistFacade.getDatabaseMetaDataFacade().alterSchema(database, 
schemaName, alteredTables, alteredViews, droppedTables, droppedViews);
     }
     
     @Override
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 174e572d2cc..f36a724f9d5 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
@@ -38,7 +38,6 @@ import 
org.apache.shardingsphere.mode.metadata.changed.RuleItemChangedNodePathBu
 import org.apache.shardingsphere.mode.metadata.manager.ActiveVersionChecker;
 import org.apache.shardingsphere.mode.metadata.manager.MetaDataContextManager;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistFacade;
-import 
org.apache.shardingsphere.mode.metadata.persist.metadata.DatabaseMetaDataPersistFacade;
 import 
org.apache.shardingsphere.mode.metadata.refresher.metadata.util.TableRefreshUtils;
 import 
org.apache.shardingsphere.mode.node.path.type.database.metadata.rule.DatabaseRuleNodePath;
 import org.apache.shardingsphere.mode.node.path.version.MetaDataVersion;
@@ -100,11 +99,7 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
     public void alterSchema(final ShardingSphereDatabase database, final 
String schemaName,
                             final Collection<ShardingSphereTable> 
alteredTables, final Collection<ShardingSphereView> alteredViews,
                             final Collection<String> droppedTables, final 
Collection<String> droppedViews) {
-        DatabaseMetaDataPersistFacade databaseMetaDataFacade = 
metaDataPersistFacade.getDatabaseMetaDataFacade();
-        databaseMetaDataFacade.getTable().persist(database.getName(), 
schemaName, alteredTables);
-        databaseMetaDataFacade.getView().persist(database.getName(), 
schemaName, alteredViews);
-        droppedTables.forEach(each -> 
databaseMetaDataFacade.getTable().drop(database.getName(), schemaName, each));
-        droppedViews.forEach(each -> 
databaseMetaDataFacade.getView().drop(database.getName(), schemaName, each));
+        
metaDataPersistFacade.getDatabaseMetaDataFacade().alterSchema(database, 
schemaName, alteredTables, alteredViews, droppedTables, droppedViews);
         afterAlterSchema(database, schemaName, alteredTables, alteredViews, 
droppedTables, droppedViews);
     }
     

Reply via email to