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