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 e08c69e185d split alter schema into tables and views for 
MetaDataManagerPersistService (#35202)
e08c69e185d is described below

commit e08c69e185d4dec20274efbcb13872b0a464d946
Author: Haoran Meng <menghaora...@gmail.com>
AuthorDate: Wed Apr 16 13:48:30 2025 +0800

    split alter schema into tables and views for MetaDataManagerPersistService 
(#35202)
---
 .../type/AlterViewFederationMetaDataRefresher.java |  4 +-
 .../CreateViewFederationMetaDataRefresher.java     |  3 +-
 .../type/DropViewFederationMetaDataRefresher.java  |  3 +-
 .../index/AlterIndexPushDownMetaDataRefresher.java |  2 +-
 .../CreateIndexPushDownMetaDataRefresher.java      |  2 +-
 .../index/DropIndexPushDownMetaDataRefresher.java  |  2 +-
 .../table/AlterTablePushDownMetaDataRefresher.java |  3 +-
 .../RenameTablePushDownMetaDataRefresher.java      |  4 +-
 .../view/AlterViewPushDownMetaDataRefresher.java   |  5 +-
 .../view/CreateViewPushDownMetaDataRefresher.java  |  5 +-
 .../view/DropViewPushDownMetaDataRefresher.java    |  4 +-
 .../service/MetaDataManagerPersistService.java     | 40 ++++++++++------
 .../ClusterMetaDataManagerPersistService.java      | 22 ++++++---
 .../ClusterMetaDataManagerPersistServiceTest.java  |  7 ---
 .../StandaloneMetaDataManagerPersistService.java   | 53 ++++++++++++----------
 ...tandaloneMetaDataManagerPersistServiceTest.java | 10 ----
 16 files changed, 91 insertions(+), 78 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/AlterViewFederationMetaDataRefresher.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/AlterViewFederationMetaDataRefresher.java
index 87d35027835..46a8f39f5d4 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/AlterViewFederationMetaDataRefresher.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/AlterViewFederationMetaDataRefresher.java
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterViewStatement;
 
 import java.util.Collection;
-import java.util.Collections;
 import java.util.LinkedList;
 import java.util.Optional;
 
@@ -48,7 +47,8 @@ public final class AlterViewFederationMetaDataRefresher 
implements FederationMet
             droppedViews.add(viewName);
         }
         sqlStatement.getViewDefinition().ifPresent(optional -> 
alteredViews.add(new ShardingSphereView(viewName, optional)));
-        metaDataManagerPersistService.alterSchema(database, schemaName, 
Collections.emptyList(), alteredViews, Collections.emptyList(), droppedViews);
+        metaDataManagerPersistService.alterViews(database, schemaName, 
alteredViews);
+        metaDataManagerPersistService.dropViews(database, schemaName, 
droppedViews);
     }
     
     @Override
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/CreateViewFederationMetaDataRefresher.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/CreateViewFederationMetaDataRefresher.java
index 0965df908ac..e9065ab52ab 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/CreateViewFederationMetaDataRefresher.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/CreateViewFederationMetaDataRefresher.java
@@ -34,8 +34,7 @@ public final class CreateViewFederationMetaDataRefresher 
implements FederationMe
     @Override
     public void refresh(final MetaDataManagerPersistService 
metaDataManagerPersistService, final ShardingSphereDatabase database, final 
String schemaName, final CreateViewStatement sqlStatement) {
         String viewName = 
TableRefreshUtils.getTableName(sqlStatement.getView().getTableName().getIdentifier(),
 sqlStatement.getDatabaseType());
-        metaDataManagerPersistService.alterSchema(database, schemaName,
-                Collections.emptyList(), Collections.singleton(new 
ShardingSphereView(viewName, sqlStatement.getViewDefinition())), 
Collections.emptyList(), Collections.emptyList());
+        metaDataManagerPersistService.alterViews(database, schemaName, 
Collections.singleton(new ShardingSphereView(viewName, 
sqlStatement.getViewDefinition())));
     }
     
     @Override
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/DropViewFederationMetaDataRefresher.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/DropViewFederationMetaDataRefresher.java
index bfae801a9d6..050b8c1a2f1 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/DropViewFederationMetaDataRefresher.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/federation/type/DropViewFederationMetaDataRefresher.java
@@ -23,7 +23,6 @@ import 
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistServ
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropViewStatement;
 
 import java.util.Collection;
