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";