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;

Reply via email to