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 1f0ffbed93a Throws SQL Exception for alter and drop rule configuration
(#32154)
1f0ffbed93a is described below
commit 1f0ffbed93a88f6deb2512349f1d5ff3595bbef2
Author: Haoran Meng <[email protected]>
AuthorDate: Thu Jul 18 09:58:06 2024 +0800
Throws SQL Exception for alter and drop rule configuration (#32154)
---
.../engine/update/DistSQLUpdateExecuteEngine.java | 2 +-
.../DatabaseRuleDefinitionExecuteEngine.java | 4 ++-
.../rule/engine/database/DatabaseRuleOperator.java | 4 ++-
.../database/type/AlterDatabaseRuleOperator.java | 4 ++-
.../database/type/CreateDatabaseRuleOperator.java | 4 ++-
.../database/type/DropDatabaseRuleOperator.java | 4 ++-
.../manager/DatabaseRuleConfigurationManager.java | 32 +++++++++-------------
.../mode/metadata/manager/RuleItemManager.java | 7 +++--
.../table/DropTableStatementSchemaRefresher.java | 3 +-
.../service/MetaDataManagerPersistService.java | 9 ++++--
.../dispatch/RuleItemChangedSubscriber.java | 8 ++++--
.../StandaloneMetaDataManagerPersistService.java | 6 ++--
12 files changed, 51 insertions(+), 36 deletions(-)
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/DistSQLUpdateExecuteEngine.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/DistSQLUpdateExecuteEngine.java
index 2040d9d9f92..c3448a5a2de 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/DistSQLUpdateExecuteEngine.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/DistSQLUpdateExecuteEngine.java
@@ -66,7 +66,7 @@ public final class DistSQLUpdateExecuteEngine {
}
@SuppressWarnings("rawtypes")
- private void executeRuleDefinitionUpdate() {
+ private void executeRuleDefinitionUpdate() throws SQLException {
Optional<DatabaseRuleDefinitionExecutor> databaseExecutor =
TypedSPILoader.findService(DatabaseRuleDefinitionExecutor.class,
sqlStatement.getClass());
if (databaseExecutor.isPresent()) {
new
DatabaseRuleDefinitionExecuteEngine((DatabaseRuleDefinitionStatement)
sqlStatement, contextManager,
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
index 20d07acebce..17beb3bb25a 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
@@ -27,6 +27,7 @@ import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.mode.manager.ContextManager;
+import java.sql.SQLException;
import java.util.Optional;
/**
@@ -46,9 +47,10 @@ public final class DatabaseRuleDefinitionExecuteEngine {
/**
* Execute update.
+ * @throws SQLException SQL Exception
*/
@SuppressWarnings("unchecked")
- public void executeUpdate() {
+ public void executeUpdate() throws SQLException {
executor.setDatabase(database);
Optional<ShardingSphereRule> rule =
database.getRuleMetaData().findSingleRule(executor.getRuleClass());
executor.setRule(rule.orElse(null));
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleOperator.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleOperator.java
index 523ea733e1c..5af9541b3a5 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleOperator.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleOperator.java
@@ -22,6 +22,7 @@ import
org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
+import java.sql.SQLException;
import java.util.Collection;
/**
@@ -36,6 +37,7 @@ public interface DatabaseRuleOperator {
* @param database database
* @param currentRuleConfig current rule configuration
* @return meta data versions
+ * @throws SQLException SQL Exception
*/
- Collection<MetaDataVersion> operate(DatabaseRuleDefinitionStatement
sqlStatement, ShardingSphereDatabase database, RuleConfiguration
currentRuleConfig);
+ Collection<MetaDataVersion> operate(DatabaseRuleDefinitionStatement
sqlStatement, ShardingSphereDatabase database, RuleConfiguration
currentRuleConfig) throws SQLException;
}
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
index e76262bcadf..af775294f7f 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
@@ -30,6 +30,7 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
+import java.sql.SQLException;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map.Entry;
@@ -48,7 +49,8 @@ public final class AlterDatabaseRuleOperator implements
DatabaseRuleOperator {
@Override
@SuppressWarnings("unchecked")
- public Collection<MetaDataVersion> operate(final
DatabaseRuleDefinitionStatement sqlStatement, final ShardingSphereDatabase
database, final RuleConfiguration currentRuleConfig) {
+ public Collection<MetaDataVersion> operate(final
DatabaseRuleDefinitionStatement sqlStatement, final ShardingSphereDatabase
database,
+ final RuleConfiguration
currentRuleConfig) throws SQLException {
RuleConfiguration toBeAlteredRuleConfig =
executor.buildToBeAlteredRuleConfiguration(sqlStatement);
MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
RuleConfiguration toBeDroppedRuleConfig =
executor.buildToBeDroppedRuleConfiguration(toBeAlteredRuleConfig);
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
index 4afde93767c..a3db2487057 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
@@ -30,6 +30,7 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
+import java.sql.SQLException;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map.Entry;
@@ -48,7 +49,8 @@ public final class CreateDatabaseRuleOperator implements
DatabaseRuleOperator {
@Override
@SuppressWarnings("unchecked")
- public Collection<MetaDataVersion> operate(final
DatabaseRuleDefinitionStatement sqlStatement, final ShardingSphereDatabase
database, final RuleConfiguration currentRuleConfig) {
+ public Collection<MetaDataVersion> operate(final
DatabaseRuleDefinitionStatement sqlStatement, final ShardingSphereDatabase
database,
+ final RuleConfiguration
currentRuleConfig) throws SQLException {
RuleConfiguration toBeCreatedRuleConfig =
executor.buildToBeCreatedRuleConfiguration(sqlStatement);
MetaDataContexts originalMetaDataContexts =
contextManager.getMetaDataContexts();
MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
index c308b9e09c0..d55abf3acb5 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
@@ -34,6 +34,7 @@ import
org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
import
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
import org.apache.shardingsphere.mode.manager.ContextManager;
+import java.sql.SQLException;
import java.util.Collection;
import java.util.Collections;
import java.util.Objects;
@@ -51,7 +52,8 @@ public final class DropDatabaseRuleOperator implements
DatabaseRuleOperator {
@Override
@SuppressWarnings("unchecked")
- public Collection<MetaDataVersion> operate(final
DatabaseRuleDefinitionStatement sqlStatement, final ShardingSphereDatabase
database, final RuleConfiguration currentRuleConfig) {
+ public Collection<MetaDataVersion> operate(final
DatabaseRuleDefinitionStatement sqlStatement, final ShardingSphereDatabase
database,
+ final RuleConfiguration
currentRuleConfig) throws SQLException {
if (!executor.hasAnyOneToBeDropped(sqlStatement)) {
return Collections.emptyList();
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/DatabaseRuleConfigurationManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/DatabaseRuleConfigurationManager.java
index e19f5f7bc04..224e8cdedf5 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/DatabaseRuleConfigurationManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/DatabaseRuleConfigurationManager.java
@@ -76,9 +76,10 @@ public final class DatabaseRuleConfigurationManager {
*
* @param databaseName database name
* @param ruleConfig rule configurations
+ * @throws SQLException SQL Exception
*/
@SuppressWarnings({"unchecked", "rawtypes"})
- public synchronized void alterRuleConfiguration(final String databaseName,
final RuleConfiguration ruleConfig) {
+ public synchronized void alterRuleConfiguration(final String databaseName,
final RuleConfiguration ruleConfig) throws SQLException {
ShardingSphereDatabase database =
metaDataContexts.get().getMetaData().getDatabase(databaseName);
Collection<ShardingSphereRule> rules = new
LinkedList<>(database.getRuleMetaData().getRules());
Optional<ShardingSphereRule> toBeChangedRule =
rules.stream().filter(each ->
each.getConfiguration().getClass().equals(ruleConfig.getClass())).findFirst();
@@ -86,14 +87,10 @@ public final class DatabaseRuleConfigurationManager {
((PartialRuleUpdateSupported)
toBeChangedRule.get()).updateConfiguration(ruleConfig);
return;
}
- try {
- rules.removeIf(each ->
each.getConfiguration().getClass().isAssignableFrom(ruleConfig.getClass()));
- rules.addAll(DatabaseRulesBuilder.build(databaseName,
database.getProtocolType(), database.getRuleMetaData().getRules(),
- ruleConfig, computeNodeInstanceContext,
database.getResourceMetaData()));
- refreshMetadata(databaseName, database, rules);
- } catch (final SQLException ex) {
- log.error("Alter database: {} rule configurations failed",
databaseName, ex);
- }
+ rules.removeIf(each ->
each.getConfiguration().getClass().isAssignableFrom(ruleConfig.getClass()));
+ rules.addAll(DatabaseRulesBuilder.build(databaseName,
database.getProtocolType(), database.getRuleMetaData().getRules(),
+ ruleConfig, computeNodeInstanceContext,
database.getResourceMetaData()));
+ refreshMetadata(databaseName, database, rules);
}
/**
@@ -101,9 +98,10 @@ public final class DatabaseRuleConfigurationManager {
*
* @param databaseName database name
* @param ruleConfig rule configurations
+ * @throws SQLException SQL Exception
*/
@SuppressWarnings({"unchecked", "rawtypes"})
- public synchronized void dropRuleConfiguration(final String databaseName,
final RuleConfiguration ruleConfig) {
+ public synchronized void dropRuleConfiguration(final String databaseName,
final RuleConfiguration ruleConfig) throws SQLException {
ShardingSphereDatabase database =
metaDataContexts.get().getMetaData().getDatabase(databaseName);
Collection<ShardingSphereRule> rules = new
LinkedList<>(database.getRuleMetaData().getRules());
Optional<ShardingSphereRule> toBeChangedRule =
rules.stream().filter(each ->
each.getConfiguration().getClass().equals(ruleConfig.getClass())).findFirst();
@@ -111,16 +109,12 @@ public final class DatabaseRuleConfigurationManager {
((PartialRuleUpdateSupported)
toBeChangedRule.get()).updateConfiguration(ruleConfig);
return;
}
- try {
- rules.removeIf(each ->
each.getConfiguration().getClass().isAssignableFrom(ruleConfig.getClass()));
- if (!((DatabaseRuleConfiguration) ruleConfig).isEmpty()) {
- rules.addAll(DatabaseRulesBuilder.build(databaseName,
database.getProtocolType(), database.getRuleMetaData().getRules(),
- ruleConfig, computeNodeInstanceContext,
database.getResourceMetaData()));
- }
- refreshMetadata(databaseName, database, rules);
- } catch (final SQLException ex) {
- log.error("Drop database: {} rule configurations failed",
databaseName, ex);
+ rules.removeIf(each ->
each.getConfiguration().getClass().isAssignableFrom(ruleConfig.getClass()));
+ if (!((DatabaseRuleConfiguration) ruleConfig).isEmpty()) {
+ rules.addAll(DatabaseRulesBuilder.build(databaseName,
database.getProtocolType(), database.getRuleMetaData().getRules(),
+ ruleConfig, computeNodeInstanceContext,
database.getResourceMetaData()));
}
+ refreshMetadata(databaseName, database, rules);
}
private void refreshMetadata(final String databaseName, final
ShardingSphereDatabase database, final Collection<ShardingSphereRule> rules)
throws SQLException {
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
index 6e189a811ee..0fd41820054 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
@@ -26,6 +26,7 @@ import
org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.spi.PersistRepository;
import
org.apache.shardingsphere.mode.spi.RuleItemConfigurationChangedProcessor;
+import java.sql.SQLException;
import java.util.concurrent.atomic.AtomicReference;
/**
@@ -49,9 +50,10 @@ public class RuleItemManager {
* Alter with rule item.
*
* @param event alter rule item event
+ * @throws SQLException SQL Exception
*/
@SuppressWarnings({"rawtypes", "unchecked", "unused"})
- public void alterRuleItem(final AlterRuleItemEvent event) {
+ public void alterRuleItem(final AlterRuleItemEvent event) throws
SQLException {
if
(!event.getActiveVersion().equals(metaDataPersistService.getMetaDataVersionPersistService()
.getActiveVersionByFullPath(event.getActiveVersionKey()))) {
return;
@@ -71,9 +73,10 @@ public class RuleItemManager {
* Drop with rule item.
*
* @param event drop rule item event
+ * @throws SQLException SQL Exception
*/
@SuppressWarnings({"rawtypes", "unchecked", "unused"})
- public void dropRuleItem(final DropRuleItemEvent event) {
+ public void dropRuleItem(final DropRuleItemEvent event) throws
SQLException {
String databaseName = event.getDatabaseName();
if
(!metaDataContexts.get().getMetaData().containsDatabase(databaseName)) {
return;
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/type/table/DropTableStatementSchemaRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/type/table/DropTableStatementSchemaRefresher.java
index 9cad41834e0..6fdd2b29d7c 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/type/table/DropTableStatementSchemaRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/type/table/DropTableStatementSchemaRefresher.java
@@ -27,6 +27,7 @@ import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistServ
import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropTableStatement;
+import java.sql.SQLException;
import java.util.Collection;
/**
@@ -36,7 +37,7 @@ public final class DropTableStatementSchemaRefresher
implements MetaDataRefreshe
@Override
public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database, final
Collection<String> logicDataSourceNames,
- final String schemaName, final DatabaseType
databaseType, final DropTableStatement sqlStatement, final
ConfigurationProperties props) {
+ final String schemaName, final DatabaseType
databaseType, final DropTableStatement sqlStatement, final
ConfigurationProperties props) throws SQLException {
AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), schemaName);
sqlStatement.getTables().forEach(each ->
alterSchemaMetaDataPOJO.getDroppedTables().add(each.getTableName().getIdentifier().getValue()));
boolean isRuleRefreshRequired =
TableRefreshUtils.isRuleRefreshRequired(database.getRuleMetaData(), schemaName,
sqlStatement.getTables());
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
index 19a57b69fe6..7afc2b36c4d 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
@@ -109,8 +109,9 @@ public interface MetaDataManagerPersistService {
*
* @param databaseName database name
* @param ruleConfigs rule configs
+ * @throws SQLException SQL exception
*/
- void alterSingleRuleConfiguration(String databaseName,
Collection<RuleConfiguration> ruleConfigs);
+ void alterSingleRuleConfiguration(String databaseName,
Collection<RuleConfiguration> ruleConfigs) throws SQLException;
/**
* Alter rule configuration.
@@ -118,16 +119,18 @@ public interface MetaDataManagerPersistService {
* @param databaseName database name
* @param toBeAlteredRuleConfig to be altered rule config
* @return meta data versions
+ * @throws SQLException SQL exception
*/
- Collection<MetaDataVersion> alterRuleConfiguration(String databaseName,
RuleConfiguration toBeAlteredRuleConfig);
+ Collection<MetaDataVersion> alterRuleConfiguration(String databaseName,
RuleConfiguration toBeAlteredRuleConfig) throws SQLException;
/**
* Remove rule configuration item.
*
* @param databaseName database name
* @param toBeRemovedRuleConfig to be removed rule config
+ * @throws SQLException SQL exception
*/
- void removeRuleConfigurationItem(String databaseName, RuleConfiguration
toBeRemovedRuleConfig);
+ void removeRuleConfigurationItem(String databaseName, RuleConfiguration
toBeRemovedRuleConfig) throws SQLException;
/**
* Remove rule configuration.
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/RuleItemChangedSubscriber.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/RuleItemChangedSubscriber.java
index 39a6c690912..56ab9717453 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/RuleItemChangedSubscriber.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/RuleItemChangedSubscriber.java
@@ -24,6 +24,8 @@ import
org.apache.shardingsphere.mode.event.dispatch.rule.drop.DropRuleItemEvent
import org.apache.shardingsphere.infra.util.eventbus.EventSubscriber;
import org.apache.shardingsphere.mode.manager.ContextManager;
+import java.sql.SQLException;
+
/**
* Rule item changed subscriber.
*/
@@ -36,9 +38,10 @@ public final class RuleItemChangedSubscriber implements
EventSubscriber {
* Renew with alter rule item.
*
* @param event alter rule item event
+ * @throws SQLException SQL Exception
*/
@Subscribe
- public void renew(final AlterRuleItemEvent event) {
+ public void renew(final AlterRuleItemEvent event) throws SQLException {
contextManager.getMetaDataContextManager().getRuleItemManager().alterRuleItem(event);
}
@@ -46,9 +49,10 @@ public final class RuleItemChangedSubscriber implements
EventSubscriber {
* Renew with drop rule item.
*
* @param event drop rule item event
+ * @throws SQLException SQL Exception
*/
@Subscribe
- public void renew(final DropRuleItemEvent event) {
+ public void renew(final DropRuleItemEvent event) throws SQLException {
contextManager.getMetaDataContextManager().getRuleItemManager().dropRuleItem(event);
}
}
diff --git
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistService.java
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistService.java
index cd609053dcd..f63a34fe3c8 100644
---
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistService.java
+++
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistService.java
@@ -270,7 +270,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
}
@Override
- public void alterSingleRuleConfiguration(final String databaseName, final
Collection<RuleConfiguration> ruleConfigs) {
+ public void alterSingleRuleConfiguration(final String databaseName, final
Collection<RuleConfiguration> ruleConfigs) throws SQLException {
ruleConfigs.removeIf(each ->
!each.getClass().isAssignableFrom(SingleRuleConfiguration.class));
Collection<MetaDataVersion> metaDataVersions =
metaDataPersistService.getDatabaseRulePersistService()
.persistConfigurations(metaDataContextManager.getMetaDataContexts().get().getMetaData().getDatabase(databaseName).getName(),
ruleConfigs);
@@ -280,7 +280,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
}
@Override
- public Collection<MetaDataVersion> alterRuleConfiguration(final String
databaseName, final RuleConfiguration toBeAlteredRuleConfig) {
+ public Collection<MetaDataVersion> alterRuleConfiguration(final String
databaseName, final RuleConfiguration toBeAlteredRuleConfig) throws
SQLException {
if (null != toBeAlteredRuleConfig) {
Collection<MetaDataVersion> metaDataVersions =
metaDataPersistService.getDatabaseRulePersistService()
.persistConfigurations(metaDataContextManager.getMetaDataContexts().get().getMetaData().getDatabase(databaseName).getName(),
Collections.singletonList(toBeAlteredRuleConfig));
@@ -301,7 +301,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
}
@Override
- public void removeRuleConfigurationItem(final String databaseName, final
RuleConfiguration toBeRemovedRuleConfig) {
+ public void removeRuleConfigurationItem(final String databaseName, final
RuleConfiguration toBeRemovedRuleConfig) throws SQLException {
if (null != toBeRemovedRuleConfig) {
Collection<MetaDataVersion> metaDataVersions =
metaDataPersistService.getDatabaseRulePersistService()
.deleteConfigurations(databaseName,
Collections.singleton(toBeRemovedRuleConfig));