This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 7e2f2da6ffa Refactor LoadSingleTableExecutor (#32876)
7e2f2da6ffa is described below
commit 7e2f2da6ffa488db429151ef3d6b3f6204af9f40
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Sep 15 11:15:32 2024 +0800
Refactor LoadSingleTableExecutor (#32876)
* Refactor LoadSingleTableExecutor
* Refactor LoadSingleTableExecutor
---
.../single/distsql/handler/update/LoadSingleTableExecutor.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutor.java
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutor.java
index 80e02e8fd31..e01d3c86980 100644
---
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutor.java
+++
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutor.java
@@ -28,6 +28,7 @@ import
org.apache.shardingsphere.infra.exception.dialect.exception.syntax.table.
import
org.apache.shardingsphere.infra.exception.kernel.metadata.TableNotFoundException;
import
org.apache.shardingsphere.infra.exception.kernel.metadata.datanode.InvalidDataNodeFormatException;
import
org.apache.shardingsphere.infra.exception.kernel.metadata.resource.storageunit.EmptyStorageUnitException;
+import
org.apache.shardingsphere.infra.exception.kernel.metadata.resource.storageunit.InvalidStorageUnitStatusException;
import
org.apache.shardingsphere.infra.exception.kernel.metadata.resource.storageunit.MissingRequiredStorageUnitsException;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
@@ -51,8 +52,8 @@ import java.util.stream.Collectors;
/**
* Load single table statement executor.
*/
-@Slf4j
@Setter
+@Slf4j
public final class LoadSingleTableExecutor implements
DatabaseRuleCreateExecutor<LoadSingleTableStatement, SingleRule,
SingleRuleConfiguration> {
private ShardingSphereDatabase database;
@@ -115,6 +116,9 @@ public final class LoadSingleTableExecutor implements
DatabaseRuleCreateExecutor
ResourceMetaData resourceMetaData = database.getResourceMetaData();
Map<String, DataSource> aggregateDataSourceMap =
SingleTableLoadUtils.getAggregatedDataSourceMap(
resourceMetaData.getStorageUnits().entrySet().stream().collect(Collectors.toMap(Entry::getKey,
entry -> entry.getValue().getDataSource())),
database.getRuleMetaData().getRules());
+ Collection<String> invalidDataSources =
requiredDataSources.stream().filter(each ->
!aggregateDataSourceMap.containsKey(each)).collect(Collectors.toList());
+ ShardingSpherePreconditions.checkState(invalidDataSources.isEmpty(),
() -> new InvalidStorageUnitStatusException(String.format("`%s` is invalid,
please use `%s`",
+ String.join(",", invalidDataSources), String.join(",",
aggregateDataSourceMap.keySet()))));
Map<String, Map<String, Collection<String>>> actualTableNodes =
getActualTableNodes(requiredDataSources, aggregateDataSourceMap);
for (SingleTableSegment each : sqlStatement.getTables()) {
String tableName = each.getTableName();