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 <[email protected]>
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);
}