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 1ae62f2ca9a Fix current rule config is modified in advance when ALTER
SHARDING TABLE RULE (#19091)
1ae62f2ca9a is described below
commit 1ae62f2ca9a5d79ed51bd9aa9aab77065267b59b
Author: zhaojinchao <[email protected]>
AuthorDate: Wed Jul 13 16:50:07 2022 +0800
Fix current rule config is modified in advance when ALTER SHARDING TABLE
RULE (#19091)
* Fix memory rule are modified in advance when ALTER SHARDING TABLE RULE
* Update
---
.../handler/checker/ShardingTableRuleStatementChecker.java | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/checker/ShardingTableRuleStatementChecker.java
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/checker/ShardingTableRuleStatementChecker.java
index db35f49b3aa..5af31d54b01 100644
---
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/checker/ShardingTableRuleStatementChecker.java
+++
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/checker/ShardingTableRuleStatementChecker.java
@@ -318,18 +318,18 @@ public final class ShardingTableRuleStatementChecker {
return;
}
ShardingRuleConfiguration toBeCheckedRuleConfig = new
ShardingRuleConfiguration();
- toBeCheckedRuleConfig.setTables(currentRuleConfig.getTables());
- toBeCheckedRuleConfig.setAutoTables(currentRuleConfig.getAutoTables());
-
toBeCheckedRuleConfig.setBindingTableGroups(currentRuleConfig.getBindingTableGroups());
-
toBeCheckedRuleConfig.setBroadcastTables(currentRuleConfig.getBroadcastTables());
+ toBeCheckedRuleConfig.setTables(new
LinkedList<>(currentRuleConfig.getTables()));
+ toBeCheckedRuleConfig.setAutoTables(new
LinkedList<>(currentRuleConfig.getAutoTables()));
+ toBeCheckedRuleConfig.setBindingTableGroups(new
LinkedList<>(currentRuleConfig.getBindingTableGroups()));
+ toBeCheckedRuleConfig.setBroadcastTables(new
LinkedList<>(currentRuleConfig.getBroadcastTables()));
toBeCheckedRuleConfig.setDefaultTableShardingStrategy(currentRuleConfig.getDefaultTableShardingStrategy());
toBeCheckedRuleConfig.setDefaultDatabaseShardingStrategy(currentRuleConfig.getDefaultDatabaseShardingStrategy());
toBeCheckedRuleConfig.setDefaultKeyGenerateStrategy(currentRuleConfig.getDefaultKeyGenerateStrategy());
toBeCheckedRuleConfig.setDefaultShardingColumn(currentRuleConfig.getDefaultShardingColumn());
-
toBeCheckedRuleConfig.setShardingAlgorithms(currentRuleConfig.getShardingAlgorithms());
-
toBeCheckedRuleConfig.setKeyGenerators(currentRuleConfig.getKeyGenerators());
+ toBeCheckedRuleConfig.setShardingAlgorithms(new
LinkedHashMap<>(currentRuleConfig.getShardingAlgorithms()));
+ toBeCheckedRuleConfig.setKeyGenerators(new
LinkedHashMap<>(currentRuleConfig.getKeyGenerators()));
toBeCheckedRuleConfig.setScalingName(currentRuleConfig.getScalingName());
- toBeCheckedRuleConfig.setScaling(currentRuleConfig.getScaling());
+ toBeCheckedRuleConfig.setScaling(new
LinkedHashMap<>(currentRuleConfig.getScaling()));
removeRuleConfiguration(toBeCheckedRuleConfig, toBeAlteredRuleConfig);
addRuleConfiguration(toBeCheckedRuleConfig, toBeAlteredRuleConfig);
Collection<String> dataSourceNames =
getRequiredResource(toBeCheckedRuleConfig);