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 <[email protected]>
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");
}