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;