You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2023/02/15 12:29:38 UTC
[shardingsphere] branch master updated: Refactor `ShowDefaultShardingStrategyExecutor` (#24176)
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 16a2d6db038 Refactor `ShowDefaultShardingStrategyExecutor` (#24176)
16a2d6db038 is described below
commit 16a2d6db0382a416f4f24802c42e186ca2af3f4e
Author: Zichao <57...@users.noreply.github.com>
AuthorDate: Wed Feb 15 20:29:30 2023 +0800
Refactor `ShowDefaultShardingStrategyExecutor` (#24176)
* Refactor `ShowDefaultShardingStrategyExecutor`
* Refactor `ShowDefaultShardingStrategyExecutor`
---
.../query/ShowDefaultShardingStrategyExecutor.java | 38 +++++++---------------
.../dataset/db/show_default_sharding_strategy.xml | 4 +--
.../show_default_sharding_strategy.xml | 4 +--
.../show_default_sharding_strategy.xml | 4 +--
.../show_default_sharding_strategy.xml | 4 +--
.../show_default_sharding_strategy.xml | 4 +--
.../mysql/show_default_sharding_strategy.xml | 4 +--
.../dataset/tbl/show_default_sharding_strategy.xml | 4 +--
8 files changed, 26 insertions(+), 40 deletions(-)
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowDefaultShardingStrategyExecutor.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowDefaultShardingStrategyExecutor.java
index 78161f7cc05..befd77baed6 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowDefaultShardingStrategyExecutor.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowDefaultShardingStrategyExecutor.java
@@ -31,10 +31,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
-import java.util.LinkedHashMap;
import java.util.LinkedList;
-import java.util.Map;
-import java.util.Map.Entry;
import java.util.Optional;
/**
@@ -45,41 +42,30 @@ public final class ShowDefaultShardingStrategyExecutor implements RQLExecutor<Sh
@Override
public Collection<LocalDataQueryResultRow> getRows(final ShardingSphereDatabase database, final ShowDefaultShardingStrategyStatement sqlStatement) {
Optional<ShardingRule> shardingRule = database.getRuleMetaData().findSingleRule(ShardingRule.class);
- if (!shardingRule.isPresent()) {
- return Collections.emptyList();
- }
- Iterator<Entry<String, LinkedList<Object>>> data = buildData(shardingRule.get()).entrySet().iterator();
- Collection<LocalDataQueryResultRow> result = new LinkedList<>();
- while (data.hasNext()) {
- Entry<String, LinkedList<Object>> entry = data.next();
- entry.getValue().addFirst(entry.getKey());
- result.add(new LocalDataQueryResultRow(entry.getValue()));
- }
- return result;
+ return shardingRule.map(this::buildData).orElse(Collections.emptyList());
}
- private Map<String, LinkedList<Object>> buildData(final ShardingRule rule) {
- Map<String, LinkedList<Object>> result = new LinkedHashMap<>(2, 1);
+ private Collection<LocalDataQueryResultRow> buildData(final ShardingRule rule) {
+ Collection<LocalDataQueryResultRow> result = new LinkedList<>();
ShardingRuleConfiguration ruleConfig = (ShardingRuleConfiguration) rule.getConfiguration();
- result.put("TABLE", buildDataItem(ruleConfig, ruleConfig.getDefaultTableShardingStrategy()));
- result.put("DATABASE", buildDataItem(ruleConfig, ruleConfig.getDefaultDatabaseShardingStrategy()));
+ result.add(buildDataItem("TABLE", ruleConfig, ruleConfig.getDefaultTableShardingStrategy()));
+ result.add(buildDataItem("DATABASE", ruleConfig, ruleConfig.getDefaultDatabaseShardingStrategy()));
return result;
}
- private LinkedList<Object> buildDataItem(final ShardingRuleConfiguration ruleConfig, final ShardingStrategyConfiguration strategyConfig) {
+ private LocalDataQueryResultRow buildDataItem(final String defaultType, final ShardingRuleConfiguration ruleConfig, final ShardingStrategyConfiguration strategyConfig) {
if (null == strategyConfig) {
- return new LinkedList<>(Arrays.asList("NONE", "", "", "", ""));
+ return new LocalDataQueryResultRow(defaultType, "", "", "", "", "");
}
ShardingStrategyType strategyType = ShardingStrategyType.getValueOf(strategyConfig);
if (strategyType == ShardingStrategyType.NONE) {
- return new LinkedList<>(Arrays.asList("NONE", "", "", "", ""));
+ return new LocalDataQueryResultRow(defaultType, "NONE", "", "", "", "");
}
- LinkedList<Object> result = new LinkedList<>(Collections.singleton(strategyType.name()));
- result.addAll(strategyType.getConfigurationContents(strategyConfig));
AlgorithmConfiguration algorithmConfig = ruleConfig.getShardingAlgorithms().get(strategyConfig.getShardingAlgorithmName());
- result.add(algorithmConfig.getType());
- result.add(algorithmConfig.getProps().toString());
- return result;
+ Iterator<String> iterator = strategyType.getConfigurationContents(strategyConfig).iterator();
+ String shardingColumn = iterator.next();
+ String algorithmName = iterator.next();
+ return new LocalDataQueryResultRow(defaultType, strategyType.toString(), shardingColumn, algorithmName, algorithmConfig.getType(), algorithmConfig.getProps().toString());
}
@Override
diff --git a/test/e2e/suite/src/test/resources/cases/rql/dataset/db/show_default_sharding_strategy.xml b/test/e2e/suite/src/test/resources/cases/rql/dataset/db/show_default_sharding_strategy.xml
index 6de4eac3474..0bbc14403db 100644
--- a/test/e2e/suite/src/test/resources/cases/rql/dataset/db/show_default_sharding_strategy.xml
+++ b/test/e2e/suite/src/test/resources/cases/rql/dataset/db/show_default_sharding_strategy.xml
@@ -24,6 +24,6 @@
<column name="sharding_algorithm_type" />
<column name="sharding_algorithm_props" />
</metadata>
- <row values="TABLE| NONE| | | | " />
- <row values="DATABASE| NONE| | | | " />
+ <row values="TABLE| | | | | " />
+ <row values="DATABASE| | | | | " />
</dataset>
diff --git a/test/e2e/suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_default_sharding_strategy.xml b/test/e2e/suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_default_sharding_strategy.xml
index 6de4eac3474..0bbc14403db 100644
--- a/test/e2e/suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_default_sharding_strategy.xml
+++ b/test/e2e/suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting/show_default_sharding_strategy.xml
@@ -24,6 +24,6 @@
<column name="sharding_algorithm_type" />
<column name="sharding_algorithm_props" />
</metadata>
- <row values="TABLE| NONE| | | | " />
- <row values="DATABASE| NONE| | | | " />
+ <row values="TABLE| | | | | " />
+ <row values="DATABASE| | | | | " />
</dataset>
diff --git a/test/e2e/suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_default_sharding_strategy.xml b/test/e2e/suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_default_sharding_strategy.xml
index 6de4eac3474..0bbc14403db 100644
--- a/test/e2e/suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_default_sharding_strategy.xml
+++ b/test/e2e/suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_default_sharding_strategy.xml
@@ -24,6 +24,6 @@
<column name="sharding_algorithm_type" />
<column name="sharding_algorithm_props" />
</metadata>
- <row values="TABLE| NONE| | | | " />
- <row values="DATABASE| NONE| | | | " />
+ <row values="TABLE| | | | | " />
+ <row values="DATABASE| | | | | " />
</dataset>
diff --git a/test/e2e/suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_default_sharding_strategy.xml b/test/e2e/suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_default_sharding_strategy.xml
index 6de4eac3474..0bbc14403db 100644
--- a/test/e2e/suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_default_sharding_strategy.xml
+++ b/test/e2e/suite/src/test/resources/cases/rql/dataset/readwrite_splitting/show_default_sharding_strategy.xml
@@ -24,6 +24,6 @@
<column name="sharding_algorithm_type" />
<column name="sharding_algorithm_props" />
</metadata>
- <row values="TABLE| NONE| | | | " />
- <row values="DATABASE| NONE| | | | " />
+ <row values="TABLE| | | | | " />
+ <row values="DATABASE| | | | | " />
</dataset>
diff --git a/test/e2e/suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_default_sharding_strategy.xml b/test/e2e/suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_default_sharding_strategy.xml
index 6de4eac3474..0bbc14403db 100644
--- a/test/e2e/suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_default_sharding_strategy.xml
+++ b/test/e2e/suite/src/test/resources/cases/rql/dataset/sharding_and_encrypt/show_default_sharding_strategy.xml
@@ -24,6 +24,6 @@
<column name="sharding_algorithm_type" />
<column name="sharding_algorithm_props" />
</metadata>
- <row values="TABLE| NONE| | | | " />
- <row values="DATABASE| NONE| | | | " />
+ <row values="TABLE| | | | | " />
+ <row values="DATABASE| | | | | " />
</dataset>
diff --git a/test/e2e/suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_default_sharding_strategy.xml b/test/e2e/suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_default_sharding_strategy.xml
index 6de4eac3474..0bbc14403db 100644
--- a/test/e2e/suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_default_sharding_strategy.xml
+++ b/test/e2e/suite/src/test/resources/cases/rql/dataset/sharding_governance/mysql/show_default_sharding_strategy.xml
@@ -24,6 +24,6 @@
<column name="sharding_algorithm_type" />
<column name="sharding_algorithm_props" />
</metadata>
- <row values="TABLE| NONE| | | | " />
- <row values="DATABASE| NONE| | | | " />
+ <row values="TABLE| | | | | " />
+ <row values="DATABASE| | | | | " />
</dataset>
diff --git a/test/e2e/suite/src/test/resources/cases/rql/dataset/tbl/show_default_sharding_strategy.xml b/test/e2e/suite/src/test/resources/cases/rql/dataset/tbl/show_default_sharding_strategy.xml
index 6de4eac3474..0bbc14403db 100644
--- a/test/e2e/suite/src/test/resources/cases/rql/dataset/tbl/show_default_sharding_strategy.xml
+++ b/test/e2e/suite/src/test/resources/cases/rql/dataset/tbl/show_default_sharding_strategy.xml
@@ -24,6 +24,6 @@
<column name="sharding_algorithm_type" />
<column name="sharding_algorithm_props" />
</metadata>
- <row values="TABLE| NONE| | | | " />
- <row values="DATABASE| NONE| | | | " />
+ <row values="TABLE| | | | | " />
+ <row values="DATABASE| | | | | " />
</dataset>