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 d1545a06a1e Refactor MetaDataManagerPersistService.alterSchemaName() 
(#34471)
d1545a06a1e is described below

commit d1545a06a1e747d99d80c40ba638a40e3a94a45e
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Fri Jan 24 22:40:19 2025 +0800

    Refactor MetaDataManagerPersistService.alterSchemaName() (#34471)
    
    * Refactor MetaDataManagerPersistService.alterSchemaName()
    
    * Refactor MetaDataManagerPersistService.alterSchemaName()
    
    * Remove AlterSchemaPOJO
    
    * Remove AlterSchemaPOJO
---
 .../database/schema/pojo/AlterSchemaPOJO.java      | 44 ----------------------
 .../AlterSchemaPushDownMetaDataRefresher.java      |  4 +-
 .../service/MetaDataManagerPersistService.java     |  8 ++--
 .../ClusterMetaDataManagerPersistService.java      | 21 +++++------
 .../ClusterMetaDataManagerPersistServiceTest.java  |  3 +-
 .../StandaloneMetaDataManagerPersistService.java   | 21 +++++------
 ...tandaloneMetaDataManagerPersistServiceTest.java |  5 +--
 7 files changed, 28 insertions(+), 78 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/pojo/AlterSchemaPOJO.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/pojo/AlterSchemaPOJO.java
deleted file mode 100644
index 502eecb1fd2..00000000000
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/pojo/AlterSchemaPOJO.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.infra.metadata.database.schema.pojo;
-
-import lombok.Getter;
-
-import java.util.Collection;
-
-/**
- * Alter schema pojo.
- */
-@Getter
-public final class AlterSchemaPOJO {
-    
-    private final String databaseName;
-    
-    private final String schemaName;
-    
-    private final String renameSchemaName;
-    
-    private final String logicDataSourceName;
-    
-    public AlterSchemaPOJO(final String databaseName, final String schemaName, 
final String renameSchemaName, final Collection<String> logicDataSourceNames) {
-        this.databaseName = databaseName;
-        this.schemaName = schemaName;
-        this.renameSchemaName = renameSchemaName;
-        this.logicDataSourceName = logicDataSourceNames.isEmpty() ? null : 
logicDataSourceNames.iterator().next();
-    }
-}
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/schema/AlterSchemaPushDownMetaDataRefresher.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/schema/AlterSchemaPushDownMetaDataRefresher.java
index 9ac703d2a73..bd05734f956 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/schema/AlterSchemaPushDownMetaDataRefresher.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/schema/AlterSchemaPushDownMetaDataRefresher.java
@@ -20,7 +20,6 @@ package 
org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import 
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaPOJO;
 import 
org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefresher;
 import 
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterSchemaStatement;
@@ -41,7 +40,8 @@ public final class AlterSchemaPushDownMetaDataRefresher 
implements PushDownMetaD
         if (!renameSchemaName.isPresent()) {
             return;
         }
-        metaDataManagerPersistService.alterSchemaName(new 
AlterSchemaPOJO(database.getName(), 
sqlStatement.getSchemaName().getValue().toLowerCase(), renameSchemaName.get(), 
logicDataSourceNames));
+        metaDataManagerPersistService.alterSchemaName(
+                database.getName(), 
sqlStatement.getSchemaName().getValue().toLowerCase(), renameSchemaName.get(), 
logicDataSourceNames.isEmpty() ? null : logicDataSourceNames.iterator().next());
     }
     
     @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 fd62c7fa85e..27b615f1e12 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
@@ -21,7 +21,6 @@ import 
org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
-import 
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaPOJO;
 
 import java.sql.SQLException;
 import java.util.Collection;
@@ -67,10 +66,13 @@ public interface MetaDataManagerPersistService {
     /**
      * Alter schema name.
      *
-     * @param alterSchemaPOJO alter schema pojo
+     * @param databaseName database name
+     * @param schemaName schema name
+     * @param renameSchemaName rename schema name
+     * @param logicDataSourceName logic data source name
      * @throws SQLException SQL exception
      */
-    void alterSchemaName(AlterSchemaPOJO alterSchemaPOJO) throws SQLException;
+    void alterSchemaName(String databaseName, String schemaName, String 
renameSchemaName, String logicDataSourceName) throws SQLException;
     
     /**
      * Drop schema.
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 b91a4b60cdf..02920f47adc 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
@@ -26,20 +26,19 @@ import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNo
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
-import 
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaPOJO;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereStatistics;
 import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
-import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
-import 
org.apache.shardingsphere.mode.metadata.persist.config.database.DataSourceUnitPersistService;
-import 
org.apache.shardingsphere.mode.metadata.persist.metadata.DatabaseMetaDataPersistFacade;
 import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.factory.MetaDataContextsFactory;
 import org.apache.shardingsphere.mode.metadata.manager.SwitchingResource;
-import org.apache.shardingsphere.mode.state.database.ListenerAssistedType;
-import 
org.apache.shardingsphere.mode.state.database.ListenerAssistedPersistService;
+import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
+import 
org.apache.shardingsphere.mode.metadata.persist.config.database.DataSourceUnitPersistService;
+import 
org.apache.shardingsphere.mode.metadata.persist.metadata.DatabaseMetaDataPersistFacade;
 import 
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
 import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+import 
org.apache.shardingsphere.mode.state.database.ListenerAssistedPersistService;
+import org.apache.shardingsphere.mode.state.database.ListenerAssistedType;
 import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
 
 import javax.sql.DataSource;
@@ -99,15 +98,13 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
     }
     
     @Override
-    public void alterSchemaName(final AlterSchemaPOJO alterSchemaPOJO) {
-        String databaseName = alterSchemaPOJO.getDatabaseName();
-        String schemaName = alterSchemaPOJO.getSchemaName();
+    public void alterSchemaName(final String databaseName, final String 
schemaName, final String renameSchemaName, final String logicDataSourceName) {
         ShardingSphereSchema schema = 
metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getSchema(schemaName);
         if (schema.isEmpty()) {
-            
metaDataPersistService.getDatabaseMetaDataFacade().getSchema().add(databaseName,
 alterSchemaPOJO.getRenameSchemaName());
+            
metaDataPersistService.getDatabaseMetaDataFacade().getSchema().add(databaseName,
 renameSchemaName);
         }
-        
metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(databaseName,
 alterSchemaPOJO.getRenameSchemaName(), schema.getAllTables());
-        
metaDataPersistService.getDatabaseMetaDataFacade().getView().persist(databaseName,
 alterSchemaPOJO.getRenameSchemaName(), 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 1573200bd55..4b86e04a909 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
@@ -22,7 +22,6 @@ import 
org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
-import 
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaPOJO;
 import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
 import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
@@ -120,7 +119,7 @@ class ClusterMetaDataManagerPersistServiceTest {
     
     private void assertAlterSchemaName(final ShardingSphereSchema schema) {
         
when(metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db").getSchema("foo_schema")).thenReturn(schema);
-        metaDataManagerPersistService.alterSchemaName(new 
AlterSchemaPOJO("foo_db", "foo_schema", "bar_schema", 
Collections.singleton("foo_ds")));
+        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");
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 44e6b2cfde1..e86d68ecabe 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
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
-import 
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaPOJO;
 import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
 import 
org.apache.shardingsphere.infra.rule.attribute.datanode.MutableDataNodeRuleAttribute;
 import org.apache.shardingsphere.infra.rule.scope.GlobalRule;
@@ -111,21 +110,19 @@ public final class 
StandaloneMetaDataManagerPersistService implements MetaDataMa
     }
     
     @Override
-    public void alterSchemaName(final AlterSchemaPOJO alterSchemaPOJO) {
+    public void alterSchemaName(final String databaseName, final String 
schemaName, final String renameSchemaName, final String logicDataSourceName) {
         ShardingSphereMetaData metaData = 
metaDataContextManager.getMetaDataContexts().getMetaData();
-        ShardingSphereDatabase database = 
metaData.getDatabase(alterSchemaPOJO.getDatabaseName());
-        putSchemaMetaData(database, alterSchemaPOJO.getSchemaName(), 
alterSchemaPOJO.getRenameSchemaName(), 
alterSchemaPOJO.getLogicDataSourceName());
-        removeSchemaMetaData(database, alterSchemaPOJO.getSchemaName());
+        ShardingSphereDatabase database = metaData.getDatabase(databaseName);
+        putSchemaMetaData(database, schemaName, renameSchemaName, 
logicDataSourceName);
+        removeSchemaMetaData(database, schemaName);
         metaData.getGlobalRuleMetaData().getRules().forEach(each -> 
((GlobalRule) each).refresh(metaData.getAllDatabases(), 
GlobalRuleChangedType.SCHEMA_CHANGED));
-        ShardingSphereSchema alteredSchema = 
database.getSchema(alterSchemaPOJO.getRenameSchemaName());
-        String databaseName = alterSchemaPOJO.getDatabaseName();
-        String alteredSchemaName = alterSchemaPOJO.getRenameSchemaName();
+        ShardingSphereSchema alteredSchema = 
database.getSchema(renameSchemaName);
         if (alteredSchema.isEmpty()) {
-            
metaDataPersistService.getDatabaseMetaDataFacade().getSchema().add(databaseName,
 alteredSchemaName);
+            
metaDataPersistService.getDatabaseMetaDataFacade().getSchema().add(databaseName,
 renameSchemaName);
         }
-        
metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(databaseName,
 alteredSchemaName, alteredSchema.getAllTables());
-        
metaDataPersistService.getDatabaseMetaDataFacade().getView().persist(databaseName,
 alteredSchemaName, alteredSchema.getAllViews());
-        
metaDataPersistService.getDatabaseMetaDataFacade().getSchema().drop(databaseName,
 alterSchemaPOJO.getSchemaName());
+        
metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(databaseName,
 renameSchemaName, alteredSchema.getAllTables());
+        
metaDataPersistService.getDatabaseMetaDataFacade().getView().persist(databaseName,
 renameSchemaName, alteredSchema.getAllViews());
+        
metaDataPersistService.getDatabaseMetaDataFacade().getSchema().drop(databaseName,
 schemaName);
     }
     
     private void putSchemaMetaData(final ShardingSphereDatabase database, 
final String schemaName, final String renamedSchemaName, final String 
logicDataSourceName) {
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 c5739499f76..38a5b254b45 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
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
-import 
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaPOJO;
 import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
 import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
 import org.apache.shardingsphere.mode.metadata.manager.RuleItemChangedBuilder;
@@ -114,7 +113,7 @@ class StandaloneMetaDataManagerPersistServiceTest {
         
when(metaDataContextManager.getMetaDataContexts().getMetaData()).thenReturn(metaData);
         DatabaseMetaDataPersistFacade databaseMetaDataFacade = 
mock(DatabaseMetaDataPersistFacade.class, RETURNS_DEEP_STUBS);
         
when(metaDataPersistService.getDatabaseMetaDataFacade()).thenReturn(databaseMetaDataFacade);
-        metaDataManagerPersistService.alterSchemaName(new 
AlterSchemaPOJO("foo_db", "foo_schema", "bar_schema", 
Collections.singleton("foo_ds")));
+        metaDataManagerPersistService.alterSchemaName("foo_db", "foo_schema", 
"bar_schema", "foo_ds");
         verify(databaseMetaDataFacade.getSchema(), times(0)).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());
@@ -131,7 +130,7 @@ class StandaloneMetaDataManagerPersistServiceTest {
         
when(metaDataContextManager.getMetaDataContexts().getMetaData()).thenReturn(metaData);
         DatabaseMetaDataPersistFacade databaseMetaDataFacade = 
mock(DatabaseMetaDataPersistFacade.class, RETURNS_DEEP_STUBS);
         
when(metaDataPersistService.getDatabaseMetaDataFacade()).thenReturn(databaseMetaDataFacade);
-        metaDataManagerPersistService.alterSchemaName(new 
AlterSchemaPOJO("foo_db", "foo_schema", "bar_schema", 
Collections.singleton("foo_ds")));
+        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());

Reply via email to