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 5cf0814fae8 Refactor MetaDataManagerPersistService.alterSchemaName 
(#34504)
5cf0814fae8 is described below

commit 5cf0814fae8fc5acfbf7dd235adf72ad51948812
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jan 26 12:47:21 2025 +0800

    Refactor MetaDataManagerPersistService.alterSchemaName (#34504)
    
    * Refactor SchemaMetaDataManager
    
    * Refactor SchemaMetaDataManager.dropTable and dropView
    
    * Refactor SchemaMetaDataManager.dropTable and dropView
    
    * Refactor MetaDataManagerPersistService.alterSchemaName
    
    * Refactor MetaDataManagerPersistService.alterSchemaName
    
    * Refactor MetaDataManagerPersistService.alterSchemaName
---
 .../service/ClusterMetaDataManagerPersistService.java      |  5 +++--
 .../service/ClusterMetaDataManagerPersistServiceTest.java  | 14 ++++++--------
 .../service/StandaloneMetaDataManagerPersistService.java   |  9 +++++----
 .../StandaloneMetaDataManagerPersistServiceTest.java       |  2 --
 4 files changed, 14 insertions(+), 16 deletions(-)

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 d8cfce67a47..33fc187b04c 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
@@ -103,9 +103,10 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
         ShardingSphereSchema schema = 
metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getSchema(schemaName);
         if (schema.isEmpty()) {
             
metaDataPersistService.getDatabaseMetaDataFacade().getSchema().add(databaseName,
 renameSchemaName);
+        } else {
+            
metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(databaseName,
 renameSchemaName, schema.getAllTables());
+            
metaDataPersistService.getDatabaseMetaDataFacade().getView().persist(databaseName,
 renameSchemaName, schema.getAllViews());
         }
-        
metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(databaseName,
 renameSchemaName, schema.getAllTables());
-        
metaDataPersistService.getDatabaseMetaDataFacade().getView().persist(databaseName,
 renameSchemaName, schema.getAllViews());
         
metaDataPersistService.getDatabaseMetaDataFacade().getSchema().drop(databaseName,
 schemaName);
     }
     
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 b46902c17af..c8c78966df3 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
@@ -101,7 +101,11 @@ class ClusterMetaDataManagerPersistServiceTest {
     @Test
     void assertAlterNotEmptySchemaName() {
         ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
-        assertAlterSchemaName(schema);
+        
when(metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db").getSchema("foo_schema")).thenReturn(schema);
+        metaDataManagerPersistService.alterSchemaName("foo_db", "foo_schema", 
"bar_schema", "foo_ds");
+        
verify(metaDataPersistService.getDatabaseMetaDataFacade().getTable()).persist(eq("foo_db"),
 eq("bar_schema"), anyCollection());
+        
verify(metaDataPersistService.getDatabaseMetaDataFacade().getView()).persist(eq("foo_db"),
 eq("bar_schema"), anyCollection());
+        
verify(metaDataPersistService.getDatabaseMetaDataFacade().getSchema()).drop("foo_db",
 "foo_schema");
         verify(metaDataPersistService.getDatabaseMetaDataFacade().getSchema(), 
times(0)).add("foo_db", "bar_schema");
     }
     
@@ -109,16 +113,10 @@ class ClusterMetaDataManagerPersistServiceTest {
     void assertAlterEmptySchemaName() {
         ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
         when(schema.isEmpty()).thenReturn(true);
-        assertAlterSchemaName(schema);
-        
verify(metaDataPersistService.getDatabaseMetaDataFacade().getSchema()).add("foo_db",
 "bar_schema");
-    }
-    
-    private void assertAlterSchemaName(final ShardingSphereSchema schema) {
         
when(metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db").getSchema("foo_schema")).thenReturn(schema);
         metaDataManagerPersistService.alterSchemaName("foo_db", "foo_schema", 
"bar_schema", "foo_ds");
-        
verify(metaDataPersistService.getDatabaseMetaDataFacade().getTable()).persist(eq("foo_db"),
 eq("bar_schema"), anyCollection());
-        
verify(metaDataPersistService.getDatabaseMetaDataFacade().getView()).persist(eq("foo_db"),
 eq("bar_schema"), anyCollection());
         
verify(metaDataPersistService.getDatabaseMetaDataFacade().getSchema()).drop("foo_db",
 "foo_schema");
+        
verify(metaDataPersistService.getDatabaseMetaDataFacade().getSchema()).add("foo_db",
 "bar_schema");
     }
     
     @Test
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 b2800c7b451..0b5d7256628 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
@@ -111,12 +111,13 @@ public final class 
StandaloneMetaDataManagerPersistService implements MetaDataMa
     public void alterSchemaName(final String databaseName, final String 
schemaName, final String renameSchemaName, final String logicDataSourceName) {
         ShardingSphereMetaData metaData = 
metaDataContextManager.getMetaDataContexts().getMetaData();
         ShardingSphereDatabase database = metaData.getDatabase(databaseName);
-        ShardingSphereSchema alteredSchema = 
database.getSchema(renameSchemaName);
-        if (alteredSchema.isEmpty()) {
+        ShardingSphereSchema schema = 
metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getSchema(schemaName);
+        if (schema.isEmpty()) {
             
metaDataPersistService.getDatabaseMetaDataFacade().getSchema().add(databaseName,
 renameSchemaName);
+        } else {
+            
metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(databaseName,
 renameSchemaName, schema.getAllTables());
+            
metaDataPersistService.getDatabaseMetaDataFacade().getView().persist(databaseName,
 renameSchemaName, schema.getAllViews());
         }
-        
metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(databaseName,
 renameSchemaName, alteredSchema.getAllTables());
-        
metaDataPersistService.getDatabaseMetaDataFacade().getView().persist(databaseName,
 renameSchemaName, alteredSchema.getAllViews());
         
metaDataPersistService.getDatabaseMetaDataFacade().getSchema().drop(databaseName,
 schemaName);
         putSchemaMetaData(database, schemaName, renameSchemaName, 
logicDataSourceName);
         removeSchemaMetaData(database, schemaName);
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 492a5627ffd..4a6fc2f96e3 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
@@ -132,8 +132,6 @@ class StandaloneMetaDataManagerPersistServiceTest {
         
when(metaDataPersistService.getDatabaseMetaDataFacade()).thenReturn(databaseMetaDataFacade);
         metaDataManagerPersistService.alterSchemaName("foo_db", "foo_schema", 
"bar_schema", "foo_ds");
         verify(databaseMetaDataFacade.getSchema()).add("foo_db", "bar_schema");
-        verify(databaseMetaDataFacade.getTable()).persist(eq("foo_db"), 
eq("bar_schema"), anyCollection());
-        verify(databaseMetaDataFacade.getView()).persist(eq("foo_db"), 
eq("bar_schema"), anyCollection());
         verify(databaseMetaDataFacade.getSchema()).drop("foo_db", 
"foo_schema");
     }
     

Reply via email to