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);

Reply via email to