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