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); }