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);
}