-import java.util.Collections;
 import java.util.stream.Collectors;
 
 /**
@@ -34,7 +33,7 @@ public final class DropViewFederationMetaDataRefresher 
implements FederationMeta
     @Override
     public void refresh(final MetaDataManagerPersistService 
metaDataManagerPersistService, final ShardingSphereDatabase database, final 
String schemaName, final DropViewStatement sqlStatement) {
         Collection<String> droppedViews = 
sqlStatement.getViews().stream().map(each -> 
each.getTableName().getIdentifier().getValue()).collect(Collectors.toList());
-        metaDataManagerPersistService.alterSchema(database, schemaName, 
Collections.emptyList(), Collections.emptyList(), Collections.emptyList(), 
droppedViews);
+        metaDataManagerPersistService.dropViews(database, schemaName, 
droppedViews);
     }
     
     @Override
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/index/AlterIndexPushDownMetaDataRefresher.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/index/AlterIndexPushDownMetaDataRefresher.java
index 6acebb67d55..b78b5424d3a 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/index/AlterIndexPushDownMetaDataRefresher.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/index/AlterIndexPushDownMetaDataRefresher.java
@@ -61,7 +61,7 @@ public final class AlterIndexPushDownMetaDataRefresher 
implements PushDownMetaDa
         newTable.removeIndex(indexName);
         String renameIndexName = 
renameIndex.get().getIndexName().getIdentifier().getValue();
         newTable.putIndex(new ShardingSphereIndex(renameIndexName, new 
LinkedList<>(), false));
-        metaDataManagerPersistService.alterSchema(database, actualSchemaName, 
Collections.singleton(newTable), Collections.emptyList(), 
Collections.emptyList(), Collections.emptyList());
+        metaDataManagerPersistService.alterTables(database, actualSchemaName, 
Collections.singleton(newTable));
     }
     
     private Optional<String> findLogicTableName(final ShardingSphereSchema 
schema, final String indexName) {
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/index/CreateIndexPushDownMetaDataRefresher.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/index/CreateIndexPushDownMetaDataRefresher.java
index f54233271fc..395ccaeb791 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/index/CreateIndexPushDownMetaDataRefresher.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/index/CreateIndexPushDownMetaDataRefresher.java
@@ -53,7 +53,7 @@ public final class CreateIndexPushDownMetaDataRefresher 
implements PushDownMetaD
         ShardingSphereTable table = schema.getTable(tableName);
         ShardingSphereTable newTable = new 
ShardingSphereTable(table.getName(), table.getAllColumns(), 
table.getAllIndexes(), table.getAllConstraints(), table.getType());
         newTable.putIndex(new ShardingSphereIndex(indexName, new 
LinkedList<>(), false));
-        metaDataManagerPersistService.alterSchema(database, schemaName, 
Collections.singleton(newTable), Collections.emptyList(), 
Collections.emptyList(), Collections.emptyList());
+        metaDataManagerPersistService.alterTables(database, schemaName, 
Collections.singleton(newTable));
     }
     
     @Override
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/index/DropIndexPushDownMetaDataRefresher.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/index/DropIndexPushDownMetaDataRefresher.java
index af80c725fb8..f1498015374 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/index/DropIndexPushDownMetaDataRefresher.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/index/DropIndexPushDownMetaDataRefresher.java
@@ -57,7 +57,7 @@ public final class DropIndexPushDownMetaDataRefresher 
implements PushDownMetaDat
             ShardingSphereTable table = schema.getTable(logicTableName.get());
             ShardingSphereTable newTable = new 
ShardingSphereTable(table.getName(), table.getAllColumns(), 
table.getAllIndexes(), table.getAllConstraints(), table.getType());
             
newTable.removeIndex(each.getIndexName().getIdentifier().getValue());
-            metaDataManagerPersistService.alterSchema(database, 
actualSchemaName, Collections.singleton(newTable), Collections.emptyList(), 
Collections.emptyList(), Collections.emptyList());
+            metaDataManagerPersistService.alterTables(database, 
actualSchemaName, Collections.singleton(newTable));
         }
     }
     
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/AlterTablePushDownMetaDataRefresher.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/AlterTablePushDownMetaDataRefresher.java
index 478df486c00..08a54f66f19 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/AlterTablePushDownMetaDataRefresher.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/AlterTablePushDownMetaDataRefresher.java
@@ -56,7 +56,8 @@ public final class AlterTablePushDownMetaDataRefresher 
implements PushDownMetaDa
         } else {
             alteredTables.add(getTable(database, logicDataSourceNames, 
schemaName, tableName, props));
         }
-        metaDataManagerPersistService.alterSchema(database, schemaName, 
alteredTables, Collections.emptyList(), droppedTables, Collections.emptyList());
+        metaDataManagerPersistService.alterTables(database, schemaName, 
alteredTables);
+        metaDataManagerPersistService.dropTables(database, schemaName, 
droppedTables);
     }
     
     private ShardingSphereTable getTable(final ShardingSphereDatabase 
database, final Collection<String> logicDataSourceNames, final String 
schemaName,
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/RenameTablePushDownMetaDataRefresher.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/RenameTablePushDownMetaDataRefresher.java
index c6140665f42..b62d171fdce 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/RenameTablePushDownMetaDataRefresher.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/RenameTablePushDownMetaDataRefresher.java
@@ -28,7 +28,6 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.RenameT
 
 import java.sql.SQLException;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.LinkedList;
 
 /**
@@ -48,7 +47,8 @@ public final class RenameTablePushDownMetaDataRefresher 
implements PushDownMetaD
                     
each.getRenameTable().getTableName().getIdentifier().getValue(), 
toBeRenamedTable.getAllColumns(), toBeRenamedTable.getAllIndexes(), 
toBeRenamedTable.getAllConstraints()));
             droppedTables.add(toBeRenamedTableName);
         }
-        metaDataManagerPersistService.alterSchema(database, schemaName, 
alteredTables, Collections.emptyList(), droppedTables, Collections.emptyList());
+        metaDataManagerPersistService.alterTables(database, schemaName, 
alteredTables);
+        metaDataManagerPersistService.dropTables(database, schemaName, 
droppedTables);
     }
     
     @Override
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/view/AlterViewPushDownMetaDataRefresher.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/view/AlterViewPushDownMetaDataRefresher.java
index 4247c189be9..55212ae472d 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/view/AlterViewPushDownMetaDataRefresher.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/view/AlterViewPushDownMetaDataRefresher.java
@@ -69,7 +69,10 @@ public final class AlterViewPushDownMetaDataRefresher 
implements PushDownMetaDat
             alteredTables.add(schema.getTable(viewName));
             alteredViews.add(schema.getView(viewName));
         }
-        metaDataManagerPersistService.alterSchema(database, schemaName, 
alteredTables, alteredViews, droppedTables, droppedViews);
+        metaDataManagerPersistService.alterTables(database, schemaName, 
alteredTables);
+        metaDataManagerPersistService.alterViews(database, schemaName, 
alteredViews);
+        metaDataManagerPersistService.dropTables(database, schemaName, 
droppedTables);
+        metaDataManagerPersistService.dropViews(database, schemaName, 
droppedViews);
     }
     
     private ShardingSphereSchema getSchema(final ShardingSphereDatabase 
database, final Collection<String> logicDataSourceNames,
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/view/CreateViewPushDownMetaDataRefresher.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/view/CreateViewPushDownMetaDataRefresher.java
index 2fad140cccb..5ad7aac7944 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/view/CreateViewPushDownMetaDataRefresher.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/view/CreateViewPushDownMetaDataRefresher.java
@@ -57,9 +57,8 @@ public final class CreateViewPushDownMetaDataRefresher 
implements PushDownMetaDa
         Map<String, ShardingSphereSchema> schemas = 
GenericSchemaBuilder.build(Collections.singletonList(viewName), 
database.getProtocolType(), material);
         Optional<ShardingSphereTable> actualTableMetaData = 
Optional.ofNullable(schemas.get(schemaName)).map(optional -> 
optional.getTable(viewName));
         Preconditions.checkState(actualTableMetaData.isPresent(), "Load actual 
view metadata '%s' failed.", viewName);
-        metaDataManagerPersistService.alterSchema(database, schemaName,
-                Collections.singleton(actualTableMetaData.get()), 
Collections.singleton(new ShardingSphereView(viewName, 
sqlStatement.getViewDefinition())),
-                Collections.emptyList(), Collections.emptyList());
+        metaDataManagerPersistService.alterTables(database, schemaName, 
Collections.singleton(actualTableMetaData.get()));
+        metaDataManagerPersistService.alterViews(database, schemaName, 
Collections.singleton(new ShardingSphereView(viewName, 
sqlStatement.getViewDefinition())));
     }
     
     @Override
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/view/DropViewPushDownMetaDataRefresher.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/view/DropViewPushDownMetaDataRefresher.java
index 241174b6196..e5a85b6b7dd 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/view/DropViewPushDownMetaDataRefresher.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/view/DropViewPushDownMetaDataRefresher.java
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropViewStatement;
 
 import java.util.Collection;
-import java.util.Collections;
 import java.util.LinkedList;
 
 /**
@@ -44,7 +43,8 @@ public final class DropViewPushDownMetaDataRefresher 
implements PushDownMetaData
             droppedTables.add(viewName);
             droppedViews.add(viewName);
         }
-        metaDataManagerPersistService.alterSchema(database, schemaName, 
Collections.emptyList(), Collections.emptyList(), droppedTables, droppedViews);
+        metaDataManagerPersistService.dropTables(database, schemaName, 
droppedTables);
+        metaDataManagerPersistService.dropViews(database, schemaName, 
droppedViews);
     }
     
     @Override
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
index 356a8a0a15b..d4e0475f23b 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
@@ -55,19 +55,6 @@ public interface MetaDataManagerPersistService {
      */
     void createSchema(ShardingSphereDatabase database, String schemaName);
     
