You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by bl...@apache.org on 2019/07/18 15:52:53 UTC
[incubator-iceberg] branch master updated: Add multi AND helper
method (#294)
This is an automated email from the ASF dual-hosted git repository.
blue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iceberg.git
The following commit(s) were added to refs/heads/master by this push:
new 40bb3c0 Add multi AND helper method (#294)
40bb3c0 is described below
commit 40bb3c077a90f0094673e8b59afe59911baa2de3
Author: Arina Ielchiieva <ar...@gmail.com>
AuthorDate: Thu Jul 18 18:52:49 2019 +0300
Add multi AND helper method (#294)
---
.../java/org/apache/iceberg/expressions/Expressions.java | 6 ++++++
.../iceberg/expressions/TestExpressionHelpers.java | 16 ++++++++++++++++
2 files changed, 22 insertions(+)
diff --git a/api/src/main/java/org/apache/iceberg/expressions/Expressions.java b/api/src/main/java/org/apache/iceberg/expressions/Expressions.java
index c42e9fa..d280f89 100644
--- a/api/src/main/java/org/apache/iceberg/expressions/Expressions.java
+++ b/api/src/main/java/org/apache/iceberg/expressions/Expressions.java
@@ -20,6 +20,7 @@
package org.apache.iceberg.expressions;
import com.google.common.base.Preconditions;
+import java.util.stream.Stream;
import org.apache.iceberg.expressions.Expression.Operation;
/**
@@ -42,6 +43,11 @@ public class Expressions {
return new And(left, right);
}
+ public static Expression and(Expression left, Expression right, Expression... expressions) {
+ return Stream.of(expressions)
+ .reduce(and(left, right), Expressions::and);
+ }
+
public static Expression or(Expression left, Expression right) {
Preconditions.checkNotNull(left, "Left expression cannot be null.");
Preconditions.checkNotNull(right, "Right expression cannot be null.");
diff --git a/api/src/test/java/org/apache/iceberg/expressions/TestExpressionHelpers.java b/api/src/test/java/org/apache/iceberg/expressions/TestExpressionHelpers.java
index 6ca11ad..456a967 100644
--- a/api/src/test/java/org/apache/iceberg/expressions/TestExpressionHelpers.java
+++ b/api/src/test/java/org/apache/iceberg/expressions/TestExpressionHelpers.java
@@ -76,4 +76,20 @@ public class TestExpressionHelpers {
TestHelpers.assertThrows("Should catch null column names when creating expressions",
NullPointerException.class, "Name cannot be null", () -> equal(null, 5));
}
+
+ @Test
+ public void testMultiAnd() {
+ Expression expected = and(
+ and(
+ equal("a", 1),
+ equal("b", 2)),
+ equal("c", 3));
+
+ Expression actual = and(
+ equal("a", 1),
+ equal("b", 2),
+ equal("c", 3));
+
+ Assert.assertEquals(expected.toString(), actual.toString());
+ }
}