You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2023/07/09 23:15:29 UTC

[calcite] branch main updated: [CALCITE-5823] Remove commons-collections dependency from innodb

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

jhyde pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git


The following commit(s) were added to refs/heads/main by this push:
     new 8eeab5ea6d [CALCITE-5823] Remove commons-collections dependency from innodb
8eeab5ea6d is described below

commit 8eeab5ea6d94d1d38fd63548d42a082fb1827af6
Author: Ran Tao <ch...@gmail.com>
AuthorDate: Sun Jul 9 16:06:02 2023 +0800

    [CALCITE-5823] Remove commons-collections dependency from innodb
---
 innodb/build.gradle.kts                                        |  1 -
 .../java/org/apache/calcite/adapter/innodb/IndexCondition.java |  6 ++----
 .../apache/calcite/adapter/innodb/InnodbFilterTranslator.java  | 10 ++++------
 .../java/org/apache/calcite/adapter/innodb/InnodbSchema.java   |  3 +--
 .../org/apache/calcite/adapter/innodb/InnodbTableScan.java     |  6 ++----
 .../calcite/adapter/innodb/InnodbToEnumerableConverter.java    |  4 +---
 .../org/apache/calcite/adapter/innodb/InnodbAdapterTest.java   |  4 +---
 7 files changed, 11 insertions(+), 23 deletions(-)

diff --git a/innodb/build.gradle.kts b/innodb/build.gradle.kts
index 9490d73174..88b00aa809 100644
--- a/innodb/build.gradle.kts
+++ b/innodb/build.gradle.kts
@@ -30,7 +30,6 @@ dependencies {
     }
     api("com.google.guava:guava")
 
-    implementation("org.apache.commons:commons-collections4")
     implementation("org.apache.calcite.avatica:avatica-core")
     implementation("org.apache.commons:commons-lang3")
     implementation("org.slf4j:slf4j-api")
diff --git a/innodb/src/main/java/org/apache/calcite/adapter/innodb/IndexCondition.java b/innodb/src/main/java/org/apache/calcite/adapter/innodb/IndexCondition.java
index 6d2593af06..96cb47106f 100644
--- a/innodb/src/main/java/org/apache/calcite/adapter/innodb/IndexCondition.java
+++ b/innodb/src/main/java/org/apache/calcite/adapter/innodb/IndexCondition.java
@@ -22,8 +22,6 @@ import org.apache.calcite.rel.RelFieldCollation;
 import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.util.Pair;
 
-import org.apache.commons.collections4.CollectionUtils;
-
 import com.alibaba.innodb.java.reader.comparator.ComparisonOperator;
 import com.google.common.collect.ImmutableList;
 
