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

Reply via email to