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 <[email protected]>
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>