You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2025/01/28 13:41:44 UTC
(shardingsphere) branch master updated: Refactor CreateTablePushDownMetaDataRefresher (#34526)
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 <zh...@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;