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 afec99edf72 split ContextManager.alterSchema() to 2 methods (#19378)
afec99edf72 is described below

commit afec99edf722716e5c61e6e9e2aaa56a7191e28e
Author: Da Xiang Huang <[email protected]>
AuthorDate: Wed Jul 20 14:42:25 2022 +0800

    split ContextManager.alterSchema() to 2 methods (#19378)
---
 .../shardingsphere/mode/manager/ContextManager.java     | 17 ++++++++++++++---
 .../shardingsphere/mode/manager/ContextManagerTest.java |  4 ++--
 .../coordinator/ClusterContextManagerCoordinator.java   |  3 ++-
 3 files changed, 18 insertions(+), 6 deletions(-)

diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 27284c44576..d991d7e187f 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -146,15 +146,26 @@ public final class ContextManager implements 
AutoCloseable {
      *
      * @param databaseName database name
      * @param schemaName schema name
-     * @param toBeChangedTable to be changed table
      * @param toBeDeletedTableName to be deleted table name
      */
-    public synchronized void alterSchema(final String databaseName, final 
String schemaName, final ShardingSphereTable toBeChangedTable, final String 
toBeDeletedTableName) {
+    public synchronized void alterSchema(final String databaseName, final 
String schemaName, final String toBeDeletedTableName) {
         if 
(metaDataContexts.getMetaData().getDatabases().containsKey(databaseName)) {
-            Optional.ofNullable(toBeChangedTable).ifPresent(optional -> 
alterTable(databaseName, schemaName, optional));
             Optional.ofNullable(toBeDeletedTableName).ifPresent(optional -> 
dropTable(databaseName, schemaName, optional));
         }
     }
+
+    /**
+     * Alter schema.
+     *
+     * @param databaseName database name
+     * @param schemaName schema name
+     * @param toBeChangedTable to be changed table
+     */
+    public synchronized void alterSchema(final String databaseName, final 
String schemaName, final ShardingSphereTable toBeChangedTable) {
+        if 
(metaDataContexts.getMetaData().getDatabases().containsKey(databaseName)) {
+            Optional.ofNullable(toBeChangedTable).ifPresent(optional -> 
alterTable(databaseName, schemaName, optional));
+        }
+    }
     
     private synchronized void alterTable(final String databaseName, final 
String schemaName, final ShardingSphereTable beBoChangedTable) {
         
alterTable(metaDataContexts.getMetaData().getDatabases().get(databaseName), 
schemaName, beBoChangedTable);
diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index 9a763394b7b..c127e0ae708 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -159,7 +159,7 @@ public final class ContextManagerTest {
         
when(metaDataContexts.getMetaData().getDatabases().get("foo_db").getSchemas()).thenReturn(createToBeAlteredSchemas());
         ShardingSphereColumn toBeChangedColumn = new 
ShardingSphereColumn("foo_col", Types.VARCHAR, false, false, false);
         ShardingSphereTable toBeChangedTable = new 
ShardingSphereTable("foo_tbl", Collections.singleton(toBeChangedColumn), 
Collections.emptyList(), Collections.emptyList());
-        contextManager.alterSchema("foo_db", "foo_schema", toBeChangedTable, 
null);
+        contextManager.alterSchema("foo_db", "foo_schema", toBeChangedTable);
         ShardingSphereTable table = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get("foo_db").getSchemas().get("foo_schema").getTables().get("foo_tbl");
         assertThat(table.getColumns().size(), is(1));
         assertTrue(table.getColumns().containsKey("foo_col"));
@@ -168,7 +168,7 @@ public final class ContextManagerTest {
     @Test
     public void assertAlterSchemaForTableDropped() {
         
when(metaDataContexts.getMetaData().getDatabases().get("foo_db").getSchemas()).thenReturn(createToBeAlteredSchemas());
-        contextManager.alterSchema("foo_db", "foo_schema", null, "foo_tbl");
+        contextManager.alterSchema("foo_db", "foo_schema", "foo_tbl");
         
assertFalse(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("foo_db").getSchemas().get("foo_schema").getTables().containsKey("foo_tbl"));
     }
     
diff --git 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinator.java
 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinator.java
index cdae485c1c4..0b0faf0143a 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinator.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinator.java
@@ -132,7 +132,8 @@ public final class ClusterContextManagerCoordinator {
      */
     @Subscribe
     public synchronized void renew(final SchemaChangedEvent event) {
-        contextManager.alterSchema(event.getDatabaseName(), 
event.getSchemaName(), event.getChangedTableMetaData(), 
event.getDeletedTable());
+        contextManager.alterSchema(event.getDatabaseName(), 
event.getSchemaName(), event.getChangedTableMetaData());
+        contextManager.alterSchema(event.getDatabaseName(), 
event.getSchemaName(), event.getDeletedTable());
     }
     
     /**

Reply via email to