This is an automated email from the ASF dual-hosted git repository.

panjuan 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 9657652  Fixed logical table metadata loading issues. (#11086)
9657652 is described below

commit 965765269a07d30ba0b1e103bd38388dc010dcf2
Author: totalo <[email protected]>
AuthorDate: Fri Jul 2 10:20:25 2021 +0800

    Fixed logical table metadata loading issues. (#11086)
    
    * Fixed #11028.
    
    * update code style
---
 .../metadata/schema/builder/SchemaBuilder.java     | 23 +++++++++-------------
 .../context/metadata/MetaDataContextsBuilder.java  |  4 ++--
 2 files changed, 11 insertions(+), 16 deletions(-)

diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/SchemaBuilder.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/SchemaBuilder.java
index 4adb54c..6713c28 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/SchemaBuilder.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/SchemaBuilder.java
@@ -73,21 +73,16 @@ public final class SchemaBuilder {
      * @throws SQLException SQL exception
      */
     public static Map<TableMetaData, TableMetaData> build(final 
SchemaBuilderMaterials materials) throws SQLException {
-        Map<String, TableMetaData> actualTableMetaMap = 
appendRemainTables(materials);
-        Map<String, TableMetaData> logicTableMetaMap = 
addRuleConfiguredTables(materials, actualTableMetaMap);
-        return buildTableMetaDataMap(actualTableMetaMap, logicTableMetaMap);
-    }
-
-    private static Map<TableMetaData, TableMetaData> 
buildTableMetaDataMap(final Map<String, TableMetaData> actualMap,
-                                                                           
final Map<String, TableMetaData> logicMap) {
-        Map<TableMetaData, TableMetaData> result = new 
HashMap<>(actualMap.size(), 1);
-        for (Entry entry : actualMap.entrySet()) {
-            result.put((TableMetaData) entry.getValue(), 
logicMap.get(entry.getKey()));
+        Map<String, TableMetaData> actualTableMetaMap = 
buildActualTableMetaDataMap(materials);
+        Map<String, TableMetaData> logicTableMetaMap = 
buildLogicTableMetaDataMap(materials, actualTableMetaMap);
+        Map<TableMetaData, TableMetaData> tableMetaDataMap = new 
HashMap<>(actualTableMetaMap.size(), 1);
+        for (Entry<String, TableMetaData> entry : 
actualTableMetaMap.entrySet()) {
+            tableMetaDataMap.put(entry.getValue(), 
logicTableMetaMap.getOrDefault(entry.getKey(), entry.getValue()));
         }
-        return result;
+        return tableMetaDataMap;
     }
-
-    private static Map<String, TableMetaData> appendRemainTables(final 
SchemaBuilderMaterials materials) throws SQLException {
+    
+    private static Map<String, TableMetaData> 
buildActualTableMetaDataMap(final SchemaBuilderMaterials materials) throws 
SQLException {
         Map<String, TableMetaData> result = new 
HashMap<>(materials.getRules().size(), 1);
         appendRemainTables(materials, result);
         for (ShardingSphereRule rule : materials.getRules()) {
@@ -111,7 +106,7 @@ public final class SchemaBuilder {
         appendDefaultRemainTables(materials, tables);
     }
     
-    private static Map<String, TableMetaData> addRuleConfiguredTables(final 
SchemaBuilderMaterials materials, final Map<String, TableMetaData> tables) 
throws SQLException {
+    private static Map<String, TableMetaData> buildLogicTableMetaDataMap(final 
SchemaBuilderMaterials materials, final Map<String, TableMetaData> tables) 
throws SQLException {
         Map<String, TableMetaData> result = new 
HashMap<>(materials.getRules().size(), 1);
         for (ShardingSphereRule rule : materials.getRules()) {
             if (rule instanceof TableContainedRule) {
diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
index a1c0d02..3836384 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
@@ -109,8 +109,8 @@ public final class MetaDataContextsBuilder {
     
     private ShardingSphereSchema buildSchema(final Map<TableMetaData, 
TableMetaData> tableMetaDatas) {
         Map<String, TableMetaData> tables = new 
HashMap<>(tableMetaDatas.size(), 1);
-        
tables.putAll(tableMetaDatas.keySet().stream().filter(Objects::nonNull).collect(Collectors.toMap(TableMetaData::getName,
 v -> v)));
-        
tables.putAll(tableMetaDatas.values().stream().filter(Objects::nonNull).collect(Collectors.toMap(TableMetaData::getName,
 v -> v)));
+        
tables.putAll(tableMetaDatas.keySet().stream().collect(Collectors.toMap(TableMetaData::getName,
 v -> v)));
+        
tables.putAll(tableMetaDatas.values().stream().collect(Collectors.toMap(TableMetaData::getName,
 v -> v)));
         return new ShardingSphereSchema(tables);
     }
 

Reply via email to