This is an automated email from the ASF dual-hosted git repository.

zhaojinchao 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 03b10d58859 Optimize DropShardingTableRuleStatementUpdater (#26412)
03b10d58859 is described below

commit 03b10d58859e1cbb413954a44b2d4a2b37f91377
Author: Raigor <[email protected]>
AuthorDate: Sun Jun 18 17:39:25 2023 +0800

    Optimize DropShardingTableRuleStatementUpdater (#26412)
---
 ...va => DropDefaultShardingStrategyStatementUpdater.java} |  4 ++--
 .../update/DropShardingTableRuleStatementUpdater.java      | 14 +++++---------
 ...dingsphere.distsql.handler.update.RuleDefinitionUpdater |  2 +-
 .../DropDefaultShardingStrategyStatementUpdaterTest.java   |  4 ++--
 .../handler/exception/rule/RuleInUsedException.java        |  4 ++++
 5 files changed, 14 insertions(+), 14 deletions(-)

diff --git 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultStrategyStatementUpdater.java
 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultShardingStrategyStatementUpdater.java
similarity index 96%
rename from 
features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultStrategyStatementUpdater.java
rename to 
features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultShardingStrategyStatementUpdater.java
index 64ad50b59c4..2e1c919d37a 100644
--- 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultStrategyStatementUpdater.java
+++ 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultShardingStrategyStatementUpdater.java
@@ -29,9 +29,9 @@ import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropDefaultSh
 import java.util.Optional;
 
 /**
- * Drop sharding table rule statement updater.
+ * Drop default sharding strategy statement updater.
  */
-public final class DropDefaultStrategyStatementUpdater implements 
RuleDefinitionDropUpdater<DropDefaultShardingStrategyStatement, 
ShardingRuleConfiguration> {
+public final class DropDefaultShardingStrategyStatementUpdater implements 
RuleDefinitionDropUpdater<DropDefaultShardingStrategyStatement, 
ShardingRuleConfiguration> {
     
     @Override
     public void checkSQLStatement(final ShardingSphereDatabase database, final 
DropDefaultShardingStrategyStatement sqlStatement,
diff --git 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleStatementUpdater.java
 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleStatementUpdater.java
index d12a66b39fe..7faa990b44b 100644
--- 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleStatementUpdater.java
+++ 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleStatementUpdater.java
@@ -84,7 +84,7 @@ public final class DropShardingTableRuleStatementUpdater 
implements RuleDefiniti
         Collection<String> bindingTables = getBindingTables(currentRuleConfig);
         Collection<String> usedTableNames = 
getToBeDroppedShardingTableNames(sqlStatement).stream().filter(each -> 
containsIgnoreCase(bindingTables, each)).collect(Collectors.toList());
         if (!usedTableNames.isEmpty()) {
-            throw new RuleInUsedException("Sharding", databaseName, 
usedTableNames);
+            throw new RuleInUsedException("Sharding", databaseName, 
usedTableNames, "sharding table reference");
         }
     }
     
@@ -135,10 +135,8 @@ public final class DropShardingTableRuleStatementUpdater 
implements RuleDefiniti
     private void dropUnusedKeyGenerator(final ShardingRuleConfiguration 
currentRuleConfig) {
         Collection<String> inUsedKeyGenerators = 
currentRuleConfig.getTables().stream().map(ShardingTableRuleConfiguration::getKeyGenerateStrategy).filter(Objects::nonNull)
                 
.map(KeyGenerateStrategyConfiguration::getKeyGeneratorName).collect(Collectors.toSet());
-        
inUsedKeyGenerators.addAll(currentRuleConfig.getTables().stream().filter(each 
-> null != each.getKeyGenerateStrategy())
-                .map(each -> 
each.getKeyGenerateStrategy().getKeyGeneratorName()).collect(Collectors.toSet()));
-        
inUsedKeyGenerators.addAll(currentRuleConfig.getAutoTables().stream().filter(each
 -> null != each.getKeyGenerateStrategy())
-                .map(each -> 
each.getKeyGenerateStrategy().getKeyGeneratorName()).collect(Collectors.toSet()));
+        
inUsedKeyGenerators.addAll(currentRuleConfig.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getKeyGenerateStrategy).filter(Objects::nonNull)
+                
.map(KeyGenerateStrategyConfiguration::getKeyGeneratorName).collect(Collectors.toSet()));
         if (null != currentRuleConfig.getDefaultKeyGenerateStrategy()) {
             
inUsedKeyGenerators.add(currentRuleConfig.getDefaultKeyGenerateStrategy().getKeyGeneratorName());
         }
@@ -149,10 +147,8 @@ public final class DropShardingTableRuleStatementUpdater 
implements RuleDefiniti
     private void dropUnusedAuditor(final ShardingRuleConfiguration 
currentRuleConfig) {
         Collection<String> inUsedAuditors = 
currentRuleConfig.getTables().stream().map(ShardingTableRuleConfiguration::getAuditStrategy).filter(Objects::nonNull)
                 .flatMap(each -> 
each.getAuditorNames().stream()).collect(Collectors.toSet());
-        
inUsedAuditors.addAll(currentRuleConfig.getTables().stream().filter(each -> 
null != each.getAuditStrategy())
-                .flatMap(each -> 
each.getAuditStrategy().getAuditorNames().stream()).collect(Collectors.toSet()));
-        
inUsedAuditors.addAll(currentRuleConfig.getAutoTables().stream().filter(each -> 
null != each.getAuditStrategy())
-                .flatMap(each -> 
each.getAuditStrategy().getAuditorNames().stream()).collect(Collectors.toSet()));
+        
inUsedAuditors.addAll(currentRuleConfig.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getAuditStrategy).filter(Objects::nonNull)
+                .flatMap(each -> 
each.getAuditorNames().stream()).collect(Collectors.toSet()));
         if (null != currentRuleConfig.getDefaultAuditStrategy()) {
             
inUsedAuditors.addAll(currentRuleConfig.getDefaultAuditStrategy().getAuditorNames());
         }
diff --git 
a/features/sharding/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater
 
b/features/sharding/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater
index b1e5c614736..c8d2b84f333 100644
--- 
a/features/sharding/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater
+++ 
b/features/sharding/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater
@@ -26,4 +26,4 @@ 
org.apache.shardingsphere.sharding.distsql.handler.update.CreateDefaultShardingS
 
org.apache.shardingsphere.sharding.distsql.handler.update.DropShardingKeyGeneratorStatementUpdater
 
org.apache.shardingsphere.sharding.distsql.handler.update.DropShardingAuditorStatementUpdater
 
org.apache.shardingsphere.sharding.distsql.handler.update.AlterDefaultShardingStrategyStatementUpdater
-org.apache.shardingsphere.sharding.distsql.handler.update.DropDefaultStrategyStatementUpdater
+org.apache.shardingsphere.sharding.distsql.handler.update.DropDefaultShardingStrategyStatementUpdater
diff --git 
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/DropDefaultShardingStrategyStatementUpdaterTest.java
 
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/DropDefaultShardingStrategyStatementUpdaterTest.java
index 184ed1d545f..29048f516d4 100644
--- 
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/DropDefaultShardingStrategyStatementUpdaterTest.java
+++ 
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/DropDefaultShardingStrategyStatementUpdaterTest.java
@@ -22,7 +22,7 @@ import 
org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.strategy.sharding.StandardShardingStrategyConfiguration;
-import 
org.apache.shardingsphere.sharding.distsql.handler.update.DropDefaultStrategyStatementUpdater;
+import 
org.apache.shardingsphere.sharding.distsql.handler.update.DropDefaultShardingStrategyStatementUpdater;
 import 
org.apache.shardingsphere.sharding.distsql.parser.statement.DropDefaultShardingStrategyStatement;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -44,7 +44,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 @ExtendWith(MockitoExtension.class)
 class DropDefaultShardingStrategyStatementUpdaterTest {
     
-    private final DropDefaultStrategyStatementUpdater updater = new 
DropDefaultStrategyStatementUpdater();
+    private final DropDefaultShardingStrategyStatementUpdater updater = new 
DropDefaultShardingStrategyStatementUpdater();
     
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private ShardingSphereDatabase database;
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/exception/rule/RuleInUsedException.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/exception/rule/RuleInUsedException.java
index 4b669198987..56b4f86bc41 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/exception/rule/RuleInUsedException.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/exception/rule/RuleInUsedException.java
@@ -31,4 +31,8 @@ public final class RuleInUsedException extends 
RuleDefinitionViolationException
     public RuleInUsedException(final String ruleType, final String 
databaseName, final Collection<String> ruleNames) {
         super(XOpenSQLState.CHECK_OPTION_VIOLATION, 102, "%s rules `%s` in 
database `%s` are still in used.", ruleType, ruleNames, databaseName);
     }
+    
+    public RuleInUsedException(final String ruleType, final String 
databaseName, final Collection<String> ruleNames, final String usingType) {
+        super(XOpenSQLState.CHECK_OPTION_VIOLATION, 102, "%s rules `%s` in 
database `%s` are still in used by %s.", ruleType, ruleNames, databaseName, 
usingType);
+    }
 }

Reply via email to