This is an automated email from the ASF dual-hosted git repository.
zhonghongsheng 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 d15bebd6803 Refactor GenericSchemaBuilderMaterial (#28175)
d15bebd6803 is described below
commit d15bebd680362e6a26dab285f07a27ace8dcd1b0
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Aug 19 13:03:18 2023 +0800
Refactor GenericSchemaBuilderMaterial (#28175)
---
.../database/schema/builder/GenericSchemaBuilderMaterial.java | 6 ++++++
.../refresher/type/table/AlterTableStatementSchemaRefresher.java | 4 ++--
.../refresher/type/table/CreateTableStatementSchemaRefresher.java | 4 ++--
.../refresher/type/table/RenameTableStatementSchemaRefresher.java | 4 ++--
.../refresher/type/view/AlterViewStatementSchemaRefresher.java | 4 ++--
.../refresher/type/view/CreateViewStatementSchemaRefresher.java | 4 ++--
6 files changed, 16 insertions(+), 10 deletions(-)
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderMaterial.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderMaterial.java
index 824aceda2bd..bbb6f3ed387 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderMaterial.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderMaterial.java
@@ -21,6 +21,7 @@ import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import
org.apache.shardingsphere.infra.metadata.database.resource.storage.StorageUnitMetaData;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import javax.sql.DataSource;
@@ -45,4 +46,9 @@ public final class GenericSchemaBuilderMaterial {
private final ConfigurationProperties props;
private final String defaultSchemaName;
+
+ public GenericSchemaBuilderMaterial(final DatabaseType protocolType, final
StorageUnitMetaData storageUnitMetaData,
+ final Collection<ShardingSphereRule>
rules, final ConfigurationProperties props, final String defaultSchemaName) {
+ this(protocolType, storageUnitMetaData.getStorageTypes(),
storageUnitMetaData.getDataSources(), rules, props, defaultSchemaName);
+ }
}
diff --git
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/AlterTableStatementSchemaRefresher.java
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/AlterTableStatementSchemaRefresher.java
index 828a3400604..97bdfe8fc59 100644
---
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/AlterTableStatementSchemaRefresher.java
+++
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/AlterTableStatementSchemaRefresher.java
@@ -65,8 +65,8 @@ public final class AlterTableStatementSchemaRefresher
implements MetaDataRefresh
if (TableRefreshUtils.isSingleTable(tableName, database)) {
ruleMetaData.findRules(MutableDataNodeRule.class).forEach(each ->
each.put(logicDataSourceNames.iterator().next(), schemaName, tableName));
}
- GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
- database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
ruleMetaData.getRules(), props, schemaName);
+ GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(
+ database.getProtocolType(),
database.getResourceMetaData().getStorageUnitMetaData(),
ruleMetaData.getRules(), props, schemaName);
Map<String, ShardingSphereSchema> schemaMap =
GenericSchemaBuilder.build(Collections.singletonList(tableName), material);
return Optional.ofNullable(schemaMap.get(schemaName)).map(optional ->
optional.getTable(tableName))
.orElseGet(() -> new ShardingSphereTable(tableName,
Collections.emptyList(), Collections.emptyList(), Collections.emptyList()));
diff --git
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/CreateTableStatementSchemaRefresher.java
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/CreateTableStatementSchemaRefresher.java
index db732e7a98b..0b49b2c319f 100644
---
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/CreateTableStatementSchemaRefresher.java
+++
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/CreateTableStatementSchemaRefresher.java
@@ -53,8 +53,8 @@ public final class CreateTableStatementSchemaRefresher
implements MetaDataRefres
if (isSingleTable) {
ruleMetaData.findRules(MutableDataNodeRule.class).forEach(each ->
each.put(logicDataSourceNames.iterator().next(), schemaName, tableName));
}
- GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
- database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
ruleMetaData.getRules(), props, schemaName);
+ GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(
+ database.getProtocolType(),
database.getResourceMetaData().getStorageUnitMetaData(),
ruleMetaData.getRules(), props, schemaName);
Map<String, ShardingSphereSchema> schemaMap =
GenericSchemaBuilder.build(Collections.singletonList(tableName), material);
Optional<ShardingSphereTable> actualTableMetaData =
Optional.ofNullable(schemaMap.get(schemaName)).map(optional ->
optional.getTable(tableName));
if (actualTableMetaData.isPresent()) {
diff --git
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/RenameTableStatementSchemaRefresher.java
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/RenameTableStatementSchemaRefresher.java
index 62bf4aba378..3122b4ed5c2 100644
---
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/RenameTableStatementSchemaRefresher.java
+++
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/RenameTableStatementSchemaRefresher.java
@@ -63,8 +63,8 @@ public final class RenameTableStatementSchemaRefresher
implements MetaDataRefres
if (TableRefreshUtils.isSingleTable(tableName, database)) {
ruleMetaData.findRules(MutableDataNodeRule.class).forEach(each ->
each.put(logicDataSourceNames.iterator().next(), schemaName, tableName));
}
- GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
- database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
ruleMetaData.getRules(), props, schemaName);
+ GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(
+ database.getProtocolType(),
database.getResourceMetaData().getStorageUnitMetaData(),
ruleMetaData.getRules(), props, schemaName);
Map<String, ShardingSphereSchema> schemaMap =
GenericSchemaBuilder.build(Collections.singletonList(tableName), material);
return Optional.ofNullable(schemaMap.get(schemaName)).map(optional ->
optional.getTable(tableName))
.orElseGet(() -> new ShardingSphereTable(tableName,
Collections.emptyList(), Collections.emptyList(), Collections.emptyList()));
diff --git
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/AlterViewStatementSchemaRefresher.java
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/AlterViewStatementSchemaRefresher.java
index 84f9e3aa36b..e8d24284106 100644
---
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/AlterViewStatementSchemaRefresher.java
+++
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/AlterViewStatementSchemaRefresher.java
@@ -77,8 +77,8 @@ public final class AlterViewStatementSchemaRefresher
implements MetaDataRefreshe
if (TableRefreshUtils.isSingleTable(viewName, database)) {
ruleMetaData.findRules(MutableDataNodeRule.class).forEach(each ->
each.put(logicDataSourceNames.iterator().next(), schemaName, viewName));
}
- GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
- database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
ruleMetaData.getRules(), props, schemaName);
+ GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(
+ database.getProtocolType(),
database.getResourceMetaData().getStorageUnitMetaData(),
ruleMetaData.getRules(), props, schemaName);
Map<String, ShardingSphereSchema> schemaMap =
GenericSchemaBuilder.build(Collections.singletonList(viewName), material);
Optional<ShardingSphereTable> actualViewMetaData =
Optional.ofNullable(schemaMap.get(schemaName)).map(optional ->
optional.getTable(viewName));
ShardingSphereSchema result = new ShardingSphereSchema();
diff --git
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/CreateViewStatementSchemaRefresher.java
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/CreateViewStatementSchemaRefresher.java
index a95506639c3..aa1cb7dbab3 100644
---
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/CreateViewStatementSchemaRefresher.java
+++
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/CreateViewStatementSchemaRefresher.java
@@ -53,8 +53,8 @@ public final class CreateViewStatementSchemaRefresher
implements MetaDataRefresh
if (TableRefreshUtils.isSingleTable(viewName, database)) {
ruleMetaData.findRules(MutableDataNodeRule.class).forEach(each ->
each.put(logicDataSourceNames.iterator().next(), schemaName, viewName));
}
- GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
- database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
ruleMetaData.getRules(), props, schemaName);
+ GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(
+ database.getProtocolType(),
database.getResourceMetaData().getStorageUnitMetaData(),
ruleMetaData.getRules(), props, schemaName);
Map<String, ShardingSphereSchema> schemaMap =
GenericSchemaBuilder.build(Collections.singletonList(viewName), material);
Optional<ShardingSphereTable> actualTableMetaData =
Optional.ofNullable(schemaMap.get(schemaName)).map(optional ->
optional.getTable(viewName));
if (actualTableMetaData.isPresent()) {