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