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

wuweijie 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 1292181  Improve Federate metadata (#10674)
1292181 is described below

commit 1292181683e0f2676aac6382c90014be03dfc6ac
Author: Juan Pan(Trista) <[email protected]>
AuthorDate: Sun Jun 6 17:46:29 2021 +0800

    Improve Federate metadata (#10674)
    
    * Improve Federate metadata
    
    * java doc
    
    * java doc
---
 .../context/metadata/GovernanceMetaDataContexts.java      |  2 --
 .../executor/sql/federate/schema/FederateLogicSchema.java | 10 +++++-----
 .../sql/federate/schema/table/AbstractFederateTable.java  |  4 ++--
 .../federate/schema/table/FederateFilterableTable.java    |  4 ++--
 .../infra/optimize/context/OptimizeContextFactory.java    |  6 +++---
 ...gicSchemaMetadata.java => FederateSchemaMetadata.java} | 10 +++++-----
 ...cSchemaMetadatas.java => FederateSchemaMetadatas.java} | 10 +++++-----
 ...LogicTableMetadata.java => FederateTableMetadata.java} | 15 ++++++---------
 8 files changed, 28 insertions(+), 33 deletions(-)

diff --git 
a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
 
b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
index c9acc6d..370bf76 100644
--- 
a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
+++ 
b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
@@ -446,6 +446,4 @@ public final class GovernanceMetaDataContexts implements 
MetaDataContexts {
     private Collection<ShardingSphereUser> getModifiedUsers(final 
ShardingSphereUsers oldUsers, final Collection<ShardingSphereUser> users) {
         return users.stream().filter(each -> 
oldUsers.findUser(each.getGrantee()).isPresent()).collect(Collectors.toSet());
     }
-    
-    // TODO subscribe for global rules changed
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/FederateLogicSchema.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/FederateLogicSchema.java
index a5a16b5..3a7b6c9 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/FederateLogicSchema.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/FederateLogicSchema.java
@@ -23,8 +23,8 @@ import org.apache.calcite.schema.impl.AbstractSchema;
 import org.apache.commons.collections4.map.LinkedMap;
 import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.row.FederateRowExecutor;
 import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.table.FederateFilterableTable;
-import 
org.apache.shardingsphere.infra.optimize.core.schema.LogicSchemaMetadata;
-import org.apache.shardingsphere.infra.optimize.core.schema.LogicTableMetadata;
+import 
org.apache.shardingsphere.infra.optimize.core.schema.FederateSchemaMetadata;
+import 
org.apache.shardingsphere.infra.optimize.core.schema.FederateTableMetadata;
 
 import java.util.Map;
 import java.util.Map.Entry;
@@ -41,13 +41,13 @@ public final class FederateLogicSchema extends 
AbstractSchema {
     
     private final Map<String, Table> tables = new LinkedMap<>();
     
-    public FederateLogicSchema(final LogicSchemaMetadata metadata, final 
FederateRowExecutor executor) {
+    public FederateLogicSchema(final FederateSchemaMetadata metadata, final 
FederateRowExecutor executor) {
         this.name = metadata.getName();
         initTables(metadata, executor);
     }
     
-    private void initTables(final LogicSchemaMetadata metadata, final 
FederateRowExecutor executor) {
-        for (Entry<String, LogicTableMetadata> entry : 
metadata.getTables().entrySet()) {
+    private void initTables(final FederateSchemaMetadata metadata, final 
FederateRowExecutor executor) {
+        for (Entry<String, FederateTableMetadata> entry : 
metadata.getTables().entrySet()) {
             tables.put(entry.getKey(), new 
FederateFilterableTable(entry.getValue(), executor));
         }
     }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/AbstractFederateTable.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/AbstractFederateTable.java
index 3a957a5..e55f9a8 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/AbstractFederateTable.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/AbstractFederateTable.java
@@ -24,7 +24,7 @@ import org.apache.calcite.rel.type.RelDataType;
 import org.apache.calcite.rel.type.RelDataTypeFactory;
 import org.apache.calcite.schema.impl.AbstractTable;
 import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.row.FederateRowExecutor;
-import org.apache.shardingsphere.infra.optimize.core.schema.LogicTableMetadata;
+import 
org.apache.shardingsphere.infra.optimize.core.schema.FederateTableMetadata;
 
 /**
  * Abstract Federate table.
@@ -33,7 +33,7 @@ import 
org.apache.shardingsphere.infra.optimize.core.schema.LogicTableMetadata;
 @RequiredArgsConstructor
 public abstract class AbstractFederateTable extends AbstractTable {
     
-    private final LogicTableMetadata metadata;
+    private final FederateTableMetadata metadata;
     
     private final FederateRowExecutor executor;
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/FederateFilterableTable.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/FederateFilterableTable.java
index 9f7dca1..4afb97f 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/FederateFilterableTable.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/FederateFilterableTable.java
@@ -25,7 +25,7 @@ import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.schema.ProjectableFilterableTable;
 import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.row.FederateRowEnumerator;
 import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.row.FederateRowExecutor;
-import org.apache.shardingsphere.infra.optimize.core.schema.LogicTableMetadata;
+import 
org.apache.shardingsphere.infra.optimize.core.schema.FederateTableMetadata;
 
 import java.util.List;
 
@@ -35,7 +35,7 @@ import java.util.List;
  */
 public final class FederateFilterableTable extends AbstractFederateTable 
implements ProjectableFilterableTable {
     
-    public FederateFilterableTable(final LogicTableMetadata metadata, final 
FederateRowExecutor executor) {
+    public FederateFilterableTable(final FederateTableMetadata metadata, final 
FederateRowExecutor executor) {
         super(metadata, executor);
     }
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/OptimizeContextFactory.java
 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/OptimizeContextFactory.java
index c54cb94..9137c51 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/OptimizeContextFactory.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/OptimizeContextFactory.java
@@ -52,7 +52,7 @@ import 
org.apache.shardingsphere.infra.database.type.dialect.SQLServerDatabaseTy
 import org.apache.shardingsphere.infra.exception.ShardingSphereException;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.optimize.core.plan.PlannerInitializer;
-import 
org.apache.shardingsphere.infra.optimize.core.schema.LogicSchemaMetadatas;
+import 
org.apache.shardingsphere.infra.optimize.core.schema.FederateSchemaMetadatas;
 
 import java.util.Collections;
 import java.util.Map;
@@ -76,7 +76,7 @@ public final class OptimizeContextFactory {
     private final RelDataTypeFactory typeFactory;
     
     @Getter
-    private final LogicSchemaMetadatas schemaMetadatas;
+    private final FederateSchemaMetadatas schemaMetadatas;
     
     private final RelOptCluster cluster;
     
@@ -85,7 +85,7 @@ public final class OptimizeContextFactory {
         initProperties(databaseType);
         typeFactory = new JavaTypeFactoryImpl();
         cluster = newCluster();
-        schemaMetadatas = new LogicSchemaMetadatas(metaDataMap);
+        schemaMetadatas = new FederateSchemaMetadatas(metaDataMap);
         connectionConfig = new CalciteConnectionConfigImpl(properties);
         parserConfig = SqlParser.config()
                 .withLex(connectionConfig.lex())
diff --git 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicSchemaMetadata.java
 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/FederateSchemaMetadata.java
similarity index 88%
rename from 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicSchemaMetadata.java
rename to 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/FederateSchemaMetadata.java
index 50d6a06..7ab5103 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicSchemaMetadata.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/FederateSchemaMetadata.java
@@ -34,17 +34,17 @@ import java.util.Map.Entry;
 
 
 /**
- * Logic schema metadata.
+ * Federate schema metadata.
  *
  */
 @Getter
-public final class LogicSchemaMetadata {
+public final class FederateSchemaMetadata {
     
     private final String name;
     
-    private final Map<String, LogicTableMetadata> tables = new LinkedMap<>();
+    private final Map<String, FederateTableMetadata> tables = new 
LinkedMap<>();
     
-    public LogicSchemaMetadata(final String name, final ShardingSphereMetaData 
metaData) throws SQLException {
+    public FederateSchemaMetadata(final String name, final 
ShardingSphereMetaData metaData) throws SQLException {
         this.name = name;
         initTables(metaData);
     }
@@ -55,7 +55,7 @@ public final class LogicSchemaMetadata {
         Map<String, Collection<String>> dataSourceRules = 
getDataSourceRules(metaData);
         for (Entry<String, Collection<DataNode>> entry : 
tableDataNodes.entrySet()) {
             tables.put(entry.getKey(),
-                    new LogicTableMetadata(entry.getKey(), 
metaData.getResource().getDataSources(), dataSourceRules, entry.getValue(), 
metaData.getResource().getDatabaseType()));
+                    new FederateTableMetadata(entry.getKey(), 
metaData.getResource().getDataSources(), dataSourceRules, entry.getValue(), 
metaData.getResource().getDatabaseType()));
         }
     }
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicSchemaMetadatas.java
 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/FederateSchemaMetadatas.java
similarity index 80%
rename from 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicSchemaMetadatas.java
rename to 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/FederateSchemaMetadatas.java
index 121c54c..0ce623e 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicSchemaMetadatas.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/FederateSchemaMetadatas.java
@@ -27,17 +27,17 @@ import java.util.Map;
 import java.util.Map.Entry;
 
 /**
- * Logic schema metadatas.
+ * Federate schema metadatas.
  */
 @Getter
-public final class LogicSchemaMetadatas {
+public final class FederateSchemaMetadatas {
     
-    private final Map<String, LogicSchemaMetadata> schemas = new LinkedMap<>();
+    private final Map<String, FederateSchemaMetadata> schemas = new 
LinkedMap<>();
     
-    public LogicSchemaMetadatas(final Map<String, ShardingSphereMetaData> 
metaDataMap) {
+    public FederateSchemaMetadatas(final Map<String, ShardingSphereMetaData> 
metaDataMap) {
         for (Entry<String, ShardingSphereMetaData> each : 
metaDataMap.entrySet()) {
             try {
-                schemas.put(each.getKey(), new 
LogicSchemaMetadata(each.getKey(), each.getValue()));
+                schemas.put(each.getKey(), new 
FederateSchemaMetadata(each.getKey(), each.getValue()));
             } catch (final SQLException ex) {
                 throw new ShardingSphereException(ex);
             }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicTableMetadata.java
 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/FederateTableMetadata.java
similarity index 85%
rename from 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicTableMetadata.java
rename to 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/FederateTableMetadata.java
index 8b877eb..111082e 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicTableMetadata.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/FederateTableMetadata.java
@@ -37,22 +37,19 @@ import java.util.Map;
 import java.util.Optional;
 
 /**
- * Logic table metadata.
+ * Federate table metadata.
  */
 @Getter
-public final class LogicTableMetadata {
+public final class FederateTableMetadata {
     
     private final String name;
     
-    private final TableMetaData tableMetaData;
-    
     private final RelProtoDataType relProtoDataType;
     
-    public LogicTableMetadata(final String name, final Map<String, DataSource> 
dataSources, final Map<String, Collection<String>> dataSourceRules,
-                              final Collection<DataNode> tableDataNodes, final 
DatabaseType databaseType) throws SQLException {
+    public FederateTableMetadata(final String name, final Map<String, 
DataSource> dataSources, final Map<String, Collection<String>> dataSourceRules,
+                                 final Collection<DataNode> tableDataNodes, 
final DatabaseType databaseType) throws SQLException {
         this.name = name;
-        tableMetaData = createTableMetaData(dataSources, dataSourceRules, 
tableDataNodes, databaseType);
-        relProtoDataType = createRelDataType();
+        relProtoDataType = createRelDataType(createTableMetaData(dataSources, 
dataSourceRules, tableDataNodes, databaseType));
     }
     
     private TableMetaData createTableMetaData(final Map<String, DataSource> 
dataSources, final Map<String, Collection<String>> dataSourceRules,
@@ -63,7 +60,7 @@ public final class LogicTableMetadata {
         return tableMetaData.orElseGet(TableMetaData::new);
     }
     
-    private RelProtoDataType createRelDataType() {
+    private RelProtoDataType createRelDataType(final TableMetaData 
tableMetaData) {
         RelDataTypeFactory typeFactory = new 
SqlTypeFactoryImpl(RelDataTypeSystem.DEFAULT);
         RelDataTypeFactory.Builder fieldInfo = typeFactory.builder();
         for (Map.Entry<String, ColumnMetaData> entry : 
tableMetaData.getColumns().entrySet()) {

Reply via email to