This is an automated email from the ASF dual-hosted git repository.

chengzhang 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 f141d770bd3 Use CaseInsensitiveSet to replace 
TreeSet<>(String.CASE_INSENSITIVE_ORDER) (#34464)
f141d770bd3 is described below

commit f141d770bd35bc3a0c4e31cb58bc5576ad32a039
Author: Zhengqiang Duan <duanzhengqi...@apache.org>
AuthorDate: Fri Jan 24 15:01:05 2025 +0800

    Use CaseInsensitiveSet to replace TreeSet<>(String.CASE_INSENSITIVE_ORDER) 
(#34464)
---
 .../rewrite/condition/EncryptConditionEngine.java  | 37 +++++++++++-----------
 .../type/complex/ShardingComplexRouteEngine.java   |  4 +--
 .../type/complex/ComplexShardingStrategy.java      |  8 ++---
 .../strategy/type/hint/HintShardingStrategy.java   |  8 ++---
 .../type/standard/StandardShardingStrategy.java    |  8 ++---
 .../shardingsphere/sharding/rule/ShardingRule.java |  4 +--
 .../sharding/rule/ShardingTable.java               |  4 +--
 .../single/util/SingleTableLoadUtils.java          |  6 ++--
 .../admin/OpenGaussAdminExecutorCreator.java       |  7 ++--
 9 files changed, 38 insertions(+), 48 deletions(-)

diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
index 4e3435d7642..3266573ed58 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.condition;
 
+import com.cedarsoftware.util.CaseInsensitiveSet;
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException;
 import 
org.apache.shardingsphere.encrypt.rewrite.condition.impl.EncryptBinaryCondition;
@@ -44,8 +45,6 @@ import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Optional;
-import java.util.Set;
-import java.util.TreeSet;
 
 /**
  * Encrypt condition engine.
@@ -54,26 +53,26 @@ import java.util.TreeSet;
 @RequiredArgsConstructor
 public final class EncryptConditionEngine {
     
-    private static final Set<String> LOGICAL_OPERATOR = new 
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
+    private static final Collection<String> LOGICAL_OPERATORS = new 
CaseInsensitiveSet<>();
     
-    private static final Set<String> SUPPORTED_COMPARE_OPERATOR = new 
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
+    private static final Collection<String> SUPPORTED_COMPARE_OPERATORS = new 
CaseInsensitiveSet<>();
     
     private final EncryptRule rule;
     
     static {
-        LOGICAL_OPERATOR.add("AND");
-        LOGICAL_OPERATOR.add("&&");
-        LOGICAL_OPERATOR.add("OR");
-        LOGICAL_OPERATOR.add("||");
-        SUPPORTED_COMPARE_OPERATOR.add("=");
-        SUPPORTED_COMPARE_OPERATOR.add("<>");
-        SUPPORTED_COMPARE_OPERATOR.add("!=");
-        SUPPORTED_COMPARE_OPERATOR.add(">");
-        SUPPORTED_COMPARE_OPERATOR.add("<");
-        SUPPORTED_COMPARE_OPERATOR.add(">=");
-        SUPPORTED_COMPARE_OPERATOR.add("<=");
-        SUPPORTED_COMPARE_OPERATOR.add("IS");
-        SUPPORTED_COMPARE_OPERATOR.add("LIKE");
+        LOGICAL_OPERATORS.add("AND");
+        LOGICAL_OPERATORS.add("&&");
+        LOGICAL_OPERATORS.add("OR");
+        LOGICAL_OPERATORS.add("||");
+        SUPPORTED_COMPARE_OPERATORS.add("=");
+        SUPPORTED_COMPARE_OPERATORS.add("<>");
+        SUPPORTED_COMPARE_OPERATORS.add("!=");
+        SUPPORTED_COMPARE_OPERATORS.add(">");
+        SUPPORTED_COMPARE_OPERATORS.add("<");
+        SUPPORTED_COMPARE_OPERATORS.add(">=");
+        SUPPORTED_COMPARE_OPERATORS.add("<=");
+        SUPPORTED_COMPARE_OPERATORS.add("IS");
+        SUPPORTED_COMPARE_OPERATORS.add("LIKE");
     }
     
     /**
@@ -148,10 +147,10 @@ public final class EncryptConditionEngine {
     
     private Optional<EncryptCondition> createBinaryEncryptCondition(final 
BinaryOperationExpression expression, final String tableName) {
         String operator = expression.getOperator();
-        if (LOGICAL_OPERATOR.contains(operator)) {
+        if (LOGICAL_OPERATORS.contains(operator)) {
             return Optional.empty();
         }
-        ShardingSpherePreconditions.checkContains(SUPPORTED_COMPARE_OPERATOR, 
operator, () -> new UnsupportedEncryptSQLException(operator));
+        ShardingSpherePreconditions.checkContains(SUPPORTED_COMPARE_OPERATORS, 
operator, () -> new UnsupportedEncryptSQLException(operator));
         return createCompareEncryptCondition(tableName, expression);
     }
     
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRouteEngine.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRouteEngine.java
index 98e2ff506eb..25a8c4a3cbd 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRouteEngine.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRouteEngine.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.sharding.route.engine.type.complex;
 
+import com.cedarsoftware.util.CaseInsensitiveSet;
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
@@ -32,7 +33,6 @@ import org.apache.shardingsphere.sharding.rule.ShardingTable;
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.Optional;
-import java.util.TreeSet;
 
 /**
  * Sharding complex route engine.
@@ -52,7 +52,7 @@ public final class ShardingComplexRouteEngine implements 
ShardingRouteEngine {
     
     @Override
     public RouteContext route(final ShardingRule shardingRule) {
-        Collection<String> bindingTableNames = new 
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
+        Collection<String> bindingTableNames = new CaseInsensitiveSet<>();
         Collection<RouteContext> routeContexts = new LinkedList<>();
         for (String each : logicTables) {
             Optional<ShardingTable> shardingTable = 
shardingRule.findShardingTable(each);
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/complex/ComplexShardingStrategy.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/complex/ComplexShardingStrategy.java
index fdaac6a7f45..5c98cbf0efa 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/complex/ComplexShardingStrategy.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/complex/ComplexShardingStrategy.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.sharding.route.strategy.type.complex;
 
+import com.cedarsoftware.util.CaseInsensitiveSet;
 import com.google.common.base.Splitter;
 import com.google.common.collect.Range;
 import lombok.Getter;
@@ -34,7 +35,6 @@ import 
org.apache.shardingsphere.sharding.route.strategy.ShardingStrategy;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.TreeSet;
 
 /**
  * Complex sharding strategy.
@@ -49,7 +49,7 @@ public final class ComplexShardingStrategy implements 
ShardingStrategy {
     public ComplexShardingStrategy(final String shardingColumns, final 
ComplexKeysShardingAlgorithm<?> shardingAlgorithm) {
         ShardingSpherePreconditions.checkNotNull(shardingColumns, () -> new 
MissingRequiredShardingConfigurationException("Complex sharding columns"));
         ShardingSpherePreconditions.checkNotNull(shardingAlgorithm, () -> new 
MissingRequiredShardingConfigurationException("Complex sharding algorithm"));
-        this.shardingColumns = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
+        this.shardingColumns = new CaseInsensitiveSet<>();
         
this.shardingColumns.addAll(Splitter.on(",").trimResults().splitToList(shardingColumns));
         this.shardingAlgorithm = shardingAlgorithm;
     }
@@ -70,8 +70,6 @@ public final class ComplexShardingStrategy implements 
ShardingStrategy {
             logicTableName = each.getTableName();
         }
         Collection<String> shardingResult = 
shardingAlgorithm.doSharding(availableTargetNames, new 
ComplexKeysShardingValue(logicTableName, columnShardingValues, 
columnRangeValues));
-        Collection<String> result = new 
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
-        result.addAll(shardingResult);
-        return result;
+        return new CaseInsensitiveSet<>(shardingResult);
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/hint/HintShardingStrategy.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/hint/HintShardingStrategy.java
index 4ff9568b1f6..1c17ab6e692 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/hint/HintShardingStrategy.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/hint/HintShardingStrategy.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.sharding.route.strategy.type.hint;
 
+import com.cedarsoftware.util.CaseInsensitiveSet;
 import lombok.Getter;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.datanode.DataNodeInfo;
@@ -29,7 +30,6 @@ import 
org.apache.shardingsphere.sharding.route.engine.condition.value.ShardingC
 import org.apache.shardingsphere.sharding.route.strategy.ShardingStrategy;
 
 import java.util.Collection;
-import java.util.TreeSet;
 
 /**
  * Hint sharding strategy.
@@ -43,7 +43,7 @@ public final class HintShardingStrategy implements 
ShardingStrategy {
     
     public HintShardingStrategy(final HintShardingAlgorithm<?> 
shardingAlgorithm) {
         ShardingSpherePreconditions.checkNotNull(shardingAlgorithm, () -> new 
MissingRequiredShardingConfigurationException("Hint sharding algorithm"));
-        shardingColumns = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
+        shardingColumns = new CaseInsensitiveSet<>();
         this.shardingAlgorithm = shardingAlgorithm;
     }
     
@@ -54,8 +54,6 @@ public final class HintShardingStrategy implements 
ShardingStrategy {
         ListShardingConditionValue<?> shardingValue = 
(ListShardingConditionValue) shardingConditionValues.iterator().next();
         Collection<String> shardingResult = 
shardingAlgorithm.doSharding(availableTargetNames,
                 new HintShardingValue(shardingValue.getTableName(), 
shardingValue.getColumnName(), shardingValue.getValues()));
-        Collection<String> result = new 
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
-        result.addAll(shardingResult);
-        return result;
+        return new CaseInsensitiveSet<>(shardingResult);
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/standard/StandardShardingStrategy.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/standard/StandardShardingStrategy.java
index d9879570892..935998b5bef 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/standard/StandardShardingStrategy.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/strategy/type/standard/StandardShardingStrategy.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.sharding.route.strategy.type.standard;
 
+import com.cedarsoftware.util.CaseInsensitiveSet;
 import lombok.Getter;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.datanode.DataNodeInfo;
@@ -33,7 +34,6 @@ import 
org.apache.shardingsphere.sharding.route.strategy.ShardingStrategy;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedList;
-import java.util.TreeSet;
 
 /**
  * Standard sharding strategy.
@@ -48,7 +48,7 @@ public final class StandardShardingStrategy implements 
ShardingStrategy {
     public StandardShardingStrategy(final String shardingColumn, final 
StandardShardingAlgorithm<?> shardingAlgorithm) {
         ShardingSpherePreconditions.checkNotNull(shardingColumn, () -> new 
MissingRequiredShardingConfigurationException("Standard sharding column"));
         ShardingSpherePreconditions.checkNotNull(shardingAlgorithm, () -> new 
MissingRequiredShardingConfigurationException("Standard sharding algorithm"));
-        Collection<String> shardingColumns = new 
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
+        Collection<String> shardingColumns = new CaseInsensitiveSet<>();
         shardingColumns.add(shardingColumn);
         this.shardingColumns = 
Collections.unmodifiableCollection(shardingColumns);
         this.shardingAlgorithm = shardingAlgorithm;
@@ -62,9 +62,7 @@ public final class StandardShardingStrategy implements 
ShardingStrategy {
         Collection<String> shardingResult = shardingConditionValue instanceof 
ListShardingConditionValue
                 ? doSharding(availableTargetNames, 
(ListShardingConditionValue) shardingConditionValue, dataNodeInfo)
                 : doSharding(availableTargetNames, 
(RangeShardingConditionValue) shardingConditionValue, dataNodeInfo);
-        Collection<String> result = new 
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
-        result.addAll(shardingResult);
-        return result;
+        return new CaseInsensitiveSet<>(shardingResult);
     }
     
     @SuppressWarnings({"unchecked", "rawtypes"})
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
index 63300dfc59b..92c292e2b9b 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
@@ -76,7 +76,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
-import java.util.TreeSet;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -331,8 +330,7 @@ public final class ShardingRule implements DatabaseRule {
         if (!bindingTableRule.isPresent()) {
             return false;
         }
-        Collection<String> result = new 
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
-        result.addAll(bindingTableRule.get().getAllLogicTables());
+        Collection<String> result = new 
CaseInsensitiveSet<>(bindingTableRule.get().getAllLogicTables());
         return !result.isEmpty() && result.containsAll(logicTableNames);
     }
     
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingTable.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingTable.java
index e49310b58cb..fd9946750fe 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingTable.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingTable.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.sharding.rule;
 
+import com.cedarsoftware.util.CaseInsensitiveSet;
 import com.google.common.base.Strings;
 import lombok.AccessLevel;
 import lombok.Getter;
@@ -47,7 +48,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
-import java.util.TreeSet;
 import java.util.stream.Collectors;
 
 /**
@@ -159,7 +159,7 @@ public final class ShardingTable {
     }
     
     private Set<String> getActualTables() {
-        return 
actualDataNodes.stream().map(DataNode::getTableName).collect(Collectors.toCollection(()
 -> new TreeSet<>(String.CASE_INSENSITIVE_ORDER)));
+        return 
actualDataNodes.stream().map(DataNode::getTableName).collect(Collectors.toCollection(CaseInsensitiveSet::new));
     }
     
     private void addActualTable(final String datasourceName, final String 
tableName) {
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/util/SingleTableLoadUtils.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/util/SingleTableLoadUtils.java
index add22decdc5..b2eb4876c84 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/util/SingleTableLoadUtils.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/util/SingleTableLoadUtils.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.single.util;
 
+import com.cedarsoftware.util.CaseInsensitiveSet;
 import com.google.common.base.Splitter;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
@@ -31,7 +32,6 @@ import 
org.apache.shardingsphere.single.constant.SingleTableConstants;
 import java.util.Collection;
 import java.util.LinkedHashSet;
 import java.util.Optional;
-import java.util.TreeSet;
 import java.util.stream.Collectors;
 
 /**
@@ -49,7 +49,7 @@ public final class SingleTableLoadUtils {
      * @return excluded tables
      */
     public static Collection<String> getExcludedTables(final 
Collection<ShardingSphereRule> builtRules) {
-        Collection<String> result = new 
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
+        Collection<String> result = new CaseInsensitiveSet<>();
         for (ShardingSphereRule each : builtRules) {
             Optional<TableMapperRuleAttribute> ruleAttribute = 
each.getAttributes().findAttribute(TableMapperRuleAttribute.class);
             if (ruleAttribute.isPresent()) {
@@ -67,7 +67,7 @@ public final class SingleTableLoadUtils {
      * @return feature required single tables
      */
     public static Collection<String> getFeatureRequiredSingleTables(final 
Collection<ShardingSphereRule> builtRules) {
-        Collection<String> result = new 
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
+        Collection<String> result = new CaseInsensitiveSet<>();
         for (ShardingSphereRule each : builtRules) {
             Optional<TableMapperRuleAttribute> ruleAttribute = 
each.getAttributes().findAttribute(TableMapperRuleAttribute.class);
             if (!ruleAttribute.isPresent()) {
diff --git 
a/proxy/backend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreator.java
 
b/proxy/backend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreator.java
index fa5165d79bc..6e91bdac1e4 100644
--- 
a/proxy/backend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreator.java
+++ 
b/proxy/backend/type/opengauss/src/main/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussAdminExecutorCreator.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.proxy.backend.opengauss.handler.admin;
 
+import com.cedarsoftware.util.CaseInsensitiveSet;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.manager.SystemSchemaManager;
@@ -34,17 +35,15 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
-import java.util.Set;
-import java.util.TreeSet;
 
 /**
  * Database admin executor creator for openGauss.
  */
 public final class OpenGaussAdminExecutorCreator implements 
DatabaseAdminExecutorCreator {
     
-    private static final Set<String> SYSTEM_CATALOG_QUERY_EXPRESSIONS = new 
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
+    private static final Collection<String> SYSTEM_CATALOG_QUERY_EXPRESSIONS = 
new CaseInsensitiveSet<>();
     
-    private static final Set<String> SYSTEM_CATALOG_TABLES = new 
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
+    private static final Collection<String> SYSTEM_CATALOG_TABLES = new 
CaseInsensitiveSet<>();
     
     static {
         SYSTEM_CATALOG_QUERY_EXPRESSIONS.add("VERSION()");

Reply via email to