This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 43c33dfa258 Use ConfigurationManager to alter schema meta data after
storage units altered (#32055)
43c33dfa258 is described below
commit 43c33dfa25838a86c65791fcd7c12505e8581591
Author: Haoran Meng <[email protected]>
AuthorDate: Wed Jul 10 16:20:12 2024 +0800
Use ConfigurationManager to alter schema meta data after storage units
altered (#32055)
---
.../persist/ClusterMetaDataManagerPersistService.java | 18 +++---------------
1 file changed, 3 insertions(+), 15 deletions(-)
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
index d31ec44d26e..2ce8c8aedc9 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
@@ -19,8 +19,6 @@ package
org.apache.shardingsphere.mode.manager.cluster.persist;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
-import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import
org.apache.shardingsphere.infra.metadata.database.schema.manager.GenericSchemaManager;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
@@ -32,10 +30,10 @@ import
org.apache.shardingsphere.metadata.persist.service.config.database.DataSo
import
org.apache.shardingsphere.metadata.persist.service.database.DatabaseMetaDataPersistService;
import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
+import org.apache.shardingsphere.mode.persist.pojo.ListenerAssisted;
import org.apache.shardingsphere.mode.persist.pojo.ListenerAssistedType;
import
org.apache.shardingsphere.mode.persist.service.ListenerAssistedPersistService;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.persist.pojo.ListenerAssisted;
import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
@@ -181,7 +179,8 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
Optional.ofNullable(reloadMetaDataContexts.getStatistics().getDatabaseData().get(databaseName))
.ifPresent(optional ->
optional.getSchemaData().forEach((schemaName, schemaData) ->
metaDataPersistService.getShardingSphereDataPersistService()
.persist(databaseName, schemaName, schemaData,
originalMetaDataContexts.getMetaData().getDatabases())));
- alter(databaseName,
reloadMetaDataContexts.getMetaData().getDatabase(databaseName),
originalMetaDataContexts.getMetaData().getDatabase(databaseName), isDropConfig);
+
metaDataContextManager.getConfigurationManager().alterSchemaMetaData(databaseName,
reloadMetaDataContexts.getMetaData().getDatabase(databaseName),
+
originalMetaDataContexts.getMetaData().getDatabase(databaseName), isDropConfig);
}
private void persistSchemaMetaData(final String databaseName, final
MetaDataContexts reloadMetaDataContexts, final boolean isDropConfig) {
@@ -193,15 +192,4 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
.persistByAlterConfiguration(reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getName(),
schemaName, schema));
}
}
-
- private void alter(final String databaseName, final ShardingSphereDatabase
reloadDatabase, final ShardingSphereDatabase currentDatabase, final boolean
isDropConfig) {
- Map<String, ShardingSphereSchema> toBeAlterSchemas =
GenericSchemaManager.getToBeDeletedTablesBySchemas(reloadDatabase.getSchemas(),
currentDatabase.getSchemas());
- Map<String, ShardingSphereSchema> toBeAddedSchemas =
GenericSchemaManager.getToBeAddedTablesBySchemas(reloadDatabase.getSchemas(),
currentDatabase.getSchemas());
- if (isDropConfig) {
- toBeAddedSchemas.forEach((key, value) ->
metaDataPersistService.getDatabaseMetaDataService().persistByDropConfiguration(databaseName,
key, value));
- } else {
- toBeAddedSchemas.forEach((key, value) ->
metaDataPersistService.getDatabaseMetaDataService().persistByAlterConfiguration(databaseName,
key, value));
- }
- toBeAlterSchemas.forEach((key, value) ->
metaDataPersistService.getDatabaseMetaDataService().delete(databaseName, key,
value));
- }
}