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

jianglongtao 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 daadd99ebfa Fix create default sharding strategy while sharding rule 
configuration is null (#24856)
daadd99ebfa is described below

commit daadd99ebfafe80259c623cba02d16555ea25cc3
Author: ChenJiaHao <[email protected]>
AuthorDate: Mon Mar 27 16:11:04 2023 +0800

    Fix create default sharding strategy while sharding rule configuration is 
null (#24856)
    
    * Fix create default sharding strategy while sharding rule configuration is 
null
    
    * Update test method name
---
 .../update/CreateDefaultShardingStrategyStatementUpdater.java    | 9 +++------
 .../CreateDefaultShardingStrategyStatementUpdaterTest.java       | 6 +++---
 2 files changed, 6 insertions(+), 9 deletions(-)

diff --git 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateDefaultShardingStrategyStatementUpdater.java
 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateDefaultShardingStrategyStatementUpdater.java
index fbc5ab15abd..1a3281a1935 100644
--- 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateDefaultShardingStrategyStatementUpdater.java
+++ 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateDefaultShardingStrategyStatementUpdater.java
@@ -20,7 +20,6 @@ package 
org.apache.shardingsphere.sharding.distsql.handler.update;
 import 
org.apache.shardingsphere.distsql.handler.exception.algorithm.InvalidAlgorithmConfigurationException;
 import 
org.apache.shardingsphere.distsql.handler.exception.algorithm.MissingRequiredAlgorithmException;
 import 
org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException;
-import 
org.apache.shardingsphere.distsql.handler.exception.rule.MissingRequiredRuleException;
 import 
org.apache.shardingsphere.distsql.handler.update.RuleDefinitionCreateUpdater;
 import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
 import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
@@ -44,7 +43,6 @@ public final class 
CreateDefaultShardingStrategyStatementUpdater implements Rule
     @Override
     public void checkSQLStatement(final ShardingSphereDatabase database, final 
CreateDefaultShardingStrategyStatement sqlStatement, final 
ShardingRuleConfiguration currentRuleConfig) {
         String databaseName = database.getName();
-        checkCurrentRuleConfiguration(databaseName, currentRuleConfig);
         if (!"none".equalsIgnoreCase(sqlStatement.getStrategyType())) {
             checkAlgorithm(sqlStatement);
         }
@@ -53,10 +51,6 @@ public final class 
CreateDefaultShardingStrategyStatementUpdater implements Rule
         }
     }
     
-    private void checkCurrentRuleConfiguration(final String databaseName, 
final ShardingRuleConfiguration currentRuleConfig) {
-        ShardingSpherePreconditions.checkNotNull(currentRuleConfig, () -> new 
MissingRequiredRuleException("Sharding", databaseName));
-    }
-    
     private void checkAlgorithm(final CreateDefaultShardingStrategyStatement 
sqlStatement) {
         
ShardingSpherePreconditions.checkState(ShardingStrategyType.contains(sqlStatement.getStrategyType()),
 () -> new 
InvalidAlgorithmConfigurationException(sqlStatement.getStrategyType()));
         
ShardingSpherePreconditions.checkState(ShardingStrategyType.getValueOf(sqlStatement.getStrategyType())
@@ -69,6 +63,9 @@ public final class 
CreateDefaultShardingStrategyStatementUpdater implements Rule
     }
     
     private void checkExist(final String databaseName, final 
CreateDefaultShardingStrategyStatement sqlStatement, final 
ShardingRuleConfiguration currentRuleConfig) {
+        if (null == currentRuleConfig) {
+            return;
+        }
         Optional<ShardingStrategyConfiguration> strategyConfig = 
getStrategyConfiguration(currentRuleConfig, sqlStatement.getDefaultType());
         ShardingSpherePreconditions.checkState(!strategyConfig.isPresent(),
                 () -> new DuplicateRuleException(String.format("default 
sharding %s strategy", sqlStatement.getDefaultType().toLowerCase()), 
databaseName));
diff --git 
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateDefaultShardingStrategyStatementUpdaterTest.java
 
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateDefaultShardingStrategyStatementUpdaterTest.java
index 0c8aa4175af..38f522675f2 100644
--- 
a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateDefaultShardingStrategyStatementUpdaterTest.java
+++ 
b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateDefaultShardingStrategyStatementUpdaterTest.java
@@ -18,8 +18,8 @@
 package org.apache.shardingsphere.sharding.distsql.update;
 
 import 
org.apache.shardingsphere.distsql.handler.exception.algorithm.InvalidAlgorithmConfigurationException;
+import 
org.apache.shardingsphere.distsql.handler.exception.algorithm.MissingRequiredAlgorithmException;
 import 
org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException;
-import 
org.apache.shardingsphere.distsql.handler.exception.rule.MissingRequiredRuleException;
 import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
@@ -63,9 +63,9 @@ class CreateDefaultShardingStrategyStatementUpdaterTest {
     }
     
     @Test
-    void assertExecuteWithoutCurrentConfiguration() {
+    void assertExecuteWithoutAlgorithm() {
         CreateDefaultShardingStrategyStatement statement = new 
CreateDefaultShardingStrategyStatement(false, "TABLE", "standard", "order_id", 
null);
-        assertThrows(MissingRequiredRuleException.class, () -> 
updater.checkSQLStatement(database, statement, null));
+        assertThrows(MissingRequiredAlgorithmException.class, () -> 
updater.checkSQLStatement(database, statement, null));
     }
     
     @Test

Reply via email to