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()) {