@@ -332,10 +330,10 @@ public class IndexCondition {
       checkState(pointQueryKey.size() == indexColumnNames.size());
       append(builder, indexColumnNames, pointQueryKey, "=");
     } else {
-      if (CollectionUtils.isNotEmpty(rangeQueryLowerKey)) {
+      if (!rangeQueryLowerKey.isEmpty()) {
         append(builder, indexColumnNames, rangeQueryLowerKey, rangeQueryLowerOp.value());
       }
-      if (CollectionUtils.isNotEmpty(rangeQueryUpperKey)) {
+      if (!rangeQueryUpperKey.isEmpty()) {
         append(builder, indexColumnNames, rangeQueryUpperKey, rangeQueryUpperOp.value());
       }
     }
diff --git a/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbFilterTranslator.java b/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbFilterTranslator.java
index 45be9e9104..9e6f480cae 100644
--- a/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbFilterTranslator.java
+++ b/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbFilterTranslator.java
@@ -30,8 +30,6 @@ import org.apache.calcite.util.DateString;
 import org.apache.calcite.util.TimeString;
 import org.apache.calcite.util.TimestampString;
 
-import org.apache.commons.collections4.CollectionUtils;
-
 import com.alibaba.innodb.java.reader.comparator.ComparisonOperator;
 import com.alibaba.innodb.java.reader.schema.KeyMeta;
 import com.alibaba.innodb.java.reader.schema.TableDef;
@@ -112,7 +110,7 @@ class InnodbFilterTranslator {
     }
 
     // try to push down filter by secondary keys
-    if (CollectionUtils.isNotEmpty(skMetaList)) {
+    if (!skMetaList.isEmpty()) {
       for (KeyMeta skMeta : skMetaList) {
         indexConditions.add(findPushDownCondition(rexNodeList, skMeta));
       }
@@ -140,7 +138,7 @@ class InnodbFilterTranslator {
     List<InternalRexNode> matchedRexNodeList = analyzePrefixMatches(rexNodeList, keyMeta);
 
     // none of the conditions can be pushed down
-    if (CollectionUtils.isEmpty(matchedRexNodeList)) {
+    if (matchedRexNodeList.isEmpty()) {
       return IndexCondition.EMPTY_CONDITION;
     }
 
@@ -153,7 +151,7 @@ class InnodbFilterTranslator {
 
     // left-prefix index rule not match
     Collection<InternalRexNode> leftMostKeyNodes = keyOrdToNodesMap.get(0);
-    if (CollectionUtils.isEmpty(leftMostKeyNodes)) {
+    if (leftMostKeyNodes == null || leftMostKeyNodes.isEmpty()) {
       return IndexCondition.EMPTY_CONDITION;
     }
 
@@ -459,7 +457,7 @@ class InnodbFilterTranslator {
    */
   private static Optional<InternalRexNode> findFirstOp(Collection<InternalRexNode> nodes,
       String... opList) {
-    if (CollectionUtils.isEmpty(nodes)) {
+    if (nodes.isEmpty()) {
       return Optional.empty();
     }
     for (InternalRexNode node : nodes) {
diff --git a/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbSchema.java b/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbSchema.java
index d4d161cc3e..c6dbf0139a 100644
--- a/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbSchema.java
+++ b/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbSchema.java
@@ -25,7 +25,6 @@ import org.apache.calcite.schema.impl.AbstractSchema;
 import org.apache.calcite.sql.type.SqlTypeFactoryImpl;
 import org.apache.calcite.sql.type.SqlTypeName;
 
-import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 
 import com.alibaba.innodb.java.reader.TableReaderFactory;
@@ -56,7 +55,7 @@ public class InnodbSchema extends AbstractSchema {
 
   public InnodbSchema(List<String> sqlFilePathList,
       String ibdDataFileBasePath) {
-    checkArgument(CollectionUtils.isNotEmpty(sqlFilePathList),
+    checkArgument(sqlFilePathList != null && !sqlFilePathList.isEmpty(),
         "SQL file path list cannot be empty");
     checkArgument(StringUtils.isNotEmpty(ibdDataFileBasePath),
         "InnoDB data file with ibd suffix cannot be empty");
diff --git a/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbTableScan.java b/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbTableScan.java
index 632440251c..d3f161694e 100644
--- a/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbTableScan.java
+++ b/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbTableScan.java
@@ -30,8 +30,6 @@ import org.apache.calcite.rel.hint.HintStrategyTable;
 import org.apache.calcite.rel.hint.RelHint;
 import org.apache.calcite.rel.type.RelDataType;
 
-import org.apache.commons.collections4.CollectionUtils;
-
 import com.alibaba.innodb.java.reader.Constants;
 import com.alibaba.innodb.java.reader.schema.KeyMeta;
 
@@ -106,12 +104,12 @@ public class InnodbTableScan extends TableScan implements InnodbRel {
   }
 
   private Optional<String> getForceIndexName(final List<RelHint> hints) {
-    if (CollectionUtils.isEmpty(hints)) {
+    if (hints.isEmpty()) {
       return Optional.empty();
     }
     for (RelHint hint : hints) {
       if ("index".equalsIgnoreCase(hint.hintName)) {
-        if (CollectionUtils.isNotEmpty(hint.listOptions)) {
+        if (!hint.listOptions.isEmpty()) {
           Set<String> indexesNameSet = innodbTable.getIndexesNameSet();
           Optional<String> forceIndexName = hint.listOptions.stream().findFirst();
           if (!forceIndexName.isPresent()) {
diff --git a/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbToEnumerableConverter.java b/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbToEnumerableConverter.java
index d774fffcba..dcbbbebe5a 100644
--- a/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbToEnumerableConverter.java
+++ b/innodb/src/main/java/org/apache/calcite/adapter/innodb/InnodbToEnumerableConverter.java
@@ -40,8 +40,6 @@ import org.apache.calcite.util.BuiltInMethod;
 import org.apache.calcite.util.Pair;
 import org.apache.calcite.util.Util;
 
-import org.apache.commons.collections4.CollectionUtils;
-
 import com.alibaba.innodb.java.reader.comparator.ComparisonOperator;
 
 import org.checkerframework.checker.nullness.qual.Nullable;
@@ -183,7 +181,7 @@ public class InnodbToEnumerableConverter extends ConverterImpl
    * {@code {ConstantExpression("x"), ConstantExpression("y")}}.
    */
   private static <T> List<Expression> constantList(List<T> values) {
-    if (CollectionUtils.isEmpty(values)) {
+    if (values == null || values.isEmpty()) {
       return Collections.emptyList();
     }
     return Util.transform(values, Expressions::constant);
diff --git a/innodb/src/test/java/org/apache/calcite/adapter/innodb/InnodbAdapterTest.java b/innodb/src/test/java/org/apache/calcite/adapter/innodb/InnodbAdapterTest.java
index 90770d2b68..f3a889c122 100644
--- a/innodb/src/test/java/org/apache/calcite/adapter/innodb/InnodbAdapterTest.java
+++ b/innodb/src/test/java/org/apache/calcite/adapter/innodb/InnodbAdapterTest.java
@@ -26,8 +26,6 @@ import org.apache.calcite.util.Holder;
 import org.apache.calcite.util.Pair;
 import org.apache.calcite.util.Sources;
 
-import org.apache.commons.collections4.CollectionUtils;
-
 import com.alibaba.innodb.java.reader.util.Utils;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
@@ -1230,7 +1228,7 @@ public class InnodbAdapterTest {
   }
 
   private static String join(List<String> empList) {
-    if (CollectionUtils.isEmpty(empList)) {
+    if (empList.isEmpty()) {
       return "";
     }
     return String.join("\n", empList) + "\n";