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 0bbe3f79bcb Refactor CreateTablePushDownMetaDataRefresher (#34526) 0bbe3f79bcb is described below commit 0bbe3f79bcbb1da048be39cdc06c1e15c2d0463e Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Tue Jan 28 21:41:38 2025 +0800 Refactor CreateTablePushDownMetaDataRefresher (#34526) * Refactor CreateTablePushDownMetaDataRefresher * Refactor CreateTablePushDownMetaDataRefresher * Refactor CreateTablePushDownMetaDataRefresher * Refactor CreateTablePushDownMetaDataRefresher --- .../type/table/CreateTablePushDownMetaDataRefresher.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/CreateTablePushDownMetaDataRefresher.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/CreateTablePushDownMetaDataRefresher.java index ffd91900cbb..a98f0cc65ae 100644 --- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/CreateTablePushDownMetaDataRefresher.java +++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/CreateTablePushDownMetaDataRefresher.java @@ -17,7 +17,6 @@ package org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.table; -import com.google.common.base.Preconditions; import org.apache.shardingsphere.infra.config.props.ConfigurationProperties; import org.apache.shardingsphere.infra.database.core.type.DatabaseType; import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase; @@ -37,7 +36,6 @@ import java.util.Collection; import java.util.Collections; import java.util.LinkedList; import java.util.Map; -import java.util.Optional; /** * Create table push down meta data refresher. @@ -53,16 +51,20 @@ public final class CreateTablePushDownMetaDataRefresher implements PushDownMetaD if (isSingleTable) { ruleMetaData.getAttributes(MutableDataNodeRuleAttribute.class).forEach(each -> each.put(logicDataSourceNames.iterator().next(), schemaName, tableName)); } - GenericSchemaBuilderMaterial material = new GenericSchemaBuilderMaterial(database.getResourceMetaData().getStorageUnits(), ruleMetaData.getRules(), props, schemaName); - Map<String, ShardingSphereSchema> schemas = GenericSchemaBuilder.build(Collections.singletonList(tableName), database.getProtocolType(), material); - Optional<ShardingSphereTable> actualTableMetaData = Optional.ofNullable(schemas.get(schemaName)).map(optional -> optional.getTable(tableName)); - Preconditions.checkState(actualTableMetaData.isPresent(), "Load actual table metadata '%s' failed.", tableName); - metaDataManagerPersistService.createTable(database.getName(), schemaName, actualTableMetaData.get()); + ShardingSphereTable loadedTable = loadTable(database, schemaName, tableName, ruleMetaData, props); + metaDataManagerPersistService.createTable(database.getName(), schemaName, loadedTable); if (isSingleTable && TableRefreshUtils.isNeedRefresh(ruleMetaData, schemaName, tableName)) { metaDataManagerPersistService.alterSingleRuleConfiguration(database.getName(), ruleMetaData); } } + private ShardingSphereTable loadTable(final ShardingSphereDatabase database, final String schemaName, final String tableName, + final RuleMetaData ruleMetaData, final ConfigurationProperties props) throws SQLException { + GenericSchemaBuilderMaterial material = new GenericSchemaBuilderMaterial(database.getResourceMetaData().getStorageUnits(), ruleMetaData.getRules(), props, schemaName); + Map<String, ShardingSphereSchema> schemas = GenericSchemaBuilder.build(Collections.singletonList(tableName), database.getProtocolType(), material); + return schemas.get(schemaName).getTable(tableName); + } + @Override public Class<CreateTableStatement> getType() { return CreateTableStatement.class;