You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by wu...@apache.org on 2021/06/06 09:47:07 UTC

[shardingsphere] branch master updated: Improve Federate metadata (#10674)

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) <pa...@apache.org>
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()) {