You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2021/10/08 09:11:44 UTC
[shardingsphere] branch master updated: Adjust the type of
exception. (#12940)
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 eb01313 Adjust the type of exception. (#12940)
eb01313 is described below
commit eb01313bed2c4afa194b4cbf72123254ca69271d
Author: lanchengx <52...@users.noreply.github.com>
AuthorDate: Fri Oct 8 04:11:07 2021 -0500
Adjust the type of exception. (#12940)
---
...teShardingBindingTableRuleStatementUpdater.java | 24 ++++++++--------------
...ardingBindingTableRuleStatementUpdaterTest.java | 9 ++++----
2 files changed, 14 insertions(+), 19 deletions(-)
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingBindingTableRuleStatementUpdater.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingBindingTableRuleStatementUpd [...]
index d52d0ef..ddd213c 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingBindingTableRuleStatementUpdater.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/CreateShardingBindingTableRuleStatementUpdater.java
@@ -17,10 +17,10 @@
package org.apache.shardingsphere.sharding.distsql.handler.update;
-import org.apache.shardingsphere.infra.distsql.update.RuleDefinitionCreateUpdater;
+import org.apache.shardingsphere.infra.distsql.exception.DistSQLException;
import org.apache.shardingsphere.infra.distsql.exception.rule.DuplicateRuleException;
import org.apache.shardingsphere.infra.distsql.exception.rule.RequiredRuleMissedException;
-import org.apache.shardingsphere.infra.distsql.exception.rule.RuleDefinitionViolationException;
+import org.apache.shardingsphere.infra.distsql.update.RuleDefinitionCreateUpdater;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
@@ -31,6 +31,7 @@ import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardin
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
+import java.util.Set;
import java.util.stream.Collectors;
/**
@@ -39,8 +40,8 @@ import java.util.stream.Collectors;
public final class CreateShardingBindingTableRuleStatementUpdater implements RuleDefinitionCreateUpdater<CreateShardingBindingTableRulesStatement, ShardingRuleConfiguration> {
@Override
- public void checkSQLStatement(final ShardingSphereMetaData shardingSphereMetaData, final CreateShardingBindingTableRulesStatement sqlStatement,
- final ShardingRuleConfiguration currentRuleConfig) throws RuleDefinitionViolationException {
+ public void checkSQLStatement(final ShardingSphereMetaData shardingSphereMetaData, final CreateShardingBindingTableRulesStatement sqlStatement,
+ final ShardingRuleConfiguration currentRuleConfig) throws DistSQLException {
String schemaName = shardingSphereMetaData.getName();
checkCurrentRuleConfiguration(schemaName, currentRuleConfig);
checkToBeCreatedBindingTables(schemaName, sqlStatement, currentRuleConfig);
@@ -53,18 +54,11 @@ public final class CreateShardingBindingTableRuleStatementUpdater implements Rul
}
}
- private void checkToBeCreatedBindingTables(final String schemaName, final CreateShardingBindingTableRulesStatement sqlStatement,
- final ShardingRuleConfiguration currentRuleConfig) throws DuplicateRuleException {
- Collection<String> notExistedBindingTables = new HashSet<>();
+ private void checkToBeCreatedBindingTables(final String schemaName, final CreateShardingBindingTableRulesStatement sqlStatement,
+ final ShardingRuleConfiguration currentRuleConfig) throws DistSQLException {
Collection<String> currentLogicTables = getCurrentLogicTables(currentRuleConfig);
- for (String each : sqlStatement.getBindingTables()) {
- if (!currentLogicTables.contains(each)) {
- notExistedBindingTables.add(each);
- }
- }
- if (!notExistedBindingTables.isEmpty()) {
- throw new DuplicateRuleException("binding", schemaName, notExistedBindingTables);
- }
+ Set<String> notExistedBindingTables = sqlStatement.getBindingTables().stream().filter(each -> !currentLogicTables.contains(each)).collect(Collectors.toSet());
+ DistSQLException.predictionThrow(notExistedBindingTables.isEmpty(), new RequiredRuleMissedException("Sharding", schemaName, notExistedBindingTables));
}
private Collection<String> getCurrentLogicTables(final ShardingRuleConfiguration currentRuleConfig) {
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingBindingTableRuleStatementUpdaterTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingBindingTableRuleStatementUpdaterTest.java
index cf61dc3..f1e7287 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingBindingTableRuleStatementUpdaterTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/test/java/org/apache/shardingsphere/sharding/distsql/update/CreateShardingBindingTableRuleStatementUpdaterTest.java
@@ -17,8 +17,9 @@
package org.apache.shardingsphere.sharding.distsql.update;
+import org.apache.shardingsphere.infra.distsql.exception.DistSQLException;
import org.apache.shardingsphere.infra.distsql.exception.rule.DuplicateRuleException;
-import org.apache.shardingsphere.infra.distsql.exception.rule.RuleDefinitionViolationException;
+import org.apache.shardingsphere.infra.distsql.exception.rule.RequiredRuleMissedException;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
@@ -40,13 +41,13 @@ public final class CreateShardingBindingTableRuleStatementUpdaterTest {
private final CreateShardingBindingTableRuleStatementUpdater updater = new CreateShardingBindingTableRuleStatementUpdater();
- @Test(expected = DuplicateRuleException.class)
- public void assertCheckSQLStatementWithoutCurrentTableRule() throws RuleDefinitionViolationException {
+ @Test(expected = RequiredRuleMissedException.class)
+ public void assertCheckSQLStatementWithoutCurrentTableRule() throws DistSQLException {
updater.checkSQLStatement(shardingSphereMetaData, createSQLStatement(), new ShardingRuleConfiguration());
}
@Test(expected = DuplicateRuleException.class)
- public void assertCheckSQLStatementWithDuplicateTables() throws RuleDefinitionViolationException {
+ public void assertCheckSQLStatementWithDuplicateTables() throws DistSQLException {
updater.checkSQLStatement(shardingSphereMetaData, createDuplicatedSQLStatement(), getCurrentRuleConfig());
}