You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2021/11/02 10:49:55 UTC
[shardingsphere] branch master updated: Refactor cache rule
configuration (#13411)
This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 e82146a Refactor cache rule configuration (#13411)
e82146a is described below
commit e82146a78e75af256b6c3870481f2a1e04e73e8f
Author: Haoran Meng <me...@gmail.com>
AuthorDate: Tue Nov 2 18:48:59 2021 +0800
Refactor cache rule configuration (#13411)
---
...lterShardingTableRuleStatementPreprocessor.java | 25 ----------------------
.../rdl/rule/RuleDefinitionBackendHandler.java | 1 +
2 files changed, 1 insertion(+), 25 deletions(-)
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/preprocess/AlterShardingTableRuleStatementPreprocessor.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/preprocess/AlterShardingTableRuleStatementPrepro [...]
index f2c8e0c..cd8a8a8 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/preprocess/AlterShardingTableRuleStatementPreprocessor.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/preprocess/AlterShardingTableRuleStatementPreprocessor.java
@@ -17,14 +17,10 @@
package org.apache.shardingsphere.sharding.distsql.handler.preprocess;
-import com.google.common.base.Preconditions;
import org.apache.shardingsphere.infra.distsql.preprocess.RuleDefinitionAlterPreprocessor;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
import org.apache.shardingsphere.sharding.distsql.parser.statement.AlterShardingTableRuleStatement;
-import java.util.Optional;
-
/**
* Alter sharding table rule statement preprocessor.
*/
@@ -48,27 +44,6 @@ public final class AlterShardingTableRuleStatementPreprocessor implements RuleDe
result.setBroadcastTables(currentRuleConfig.getBroadcastTables());
result.setDefaultKeyGenerateStrategy(currentRuleConfig.getDefaultKeyGenerateStrategy());
result.setKeyGenerators(currentRuleConfig.getKeyGenerators());
- dropRuleConfiguration(result, toBeAlteredRuleConfig);
- addRuleConfiguration(result, toBeAlteredRuleConfig);
return result;
}
-
- private void dropRuleConfiguration(final ShardingRuleConfiguration preAlteredRuleConfig, final ShardingRuleConfiguration toBeAlteredRuleConfig) {
- for (ShardingAutoTableRuleConfiguration each : toBeAlteredRuleConfig.getAutoTables()) {
- Optional<ShardingAutoTableRuleConfiguration> shardingAutoTableRuleConfig
- = preAlteredRuleConfig.getAutoTables().stream().filter(tableRule -> each.getLogicTable().equals(tableRule.getLogicTable())).findAny();
- Preconditions.checkState(shardingAutoTableRuleConfig.isPresent());
- preAlteredRuleConfig.getAutoTables().remove(shardingAutoTableRuleConfig.get());
- preAlteredRuleConfig.getShardingAlgorithms().remove(shardingAutoTableRuleConfig.get().getShardingStrategy().getShardingAlgorithmName());
- if (null != shardingAutoTableRuleConfig.get().getKeyGenerateStrategy()) {
- preAlteredRuleConfig.getKeyGenerators().remove(shardingAutoTableRuleConfig.get().getKeyGenerateStrategy().getKeyGeneratorName());
- }
- }
- }
-
- private void addRuleConfiguration(final ShardingRuleConfiguration currentRuleConfig, final ShardingRuleConfiguration toBeAlteredRuleConfig) {
- currentRuleConfig.getAutoTables().addAll(toBeAlteredRuleConfig.getAutoTables());
- currentRuleConfig.getShardingAlgorithms().putAll(toBeAlteredRuleConfig.getShardingAlgorithms());
- currentRuleConfig.getKeyGenerators().putAll(toBeAlteredRuleConfig.getKeyGenerators());
- }
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/RuleDefinitionBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/RuleDefinitionBackendHandler.java
index ea6fa23..f992406 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/RuleDefinitionBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/RuleDefinitionBackendHandler.java
@@ -123,6 +123,7 @@ public final class RuleDefinitionBackendHandler<T extends RuleDefinitionStatemen
final RuleDefinitionAlterPreprocessor preprocessor) {
RuleConfiguration toBeAlteredRuleConfig = updater.buildToBeAlteredRuleConfiguration(sqlStatement);
RuleConfiguration alteredRuleConfig = preprocessor.preprocess(currentRuleConfig, toBeAlteredRuleConfig);
+ updater.updateCurrentRuleConfiguration(alteredRuleConfig, toBeAlteredRuleConfig);
Collection<RuleConfiguration> alteredConfigs = new LinkedList<>(shardingSphereMetaData.getRuleMetaData().getConfigurations());
alteredConfigs.remove(currentRuleConfig);
alteredConfigs.add(alteredRuleConfig);