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