-    /**
-     * Alter schema.
-     *
-     * @param database database
-     * @param schemaName schema name
-     * @param alteredTables altered tables
-     * @param alteredViews altered views
-     * @param droppedTables dropped tables
-     * @param droppedViews dropped views
-     */
-    void alterSchema(ShardingSphereDatabase database, String schemaName,
-                     Collection<ShardingSphereTable> alteredTables, 
Collection<ShardingSphereView> alteredViews, Collection<String> droppedTables, 
Collection<String> droppedViews);
-    
     /**
      * Rename schema.
      *
@@ -103,6 +90,33 @@ public interface MetaDataManagerPersistService {
      */
     void dropTables(ShardingSphereDatabase database, String schemaName, 
Collection<String> tableNames);
     
+    /**
+     * Alter tables.
+     *
+     * @param database database
+     * @param schemaName schema name
+     * @param alteredTables altered tables
+     */
+    void alterTables(ShardingSphereDatabase database, String schemaName, 
Collection<ShardingSphereTable> alteredTables);
+    
+    /**
+     * Alter views.
+     *
+     * @param database database
+     * @param schemaName schema name
+     * @param alteredViews altered views
+     */
+    void alterViews(ShardingSphereDatabase database, String schemaName, 
Collection<ShardingSphereView> alteredViews);
+    
+    /**
+     * Drop views.
+     *
+     * @param database database
+     * @param schemaName schema name
+     * @param droppedViews dropped views
+     */
+    void dropViews(ShardingSphereDatabase database, String schemaName, 
Collection<String> droppedViews);
+    
     /**
      * Register storage units.
      *
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 b3c544f36f7..2146577f5c5 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
@@ -85,13 +85,6 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
         
metaDataPersistFacade.getDatabaseMetaDataFacade().getSchema().add(database.getName(),
 schemaName);
     }
     
-    @Override
-    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) {
-        
metaDataPersistFacade.getDatabaseMetaDataFacade().alterSchema(database, 
schemaName, alteredTables, alteredViews, droppedTables, droppedViews);
-    }
-    
     @Override
     public void renameSchema(final ShardingSphereDatabase database, final 
String schemaName, final String renameSchemaName) {
         
metaDataPersistFacade.getDatabaseMetaDataFacade().renameSchema(metaDataContextManager.getMetaDataContexts().getMetaData(),
 database, schemaName, renameSchemaName);
@@ -123,6 +116,21 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
         }
     }
     
+    @Override
+    public void alterTables(final ShardingSphereDatabase database, final 
String schemaName, final Collection<ShardingSphereTable> alteredTables) {
+        
metaDataPersistFacade.getDatabaseMetaDataFacade().getTable().persist(database.getName(),
 schemaName, alteredTables);
+    }
+    
+    @Override
+    public void alterViews(final ShardingSphereDatabase database, final String 
schemaName, final Collection<ShardingSphereView> alteredViews) {
+        
metaDataPersistFacade.getDatabaseMetaDataFacade().getView().persist(database.getName(),
 schemaName, alteredViews);
+    }
+    
+    @Override
+    public void dropViews(final ShardingSphereDatabase database, final String 
schemaName, final Collection<String> droppedViews) {
+        droppedViews.forEach(each -> 
metaDataPersistFacade.getDatabaseMetaDataFacade().getView().drop(database.getName(),
 schemaName, each));
+    }
+    
     @Override
     public void registerStorageUnits(final String databaseName, final 
Map<String, DataSourcePoolProperties> toBeRegisteredProps) {
         MetaDataContexts originalMetaDataContexts = new 
MetaDataContexts(metaDataContextManager.getMetaDataContexts().getMetaData(), 
metaDataContextManager.getMetaDataContexts().getStatistics());
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
index 5077242140e..6eb754e232c 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
@@ -94,13 +94,6 @@ class ClusterMetaDataManagerPersistServiceTest {
         
verify(metaDataPersistFacade.getDatabaseMetaDataFacade().getSchema()).add("foo_db",
 "foo_schema");
     }
     
-    @Test
-    void assertAlterSchema() {
-        metaDataManagerPersistService.alterSchema(new 
ShardingSphereDatabase("foo_db", mock(), mock(), mock(), 
Collections.emptyList()),
-                "foo_schema", Collections.emptyList(), 
Collections.emptyList(), Collections.emptyList(), Collections.emptyList());
-        
verify(metaDataPersistFacade.getDatabaseMetaDataFacade()).alterSchema(any(), 
eq("foo_schema"), anyCollection(), anyCollection(), anyCollection(), 
anyCollection());
-    }
-    
     @Test
     void assertRenameSchema() {
         ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
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 d55e5033665..4d6fe03db64 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
@@ -87,25 +87,6 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
         
metaDataContextManager.getDatabaseMetaDataManager().addSchema(database.getName(),
 schemaName);
     }
     
-    @Override
-    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) {
-        
metaDataPersistFacade.getDatabaseMetaDataFacade().alterSchema(database, 
schemaName, alteredTables, alteredViews, droppedTables, droppedViews);
-        afterAlterSchema(database, schemaName, alteredTables, alteredViews, 
droppedTables, droppedViews);
-    }
-    
-    private void afterAlterSchema(final ShardingSphereDatabase database, final 
String schemaName,
-                                  final Collection<ShardingSphereTable> 
alteredTables, final Collection<ShardingSphereView> alteredViews,
-                                  final Collection<String> droppedTables, 
final Collection<String> droppedViews) {
-        alteredTables.forEach(each -> 
metaDataContextManager.getDatabaseMetaDataManager().alterTable(database.getName(),
 schemaName, each));
-        alteredViews.forEach(each -> 
metaDataContextManager.getDatabaseMetaDataManager().alterView(database.getName(),
 schemaName, each));
-        droppedTables.forEach(each -> 
metaDataContextManager.getDatabaseMetaDataManager().dropTable(database.getName(),
 schemaName, each));
-        droppedViews.forEach(each -> 
metaDataContextManager.getDatabaseMetaDataManager().dropView(database.getName(),
 schemaName, each));
-        ShardingSphereMetaData metaData = 
metaDataContextManager.getMetaDataContexts().getMetaData();
-        metaData.getGlobalRuleMetaData().getRules().forEach(each -> 
((GlobalRule) each).refresh(metaData.getAllDatabases(), 
GlobalRuleChangedType.SCHEMA_CHANGED));
-    }
-    
     @Override
     public void renameSchema(final ShardingSphereDatabase database, final 
String schemaName, final String renameSchemaName) {
         
metaDataPersistFacade.getDatabaseMetaDataFacade().renameSchema(metaDataContextManager.getMetaDataContexts().getMetaData(),
 database, schemaName, renameSchemaName);
@@ -143,6 +124,32 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
         }
     }
     
+    @Override
+    public void alterTables(final ShardingSphereDatabase database, final 
String schemaName, final Collection<ShardingSphereTable> alteredTables) {
+        
metaDataPersistFacade.getDatabaseMetaDataFacade().getTable().persist(database.getName(),
 schemaName, alteredTables);
+        alteredTables.forEach(each -> 
metaDataContextManager.getDatabaseMetaDataManager().alterTable(database.getName(),
 schemaName, each));
+        ShardingSphereMetaData metaData = 
metaDataContextManager.getMetaDataContexts().getMetaData();
+        metaData.getGlobalRuleMetaData().getRules().forEach(each -> 
((GlobalRule) each).refresh(metaData.getAllDatabases(), 
GlobalRuleChangedType.SCHEMA_CHANGED));
+    }
+    
+    @Override
+    public void alterViews(final ShardingSphereDatabase database, final String 
schemaName, final Collection<ShardingSphereView> alteredViews) {
+        
metaDataPersistFacade.getDatabaseMetaDataFacade().getView().persist(database.getName(),
 schemaName, alteredViews);
+        alteredViews.forEach(each -> 
metaDataContextManager.getDatabaseMetaDataManager().alterView(database.getName(),
 schemaName, each));
+        ShardingSphereMetaData metaData = 
metaDataContextManager.getMetaDataContexts().getMetaData();
+        metaData.getGlobalRuleMetaData().getRules().forEach(each -> 
((GlobalRule) each).refresh(metaData.getAllDatabases(), 
GlobalRuleChangedType.SCHEMA_CHANGED));
+    }
+    
+    @Override
+    public void dropViews(final ShardingSphereDatabase database, final String 
schemaName, final Collection<String> droppedViews) {
+        droppedViews.forEach(each -> {
+            
metaDataPersistFacade.getDatabaseMetaDataFacade().getView().drop(database.getName(),
 schemaName, each);
+            
metaDataContextManager.getDatabaseMetaDataManager().dropView(database.getName(),
 schemaName, each);
+        });
+        ShardingSphereMetaData metaData = 
metaDataContextManager.getMetaDataContexts().getMetaData();
+        metaData.getGlobalRuleMetaData().getRules().forEach(each -> 
((GlobalRule) each).refresh(metaData.getAllDatabases(), 
GlobalRuleChangedType.SCHEMA_CHANGED));
+    }
+    
     @Override
     public void registerStorageUnits(final String databaseName, final 
Map<String, DataSourcePoolProperties> toBeRegisteredProps) {
         MetaDataContexts originalMetaDataContexts = new 
MetaDataContexts(metaDataContextManager.getMetaDataContexts().getMetaData(), 
metaDataContextManager.getMetaDataContexts().getStatistics());
@@ -214,7 +221,7 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
         alterRuleItem(database.getName(), metaDataVersions);
         Map<String, Collection<ShardingSphereTable>> schemaAndTablesMap = 
metaDataPersistFacade.getDatabaseMetaDataFacade().persistAlteredTables(
                 database.getName(), 
metaDataContextManager.getMetaDataContexts(), needReloadTables);
-        alterTables(database, schemaAndTablesMap);
+        alterSchemaTables(database, schemaAndTablesMap);
         OrderedServicesCache.clearCache();
     }
     
@@ -239,7 +246,7 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
         removeRuleItem(database.getName(), metaDataVersions);
         Map<String, Collection<ShardingSphereTable>> schemaAndTablesMap = 
metaDataPersistFacade.getDatabaseMetaDataFacade().persistAlteredTables(
                 database.getName(), 
metaDataContextManager.getMetaDataContexts(), needReloadTables);
-        alterTables(database, schemaAndTablesMap);
+        alterSchemaTables(database, schemaAndTablesMap);
         OrderedServicesCache.clearCache();
     }
     
@@ -259,7 +266,7 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
         return toBeAlteredRuleConfig.getLogicTableNames();
     }
     
-    private void alterTables(final ShardingSphereDatabase database, final 
Map<String, Collection<ShardingSphereTable>> schemaAndTablesMap) {
+    private void alterSchemaTables(final ShardingSphereDatabase database, 
final Map<String, Collection<ShardingSphereTable>> schemaAndTablesMap) {
         for (Entry<String, Collection<ShardingSphereTable>> entry : 
schemaAndTablesMap.entrySet()) {
             for (ShardingSphereTable each : entry.getValue()) {
                 
metaDataContextManager.getDatabaseMetaDataManager().alterTable(database.getName(),
 entry.getKey(), each);
@@ -274,7 +281,7 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
         metaDataContextManager.getDatabaseRuleItemManager().drop(new 
DatabaseRuleNodePath(database.getName(), ruleType, null));
         Map<String, Collection<ShardingSphereTable>> schemaAndTablesMap = 
metaDataPersistFacade.getDatabaseMetaDataFacade().persistAlteredTables(
                 database.getName(), 
metaDataContextManager.getMetaDataContexts(), needReloadTables);
-        alterTables(database, schemaAndTablesMap);
+        alterSchemaTables(database, schemaAndTablesMap);
         OrderedServicesCache.clearCache();
     }
     
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 f552fc05b4b..501aaedcef6 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
@@ -51,7 +51,6 @@ import java.util.Properties;
 
 import static 
org.apache.shardingsphere.test.matcher.ShardingSphereArgumentVerifyMatchers.deepEq;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyCollection;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
@@ -98,15 +97,6 @@ class StandaloneMetaDataManagerPersistServiceTest {
         
verify(metaDataPersistFacade.getDatabaseMetaDataFacade().getSchema()).add("foo_db",
 "foo_schema");
     }
     
-    @Test
-    void assertAlterSchema() {
-        DatabaseMetaDataPersistFacade databaseMetaDataFacade = 
mock(DatabaseMetaDataPersistFacade.class, RETURNS_DEEP_STUBS);
-        
when(metaDataPersistFacade.getDatabaseMetaDataFacade()).thenReturn(databaseMetaDataFacade);
-        metaDataManagerPersistService.alterSchema(new 
ShardingSphereDatabase("foo_db", mock(), mock(), mock(), 
Collections.emptyList()),
-                "foo_schema", Collections.emptyList(), 
Collections.emptyList(), Collections.emptyList(), Collections.emptyList());
-        verify(databaseMetaDataFacade).alterSchema(any(), eq("foo_schema"), 
anyCollection(), anyCollection(), anyCollection(), anyCollection());
-    }
-    
     @Test
     void assertRenameSchemaNameWithEmptyAlteredSchema() {
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
RETURNS_DEEP_STUBS);


Reply via email to