Skip to content

Commit f141d77

Browse files
authored
Use CaseInsensitiveSet to replace TreeSet<>(String.CASE_INSENSITIVE_ORDER) (#34464)
1 parent a7c137c commit f141d77

File tree

9 files changed

+38
-48
lines changed

9 files changed

+38
-48
lines changed

features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.apache.shardingsphere.encrypt.rewrite.condition;
1919

20+
import com.cedarsoftware.util.CaseInsensitiveSet;
2021
import lombok.RequiredArgsConstructor;
2122
import org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException;
2223
import org.apache.shardingsphere.encrypt.rewrite.condition.impl.EncryptBinaryCondition;
@@ -44,8 +45,6 @@
4445
import java.util.LinkedList;
4546
import java.util.List;
4647
import java.util.Optional;
47-
import java.util.Set;
48-
import java.util.TreeSet;
4948

5049
/**
5150
* Encrypt condition engine.
@@ -54,26 +53,26 @@
5453
@RequiredArgsConstructor
5554
public final class EncryptConditionEngine {
5655

57-
private static final Set<String> LOGICAL_OPERATOR = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
56+
private static final Collection<String> LOGICAL_OPERATORS = new CaseInsensitiveSet<>();
5857

59-
private static final Set<String> SUPPORTED_COMPARE_OPERATOR = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
58+
private static final Collection<String> SUPPORTED_COMPARE_OPERATORS = new CaseInsensitiveSet<>();
6059

6160
private final EncryptRule rule;
6261

6362
static {
64-
LOGICAL_OPERATOR.add("AND");
65-
LOGICAL_OPERATOR.add("&&");
66-
LOGICAL_OPERATOR.add("OR");
67-
LOGICAL_OPERATOR.add("||");
68-
SUPPORTED_COMPARE_OPERATOR.add("=");
69-
SUPPORTED_COMPARE_OPERATOR.add("<>");
70-
SUPPORTED_COMPARE_OPERATOR.add("!=");
71-
SUPPORTED_COMPARE_OPERATOR.add(">");
72-
SUPPORTED_COMPARE_OPERATOR.add("<");
73-
SUPPORTED_COMPARE_OPERATOR.add(">=");
74-
SUPPORTED_COMPARE_OPERATOR.add("<=");
75-
SUPPORTED_COMPARE_OPERATOR.add("IS");
76-
SUPPORTED_COMPARE_OPERATOR.add("LIKE");
63+
LOGICAL_OPERATORS.add("AND");
64+
LOGICAL_OPERATORS.add("&&");
65+
LOGICAL_OPERATORS.add("OR");
66+
LOGICAL_OPERATORS.add("||");
67+
SUPPORTED_COMPARE_OPERATORS.add("=");
68+
SUPPORTED_COMPARE_OPERATORS.add("<>");
69+
SUPPORTED_COMPARE_OPERATORS.add("!=");
70+
SUPPORTED_COMPARE_OPERATORS.add(">");
71+
SUPPORTED_COMPARE_OPERATORS.add("<");
72+
SUPPORTED_COMPARE_OPERATORS.add(">=");
73+
SUPPORTED_COMPARE_OPERATORS.add("<=");
74+
SUPPORTED_COMPARE_OPERATORS.add("IS");
75+
SUPPORTED_COMPARE_OPERATORS.add("LIKE");
7776
}
7877

7978
/**
@@ -148,10 +147,10 @@ private Optional<EncryptCondition> createEncryptCondition(final ExpressionSegmen
148147

149148
private Optional<EncryptCondition> createBinaryEncryptCondition(final BinaryOperationExpression expression, final String tableName) {
150149
String operator = expression.getOperator();
151-
if (LOGICAL_OPERATOR.contains(operator)) {
150+
if (LOGICAL_OPERATORS.contains(operator)) {
152151
return Optional.empty();
153152
}
154-
ShardingSpherePreconditions.checkContains(SUPPORTED_COMPARE_OPERATOR, operator, () -> new UnsupportedEncryptSQLException(operator));
153+
ShardingSpherePreconditions.checkContains(SUPPORTED_COMPARE_OPERATORS, operator, () -> new UnsupportedEncryptSQLException(operator));
155154
return createCompareEncryptCondition(tableName, expression);
156155
}
157156

features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRouteEngine.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.apache.shardingsphere.sharding.route.engine.type.complex;
1919

20+
import com.cedarsoftware.util.CaseInsensitiveSet;
2021
import lombok.RequiredArgsConstructor;
2122
import org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
2223
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
@@ -32,7 +33,6 @@
3233
import java.util.Collection;
3334
import java.util.LinkedList;
3435
import java.util.Optional;
35-
import java.util.TreeSet;
3636

3737
/**
3838
* Sharding complex route engine.
@@ -52,7 +52,7 @@ public final class ShardingComplexRouteEngine implements ShardingRouteEngine {
5252

5353
@Override
5454
public RouteContext route(final ShardingRule shardingRule) {
55-
Collection<String> bindingTableNames = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
55+
Collection<String> bindingTableNames = new CaseInsensitiveSet<>();
5656
Collection<RouteContext> routeContexts = new LinkedList<>();
5757
for (String each : logicTables) {
5858
Optional<ShardingTable> shardingTable = shardingRule.findShardingTable(each);

features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/complex/ComplexShardingStrategy.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.apache.shardingsphere.sharding.route.strategy.type.complex;
1919

20+
import com.cedarsoftware.util.CaseInsensitiveSet;
2021
import com.google.common.base.Splitter;
2122
import com.google.common.collect.Range;
2223
import lombok.Getter;
@@ -34,7 +35,6 @@
3435
import java.util.Collection;
3536
import java.util.HashMap;
3637
import java.util.Map;
37-
import java.util.TreeSet;
3838

3939
/**
4040
* Complex sharding strategy.
@@ -49,7 +49,7 @@ public final class ComplexShardingStrategy implements ShardingStrategy {
4949
public ComplexShardingStrategy(final String shardingColumns, final ComplexKeysShardingAlgorithm<?> shardingAlgorithm) {
5050
ShardingSpherePreconditions.checkNotNull(shardingColumns, () -> new MissingRequiredShardingConfigurationException("Complex sharding columns"));
5151
ShardingSpherePreconditions.checkNotNull(shardingAlgorithm, () -> new MissingRequiredShardingConfigurationException("Complex sharding algorithm"));
52-
this.shardingColumns = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
52+
this.shardingColumns = new CaseInsensitiveSet<>();
5353
this.shardingColumns.addAll(Splitter.on(",").trimResults().splitToList(shardingColumns));
5454
this.shardingAlgorithm = shardingAlgorithm;
5555
}
@@ -70,8 +70,6 @@ public Collection<String> doSharding(final Collection<String> availableTargetNam
7070
logicTableName = each.getTableName();
7171
}
7272
Collection<String> shardingResult = shardingAlgorithm.doSharding(availableTargetNames, new ComplexKeysShardingValue(logicTableName, columnShardingValues, columnRangeValues));
73-
Collection<String> result = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
74-
result.addAll(shardingResult);
75-
return result;
73+
return new CaseInsensitiveSet<>(shardingResult);
7674
}
7775
}

features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/hint/HintShardingStrategy.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.apache.shardingsphere.sharding.route.strategy.type.hint;
1919

20+
import com.cedarsoftware.util.CaseInsensitiveSet;
2021
import lombok.Getter;
2122
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
2223
import org.apache.shardingsphere.infra.datanode.DataNodeInfo;
@@ -29,7 +30,6 @@
2930
import org.apache.shardingsphere.sharding.route.strategy.ShardingStrategy;
3031

3132
import java.util.Collection;
32-
import java.util.TreeSet;
3333

3434
/**
3535
* Hint sharding strategy.
@@ -43,7 +43,7 @@ public final class HintShardingStrategy implements ShardingStrategy {
4343

4444
public HintShardingStrategy(final HintShardingAlgorithm<?> shardingAlgorithm) {
4545
ShardingSpherePreconditions.checkNotNull(shardingAlgorithm, () -> new MissingRequiredShardingConfigurationException("Hint sharding algorithm"));
46-
shardingColumns = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
46+
shardingColumns = new CaseInsensitiveSet<>();
4747
this.shardingAlgorithm = shardingAlgorithm;
4848
}
4949

@@ -54,8 +54,6 @@ public Collection<String> doSharding(final Collection<String> availableTargetNam
5454
ListShardingConditionValue<?> shardingValue = (ListShardingConditionValue) shardingConditionValues.iterator().next();
5555
Collection<String> shardingResult = shardingAlgorithm.doSharding(availableTargetNames,
5656
new HintShardingValue(shardingValue.getTableName(), shardingValue.getColumnName(), shardingValue.getValues()));
57-
Collection<String> result = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
58-
result.addAll(shardingResult);
59-
return result;
57+
return new CaseInsensitiveSet<>(shardingResult);
6058
}
6159
}

features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/standard/StandardShardingStrategy.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.apache.shardingsphere.sharding.route.strategy.type.standard;
1919

20+
import com.cedarsoftware.util.CaseInsensitiveSet;
2021
import lombok.Getter;
2122
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
2223
import org.apache.shardingsphere.infra.datanode.DataNodeInfo;
@@ -33,7 +34,6 @@
3334
import java.util.Collection;
3435
import java.util.Collections;
3536
import java.util.LinkedList;
36-
import java.util.TreeSet;
3737

3838
/**
3939
* Standard sharding strategy.
@@ -48,7 +48,7 @@ public final class StandardShardingStrategy implements ShardingStrategy {
4848
public StandardShardingStrategy(final String shardingColumn, final StandardShardingAlgorithm<?> shardingAlgorithm) {
4949
ShardingSpherePreconditions.checkNotNull(shardingColumn, () -> new MissingRequiredShardingConfigurationException("Standard sharding column"));
5050
ShardingSpherePreconditions.checkNotNull(shardingAlgorithm, () -> new MissingRequiredShardingConfigurationException("Standard sharding algorithm"));
51-
Collection<String> shardingColumns = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
51+
Collection<String> shardingColumns = new CaseInsensitiveSet<>();
5252
shardingColumns.add(shardingColumn);
5353
this.shardingColumns = Collections.unmodifiableCollection(shardingColumns);
5454
this.shardingAlgorithm = shardingAlgorithm;
@@ -62,9 +62,7 @@ public Collection<String> doSharding(final Collection<String> availableTargetNam
6262
Collection<String> shardingResult = shardingConditionValue instanceof ListShardingConditionValue
6363
? doSharding(availableTargetNames, (ListShardingConditionValue) shardingConditionValue, dataNodeInfo)
6464
: doSharding(availableTargetNames, (RangeShardingConditionValue) shardingConditionValue, dataNodeInfo);
65-
Collection<String> result = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
66-
result.addAll(shardingResult);
67-
return result;
65+
return new CaseInsensitiveSet<>(shardingResult);
6866
}
6967

7068
@SuppressWarnings({"unchecked", "rawtypes"})

features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@
7676
import java.util.Map;
7777
import java.util.Objects;
7878
import java.util.Optional;
79-
import java.util.TreeSet;
8079
import java.util.function.Function;
8180
import java.util.stream.Collectors;
8281

@@ -331,8 +330,7 @@ public boolean isAllConfigBindingTables(final Collection<String> logicTableNames
331330
if (!bindingTableRule.isPresent()) {
332331
return false;
333332
}
334-
Collection<String> result = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
335-
result.addAll(bindingTableRule.get().getAllLogicTables());
333+
Collection<String> result = new CaseInsensitiveSet<>(bindingTableRule.get().getAllLogicTables());
336334
return !result.isEmpty() && result.containsAll(logicTableNames);
337335
}
338336

features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingTable.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.apache.shardingsphere.sharding.rule;
1919

20+
import com.cedarsoftware.util.CaseInsensitiveSet;
2021
import com.google.common.base.Strings;
2122
import lombok.AccessLevel;
2223
import lombok.Getter;
@@ -47,7 +48,6 @@
4748
import java.util.Map;
4849
import java.util.Optional;
4950
import java.util.Set;
50-
import java.util.TreeSet;
5151
import java.util.stream.Collectors;
5252

5353
/**
@@ -159,7 +159,7 @@ private List<String> getDataNodes(final ShardingAutoTableRuleConfiguration table
159159
}
160160

161161
private Set<String> getActualTables() {
162-
return actualDataNodes.stream().map(DataNode::getTableName).collect(Collectors.toCollection(() -> new TreeSet<>(String.CASE_INSENSITIVE_ORDER)));
162+
return actualDataNodes.stream().map(DataNode::getTableName).collect(Collectors.toCollection(CaseInsensitiveSet::new));
163163
}
164164

165165
private void addActualTable(final String datasourceName, final String tableName) {

kernel/single/core/src/main/java/org/apache/shardingsphere/single/util/SingleTableLoadUtils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.apache.shardingsphere.single.util;
1919

20+
import com.cedarsoftware.util.CaseInsensitiveSet;
2021
import com.google.common.base.Splitter;
2122
import lombok.AccessLevel;
2223
import lombok.NoArgsConstructor;
@@ -31,7 +32,6 @@
3132
import java.util.Collection;
3233
import java.util.LinkedHashSet;
3334
import java.util.Optional;
34-
import java.util.TreeSet;
3535
import java.util.stream.Collectors;
3636

3737
/**
@@ -49,7 +49,7 @@ public final class SingleTableLoadUtils {
4949
* @return excluded tables
5050
*/
5151
public static Collection<String> getExcludedTables(final Collection<ShardingSphereRule> builtRules) {
52-
Collection<String> result = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
52+
Collection<String> result = new CaseInsensitiveSet<>();
5353
for (ShardingSphereRule each : builtRules) {
5454
Optional<TableMapperRuleAttribute> ruleAttribute = each.getAttributes().findAttribute(TableMapperRuleAttribute.class);
5555
if (ruleAttribute.isPresent()) {
@@ -67,7 +67,7 @@ public static Collection<String> getExcludedTables(final Collection<ShardingSphe
6767
* @return feature required single tables
6868
*/
6969
public static Collection<String> getFeatureRequiredSingleTables(final Collection<ShardingSphereRule> builtRules) {
70-
Collection<String> result = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
70+
Collection<String> result = new CaseInsensitiveSet<>();
7171
for (ShardingSphereRule each : builtRules) {
7272
Optional<TableMapperRuleAttribute> ruleAttribute = each.getAttributes().findAttribute(TableMapperRuleAttribute.class);
7373
if (!ruleAttribute.isPresent()) {

proxy/backend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreator.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package org.apache.shardingsphere.proxy.backend.opengauss.handler.admin;
1919

20+
import com.cedarsoftware.util.CaseInsensitiveSet;
2021
import org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
2122
import org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
2223
import org.apache.shardingsphere.infra.metadata.database.schema.manager.SystemSchemaManager;
@@ -34,17 +35,15 @@
3435
import java.util.Collections;
3536
import java.util.List;
3637
import java.util.Optional;
37-
import java.util.Set;
38-
import java.util.TreeSet;
3938

4039
/**
4140
* Database admin executor creator for openGauss.
4241
*/
4342
public final class OpenGaussAdminExecutorCreator implements DatabaseAdminExecutorCreator {
4443

45-
private static final Set<String> SYSTEM_CATALOG_QUERY_EXPRESSIONS = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
44+
private static final Collection<String> SYSTEM_CATALOG_QUERY_EXPRESSIONS = new CaseInsensitiveSet<>();
4645

47-
private static final Set<String> SYSTEM_CATALOG_TABLES = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
46+
private static final Collection<String> SYSTEM_CATALOG_TABLES = new CaseInsensitiveSet<>();
4847

4948
static {
5049
SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("VERSION()");

0 commit comments

Comments
 (0)