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 eff18567f22 Refactor 
StandaloneMetaDataManagerPersistService.dropTable() (#34519)
eff18567f22 is described below

commit eff18567f225d2e918ad7738022d0f81a6c24398
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Sun Jan 26 22:15:44 2025 +0800

    Refactor StandaloneMetaDataManagerPersistService.dropTable() (#34519)
---
 .../pushdown/type/table/DropTablePushDownMetaDataRefresher.java  | 9 ++++-----
 .../mode/persist/service/MetaDataManagerPersistService.java      | 4 ++--
 .../persist/service/ClusterMetaDataManagerPersistService.java    | 6 ++----
 .../service/ClusterMetaDataManagerPersistServiceTest.java        | 4 ++--
 .../persist/service/StandaloneMetaDataManagerPersistService.java | 8 +++-----
 .../service/StandaloneMetaDataManagerPersistServiceTest.java     | 4 ++--
 6 files changed, 15 insertions(+), 20 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/DropTablePushDownMetaDataRefresher.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/DropTablePushDownMetaDataRefresher.java
index 216394aa7bb..804decb3424 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/DropTablePushDownMetaDataRefresher.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/DropTablePushDownMetaDataRefresher.java
@@ -28,7 +28,6 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTab
 
 import java.sql.SQLException;
 import java.util.Collection;
-import java.util.stream.Collectors;
 
 /**
  * Drop table push down meta data refresher.
@@ -38,13 +37,13 @@ public final class DropTablePushDownMetaDataRefresher 
implements PushDownMetaDat
     @Override
     public void refresh(final MetaDataManagerPersistService 
metaDataManagerPersistService, final ShardingSphereDatabase database, final 
Collection<String> logicDataSourceNames,
                         final String schemaName, final DatabaseType 
databaseType, final DropTableStatement sqlStatement, final 
ConfigurationProperties props) throws SQLException {
-        Collection<String> tableNames = 
sqlStatement.getTables().stream().map(each -> 
each.getTableName().getIdentifier().getValue()).collect(Collectors.toList());
         boolean needRefresh = 
TableRefreshUtils.isNeedRefresh(database.getRuleMetaData(), schemaName, 
sqlStatement.getTables());
-        metaDataManagerPersistService.dropTables(database.getName(), 
schemaName, tableNames);
+        boolean isRefreshed = false;
         for (SimpleTableSegment each : sqlStatement.getTables()) {
-            if (needRefresh && 
TableRefreshUtils.isSingleTable(each.getTableName().getIdentifier().getValue(), 
database)) {
+            metaDataManagerPersistService.dropTable(database.getName(), 
schemaName, each.getTableName().getIdentifier().getValue());
+            if (!isRefreshed && needRefresh && 
TableRefreshUtils.isSingleTable(each.getTableName().getIdentifier().getValue(), 
database)) {
                 
metaDataManagerPersistService.alterSingleRuleConfiguration(database.getName(), 
database.getRuleMetaData());
-                break;
+                isRefreshed = true;
             }
         }
     }
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 f20d0e9b326..7cbcf682d00 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
@@ -101,9 +101,9 @@ public interface MetaDataManagerPersistService {
      *
      * @param databaseName database name
      * @param schemaName schema name
-     * @param tableNames table names
+     * @param tableName table name
      */
-    void dropTables(String databaseName, String schemaName, Collection<String> 
tableNames);
+    void dropTable(String databaseName, String schemaName, String tableName);
     
     /**
      * 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 543bc774049..900363c62ea 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
@@ -125,10 +125,8 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
     }
     
     @Override
-    public void dropTables(final String databaseName, final String schemaName, 
final Collection<String> tableNames) {
-        for (String each : tableNames) {
-            
metaDataPersistService.getDatabaseMetaDataFacade().getTable().drop(databaseName,
 schemaName, each);
-        }
+    public void dropTable(final String databaseName, final String schemaName, 
final String tableName) {
+        
metaDataPersistService.getDatabaseMetaDataFacade().getTable().drop(databaseName,
 schemaName, tableName);
     }
     
     @SneakyThrows
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 27ab78a5fc1..2a906cbe00a 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
@@ -189,8 +189,8 @@ class ClusterMetaDataManagerPersistServiceTest {
     }
     
     @Test
-    void assertDropTables() {
-        metaDataManagerPersistService.dropTables("foo_db", "foo_schema", 
Collections.singleton("foo_tbl"));
+    void assertDropTable() {
+        metaDataManagerPersistService.dropTable("foo_db", "foo_schema", 
"foo_tbl");
         
verify(metaDataPersistService.getDatabaseMetaDataFacade().getTable()).drop("foo_db",
 "foo_schema", "foo_tbl");
     }
 }
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 74c194a79d2..026d651380b 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
@@ -221,11 +221,9 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
     }
     
     @Override
-    public void dropTables(final String databaseName, final String schemaName, 
final Collection<String> tableNames) {
-        for (String each : tableNames) {
-            
metaDataPersistService.getDatabaseMetaDataFacade().getTable().drop(databaseName,
 schemaName, each);
-            
metaDataContextManager.getDatabaseMetaDataManager().dropTable(databaseName, 
schemaName, each);
-        }
+    public void dropTable(final String databaseName, final String schemaName, 
final String tableName) {
+        
metaDataPersistService.getDatabaseMetaDataFacade().getTable().drop(databaseName,
 schemaName, tableName);
+        
metaDataContextManager.getDatabaseMetaDataManager().dropTable(databaseName, 
schemaName, tableName);
     }
     
     @Override
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 eb2a1e9bfea..4b9efda3005 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
@@ -229,8 +229,8 @@ class StandaloneMetaDataManagerPersistServiceTest {
     }
     
     @Test
-    void assertDropTables() {
-        metaDataManagerPersistService.dropTables("foo_db", "foo_schema", 
Collections.singleton("foo_tbl"));
+    void assertDropTable() {
+        metaDataManagerPersistService.dropTable("foo_db", "foo_schema", 
"foo_tbl");
         
verify(metaDataPersistService.getDatabaseMetaDataFacade().getTable()).drop("foo_db",
 "foo_schema", "foo_tbl");
     }
     

Reply via email to