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 d6df93334de Remove useless algorithm after drop sharing config item
(#26806)
d6df93334de is described below
commit d6df93334de3db39a792df4fe5eb6c2b47b77edf
Author: ChenJiaHao <[email protected]>
AuthorDate: Fri Jul 7 18:22:22 2023 +0800
Remove useless algorithm after drop sharing config item (#26806)
---
.../AlterShardingTableRuleStatementUpdater.java | 1 -
.../DropDefaultShardingStrategyStatementUpdater.java | 4 +++-
.../update/DropShardingTableRuleStatementUpdater.java | 19 ++++++++++++++-----
.../handler/update/RuleDefinitionDropUpdater.java | 1 +
4 files changed, 18 insertions(+), 7 deletions(-)
diff --git
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingTableRuleStatementUpdater.java
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingTableRuleStatementUpdater.java
index 08a5a58aec1..a46d4b64906 100644
---
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingTableRuleStatementUpdater.java
+++
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/AlterShardingTableRuleStatementUpdater.java
@@ -62,7 +62,6 @@ public final class AlterShardingTableRuleStatementUpdater
implements RuleDefinit
result.getTables().add(each);
}
}
- // TODO find unused algorithm
return result;
}
diff --git
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultShardingStrategyStatementUpdater.java
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultShardingStrategyStatementUpdater.java
index 2e1c919d37a..168b42f3ace 100644
---
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultShardingStrategyStatementUpdater.java
+++
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropDefaultShardingStrategyStatementUpdater.java
@@ -77,10 +77,12 @@ public final class
DropDefaultShardingStrategyStatementUpdater implements RuleDe
ShardingRuleConfiguration result = new ShardingRuleConfiguration();
if
(sqlStatement.getDefaultType().equalsIgnoreCase(ShardingStrategyLevelType.TABLE.name()))
{
result.setDefaultTableShardingStrategy(currentRuleConfig.getDefaultTableShardingStrategy());
+ currentRuleConfig.setDefaultTableShardingStrategy(null);
} else {
result.setDefaultDatabaseShardingStrategy(currentRuleConfig.getDefaultDatabaseShardingStrategy());
+ currentRuleConfig.setDefaultDatabaseShardingStrategy(null);
}
- // TODO find unused algorithm
+ UnusedAlgorithmFinder.find(currentRuleConfig).forEach(each ->
result.getShardingAlgorithms().put(each,
currentRuleConfig.getShardingAlgorithms().get(each)));
return result;
}
diff --git
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleStatementUpdater.java
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleStatementUpdater.java
index 7faa990b44b..239d5775d25 100644
---
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleStatementUpdater.java
+++
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropShardingTableRuleStatementUpdater.java
@@ -112,8 +112,11 @@ public final class DropShardingTableRuleStatementUpdater
implements RuleDefiniti
for (String each : toBeDroppedShardingTableNames) {
result.getTables().addAll(currentRuleConfig.getTables().stream().filter(table
-> each.equalsIgnoreCase(table.getLogicTable())).collect(Collectors.toList()));
result.getAutoTables().addAll(currentRuleConfig.getAutoTables().stream().filter(table
-> each.equalsIgnoreCase(table.getLogicTable())).collect(Collectors.toList()));
+ dropShardingTable(currentRuleConfig, each);
}
- // TODO find unused algorithm
+ UnusedAlgorithmFinder.find(currentRuleConfig).forEach(each ->
result.getShardingAlgorithms().put(each,
currentRuleConfig.getShardingAlgorithms().get(each)));
+ findUnusedKeyGenerator(currentRuleConfig).forEach(each ->
result.getKeyGenerators().put(each,
currentRuleConfig.getKeyGenerators().get(each)));
+ findUnusedAuditors(currentRuleConfig).forEach(each ->
result.getAuditors().put(each, currentRuleConfig.getAuditors().get(each)));
return result;
}
@@ -133,6 +136,10 @@ public final class DropShardingTableRuleStatementUpdater
implements RuleDefiniti
}
private void dropUnusedKeyGenerator(final ShardingRuleConfiguration
currentRuleConfig) {
+ findUnusedKeyGenerator(currentRuleConfig).forEach(each ->
currentRuleConfig.getKeyGenerators().remove(each));
+ }
+
+ private static Collection<String> findUnusedKeyGenerator(final
ShardingRuleConfiguration currentRuleConfig) {
Collection<String> inUsedKeyGenerators =
currentRuleConfig.getTables().stream().map(ShardingTableRuleConfiguration::getKeyGenerateStrategy).filter(Objects::nonNull)
.map(KeyGenerateStrategyConfiguration::getKeyGeneratorName).collect(Collectors.toSet());
inUsedKeyGenerators.addAll(currentRuleConfig.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getKeyGenerateStrategy).filter(Objects::nonNull)
@@ -140,11 +147,14 @@ public final class DropShardingTableRuleStatementUpdater
implements RuleDefiniti
if (null != currentRuleConfig.getDefaultKeyGenerateStrategy()) {
inUsedKeyGenerators.add(currentRuleConfig.getDefaultKeyGenerateStrategy().getKeyGeneratorName());
}
- Collection<String> unusedKeyGenerators =
currentRuleConfig.getKeyGenerators().keySet().stream().filter(each ->
!inUsedKeyGenerators.contains(each)).collect(Collectors.toSet());
- unusedKeyGenerators.forEach(each ->
currentRuleConfig.getKeyGenerators().remove(each));
+ return
currentRuleConfig.getKeyGenerators().keySet().stream().filter(each ->
!inUsedKeyGenerators.contains(each)).collect(Collectors.toSet());
}
private void dropUnusedAuditor(final ShardingRuleConfiguration
currentRuleConfig) {
+ findUnusedAuditors(currentRuleConfig).forEach(each ->
currentRuleConfig.getAuditors().remove(each));
+ }
+
+ private static Collection<String> findUnusedAuditors(final
ShardingRuleConfiguration currentRuleConfig) {
Collection<String> inUsedAuditors =
currentRuleConfig.getTables().stream().map(ShardingTableRuleConfiguration::getAuditStrategy).filter(Objects::nonNull)
.flatMap(each ->
each.getAuditorNames().stream()).collect(Collectors.toSet());
inUsedAuditors.addAll(currentRuleConfig.getAutoTables().stream().map(ShardingAutoTableRuleConfiguration::getAuditStrategy).filter(Objects::nonNull)
@@ -152,8 +162,7 @@ public final class DropShardingTableRuleStatementUpdater
implements RuleDefiniti
if (null != currentRuleConfig.getDefaultAuditStrategy()) {
inUsedAuditors.addAll(currentRuleConfig.getDefaultAuditStrategy().getAuditorNames());
}
- Collection<String> unusedAuditors =
currentRuleConfig.getAuditors().keySet().stream().filter(each ->
!inUsedAuditors.contains(each)).collect(Collectors.toSet());
- unusedAuditors.forEach(each ->
currentRuleConfig.getAuditors().remove(each));
+ return currentRuleConfig.getAuditors().keySet().stream().filter(each
-> !inUsedAuditors.contains(each)).collect(Collectors.toSet());
}
private boolean isEmptyShardingTables(final ShardingRuleConfiguration
currentRuleConfig) {
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/update/RuleDefinitionDropUpdater.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/update/RuleDefinitionDropUpdater.java
index 161ca2f3af8..bf848d87f02 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/update/RuleDefinitionDropUpdater.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/update/RuleDefinitionDropUpdater.java
@@ -55,6 +55,7 @@ public interface RuleDefinitionDropUpdater<T extends
SQLStatement, R extends Rul
}
/**
+ * TODO remove this method after remove Compatible_Cluster mode
* Update current rule configuration.
*
* @param sqlStatement SQL statement