This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 3bde531cfff Use CaseInsensitiveMap to replace LinkedHashMap in
TableNamesMapper (#29434)
3bde531cfff is described below
commit 3bde531cffff071b3dcc81fcdb014514354545fc
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Mon Dec 18 17:05:01 2023 +0800
Use CaseInsensitiveMap to replace LinkedHashMap in TableNamesMapper (#29434)
* Use CaseInsensitiveMap to replace LinkedHashMap in TableNamesMapper
* fix unit test
---
.../apache/shardingsphere/sharding/rule/ShardingRuleTest.java | 2 +-
.../infra/rule/identifier/type/TableNamesMapper.java | 11 ++++++-----
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
index 26cf8bd1f63..af2001b94a6 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
@@ -444,7 +444,7 @@ class ShardingRuleTest {
@Test
void assertGetTables() {
- assertThat(new
LinkedList<>(createMaximumShardingRule().getLogicTableMapper().getTableNames()),
is(Arrays.asList("LOGIC_TABLE", "SUB_LOGIC_TABLE")));
+ assertThat(new
LinkedList<>(createMaximumShardingRule().getLogicTableMapper().getTableNames()),
is(Arrays.asList("SUB_LOGIC_TABLE", "LOGIC_TABLE")));
}
@Test
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/identifier/type/TableNamesMapper.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/identifier/type/TableNamesMapper.java
index 27db026e6f2..808a589b76c 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/identifier/type/TableNamesMapper.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/identifier/type/TableNamesMapper.java
@@ -17,8 +17,9 @@
package org.apache.shardingsphere.infra.rule.identifier.type;
+import org.apache.commons.collections4.map.CaseInsensitiveMap;
+
import java.util.Collection;
-import java.util.LinkedHashMap;
import java.util.Map;
/**
@@ -26,7 +27,7 @@ import java.util.Map;
*/
public final class TableNamesMapper {
- private final Map<String, String> lowerCaseTableNames = new
LinkedHashMap<>();
+ private final Map<String, String> lowerCaseTableNames = new
CaseInsensitiveMap<>();
/**
* Judge whether contains table or not.
@@ -35,7 +36,7 @@ public final class TableNamesMapper {
* @return whether contains table or not
*/
public boolean contains(final String tableName) {
- return lowerCaseTableNames.containsKey(tableName.toLowerCase());
+ return lowerCaseTableNames.containsKey(tableName);
}
/**
@@ -53,7 +54,7 @@ public final class TableNamesMapper {
* @param tableName table name
*/
public void put(final String tableName) {
- lowerCaseTableNames.put(tableName.toLowerCase(), tableName);
+ lowerCaseTableNames.put(tableName, tableName);
}
/**
@@ -62,6 +63,6 @@ public final class TableNamesMapper {
* @param tableName table name
*/
public void remove(final String tableName) {
- lowerCaseTableNames.remove(tableName.toLowerCase());
+ lowerCaseTableNames.remove(tableName);
}
}