You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by mm...@apache.org on 2018/07/20 17:41:28 UTC
[15/53] [abbrv] calcite git commit: [CALCITE-2259] Allow Java 8 syntax
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rex/RexUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/rex/RexUtil.java b/core/src/main/java/org/apache/calcite/rex/RexUtil.java
index 1e0fb15..29e63f1 100644
--- a/core/src/main/java/org/apache/calcite/rex/RexUtil.java
+++ b/core/src/main/java/org/apache/calcite/rex/RexUtil.java
@@ -30,7 +30,6 @@ import org.apache.calcite.rel.type.RelDataTypeFactory;
import org.apache.calcite.rel.type.RelDataTypeFamily;
import org.apache.calcite.rel.type.RelDataTypeField;
import org.apache.calcite.rex.RexTableInputRef.RelTableRef;
-import org.apache.calcite.runtime.PredicateImpl;
import org.apache.calcite.schema.Schemas;
import org.apache.calcite.sql.SqlAggFunction;
import org.apache.calcite.sql.SqlKind;
@@ -46,15 +45,10 @@ import org.apache.calcite.util.Pair;
import org.apache.calcite.util.Util;
import org.apache.calcite.util.mapping.Mappings;
-import com.google.common.base.Function;
-import com.google.common.base.Preconditions;
-import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
import java.util.ArrayList;
import java.util.Arrays;
@@ -66,6 +60,7 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
+import java.util.function.Predicate;
import javax.annotation.Nonnull;
/**
@@ -73,42 +68,6 @@ import javax.annotation.Nonnull;
*/
public class RexUtil {
- private static final Function<? super RexNode, ? extends RexNode> ADD_NOT =
- new Function<RexNode, RexNode>() {
- public RexNode apply(RexNode input) {
- return new RexCall(input.getType(), SqlStdOperatorTable.NOT,
- ImmutableList.of(input));
- }
- };
-
- private static final Predicate1<RexNode> IS_FLAT_PREDICATE =
- new Predicate1<RexNode>() {
- public boolean apply(RexNode v1) {
- return isFlat(v1);
- }
- };
-
- private static final Function<Object, String> TO_STRING =
- new Function<Object, String>() {
- public String apply(Object input) {
- return input.toString();
- }
- };
-
- private static final Function<RexNode, RelDataType> TYPE_FN =
- new Function<RexNode, RelDataType>() {
- public RelDataType apply(RexNode input) {
- return input.getType();
- }
- };
-
- private static final Function<RelDataType, RelDataTypeFamily> FAMILY_FN =
- new Function<RelDataType, RelDataTypeFamily>() {
- public RelDataTypeFamily apply(RelDataType input) {
- return input.getFamily();
- }
- };
-
/** Executor for a bit of constant reduction. The user can pass in another executor. */
public static final RexExecutor EXECUTOR =
new RexExecutorImpl(Schemas.createDataContext(null, null));
@@ -593,7 +552,7 @@ public class RexUtil {
}
public static List<RexNode> retainDeterministic(List<RexNode> list) {
- List<RexNode> conjuctions = Lists.newArrayList();
+ List<RexNode> conjuctions = new ArrayList<>();
for (RexNode x : list) {
if (isDeterministic(x)) {
conjuctions.add(x);
@@ -1083,7 +1042,7 @@ public class RexUtil {
return ImmutableList.of();
}
final ImmutableList.Builder<RexNode> builder = ImmutableList.builder();
- final Set<String> digests = Sets.newHashSet(); // to eliminate duplicates
+ final Set<String> digests = new HashSet<>(); // to eliminate duplicates
for (RexNode node : nodes) {
if (node != null) {
addAnd(builder, digests, node);
@@ -1117,7 +1076,7 @@ public class RexUtil {
@Nonnull public static RexNode composeDisjunction(RexBuilder rexBuilder,
Iterable<? extends RexNode> nodes) {
final RexNode e = composeDisjunction(rexBuilder, nodes, false);
- return Preconditions.checkNotNull(e);
+ return Objects.requireNonNull(e);
}
/**
@@ -1147,7 +1106,7 @@ public class RexUtil {
return ImmutableList.of();
}
final ImmutableList.Builder<RexNode> builder = ImmutableList.builder();
- final Set<String> digests = Sets.newHashSet(); // to eliminate duplicates
+ final Set<String> digests = new HashSet<>(); // to eliminate duplicates
for (RexNode node : nodes) {
addOr(builder, digests, node);
}
@@ -1279,12 +1238,7 @@ public class RexUtil {
public static Iterable<RexNode> apply(Mappings.TargetMapping mapping,
Iterable<? extends RexNode> nodes) {
final RexPermuteInputsShuttle shuttle = RexPermuteInputsShuttle.of(mapping);
- return Iterables.transform(
- nodes, new Function<RexNode, RexNode>() {
- public RexNode apply(RexNode input) {
- return input.accept(shuttle);
- }
- });
+ return Iterables.transform(nodes, e -> e.accept(shuttle));
}
/**
@@ -1386,12 +1340,7 @@ public class RexUtil {
private static boolean isFlat(
List<? extends RexNode> exprs, final SqlOperator op) {
return !isAssociative(op)
- || !exists(exprs,
- new Predicate1<RexNode>() {
- public boolean apply(RexNode expr) {
- return isCallTo(expr, op);
- }
- });
+ || !exists(exprs, (Predicate1<RexNode>) expr -> isCallTo(expr, op));
}
/**
@@ -1404,7 +1353,7 @@ public class RexUtil {
}
final RexCall call = (RexCall) expr;
return isFlat(call.getOperands(), call.getOperator())
- && all(call.getOperands(), IS_FLAT_PREDICATE);
+ && all(call.getOperands(), RexUtil::isFlat);
}
private static void flattenRecurse(
@@ -1658,11 +1607,11 @@ public class RexUtil {
/** Transforms a list of expressions into a list of their types. */
public static List<RelDataType> types(List<? extends RexNode> nodes) {
- return Lists.transform(nodes, TYPE_FN);
+ return Lists.transform(nodes, RexNode::getType);
}
public static List<RelDataTypeFamily> families(List<RelDataType> types) {
- return Lists.transform(types, FAMILY_FN);
+ return Lists.transform(types, RelDataType::getFamily);
}
/** Removes all expressions from a list that are equivalent to a given
@@ -1774,11 +1723,15 @@ public class RexUtil {
case NOT:
return ((RexCall) e).getOperands().get(0);
default:
- return new RexCall(e.getType(), SqlStdOperatorTable.NOT,
- ImmutableList.of(e));
+ return addNot(e);
}
}
+ private static RexNode addNot(RexNode e) {
+ return new RexCall(e.getType(), SqlStdOperatorTable.NOT,
+ ImmutableList.of(e));
+ }
+
static SqlOperator op(SqlKind kind) {
switch (kind) {
case IS_FALSE:
@@ -1903,25 +1856,23 @@ public class RexUtil {
final RexCall call = (RexCall) e;
if (call.getOperands().get(1) instanceof RexLiteral) {
notTerms = Iterables.filter(notTerms,
- new PredicateImpl<RexNode>() {
- public boolean test(RexNode input) {
- switch (input.getKind()) {
- case EQUALS:
- RexCall call2 = (RexCall) input;
- if (call2.getOperands().get(0)
- .equals(call.getOperands().get(0))
- && call2.getOperands().get(1) instanceof RexLiteral) {
- return false;
- }
+ e2 -> {
+ switch (e2.getKind()) {
+ case EQUALS:
+ RexCall call2 = (RexCall) e2;
+ if (call2.getOperands().get(0)
+ .equals(call.getOperands().get(0))
+ && call2.getOperands().get(1) instanceof RexLiteral) {
+ return false;
}
- return true;
}
+ return true;
});
}
}
return composeConjunction(rexBuilder,
Iterables.concat(ImmutableList.of(e),
- Iterables.transform(notTerms, notFn(rexBuilder))),
+ Iterables.transform(notTerms, e2 -> not(rexBuilder, e2))),
false);
}
@@ -1939,19 +1890,25 @@ public class RexUtil {
&& (call.operands.size() - i) % 2 == 1;
}
- /** Returns a function that applies NOT to its argument. */
- public static Function<RexNode, RexNode> notFn(final RexBuilder rexBuilder) {
- return new Function<RexNode, RexNode>() {
- public RexNode apply(RexNode input) {
- return input.isAlwaysTrue()
- ? rexBuilder.makeLiteral(false)
- : input.isAlwaysFalse()
- ? rexBuilder.makeLiteral(true)
- : input.getKind() == SqlKind.NOT
- ? ((RexCall) input).operands.get(0)
- : rexBuilder.makeCall(SqlStdOperatorTable.NOT, input);
- }
- };
+ /** Returns a function that applies NOT to its argument.
+ *
+ * @deprecated Use {@link #not} */
+ @SuppressWarnings("Guava")
+ @Deprecated // to be removed in 2.0
+ public static com.google.common.base.Function<RexNode, RexNode> notFn(
+ final RexBuilder rexBuilder) {
+ return e -> not(rexBuilder, e);
+ }
+
+ /** Applies NOT to an expression. */
+ static RexNode not(final RexBuilder rexBuilder, RexNode input) {
+ return input.isAlwaysTrue()
+ ? rexBuilder.makeLiteral(false)
+ : input.isAlwaysFalse()
+ ? rexBuilder.makeLiteral(true)
+ : input.getKind() == SqlKind.NOT
+ ? ((RexCall) input).operands.get(0)
+ : rexBuilder.makeCall(SqlStdOperatorTable.NOT, input);
}
/** Returns whether an expression contains a {@link RexCorrelVariable}. */
@@ -2250,7 +2207,7 @@ public class RexUtil {
case AND:
incrementAndCheck();
operands = flattenAnd(((RexCall) rex).getOperands());
- final List<RexNode> cnfOperands = Lists.newArrayList();
+ final List<RexNode> cnfOperands = new ArrayList<>();
for (RexNode node : operands) {
RexNode cnf = toCnf2(node);
switch (cnf.getKind()) {
@@ -2273,7 +2230,7 @@ public class RexUtil {
final RexNode tail = or(Util.skip(operands));
final RexNode tailCnf = toCnf2(tail);
final List<RexNode> tailCnfs = RelOptUtil.conjunctions(tailCnf);
- final List<RexNode> list = Lists.newArrayList();
+ final List<RexNode> list = new ArrayList<>();
for (RexNode h : headCnfs) {
for (RexNode t : tailCnfs) {
list.add(or(ImmutableList.of(h, t)));
@@ -2287,10 +2244,12 @@ public class RexUtil {
return toCnf2(((RexCall) arg).getOperands().get(0));
case OR:
operands = ((RexCall) arg).getOperands();
- return toCnf2(and(Lists.transform(flattenOr(operands), ADD_NOT)));
+ return toCnf2(
+ and(Lists.transform(flattenOr(operands), RexUtil::addNot)));
case AND:
operands = ((RexCall) arg).getOperands();
- return toCnf2(or(Lists.transform(flattenAnd(operands), ADD_NOT)));
+ return toCnf2(
+ or(Lists.transform(flattenAnd(operands), RexUtil::addNot)));
default:
incrementAndCheck();
return rex;
@@ -2328,7 +2287,7 @@ public class RexUtil {
if (factors.isEmpty()) {
return or(operands);
}
- final List<RexNode> list = Lists.newArrayList();
+ final List<RexNode> list = new ArrayList<>();
for (RexNode operand : operands) {
list.add(removeFactor(factors, operand));
}
@@ -2339,7 +2298,7 @@ public class RexUtil {
}
private List<RexNode> pullList(List<RexNode> nodes) {
- final List<RexNode> list = Lists.newArrayList();
+ final List<RexNode> list = new ArrayList<>();
for (RexNode node : nodes) {
RexNode pulled = pull(node);
switch (pulled.getKind()) {
@@ -2354,7 +2313,7 @@ public class RexUtil {
}
private Map<String, RexNode> commonFactors(List<RexNode> nodes) {
- final Map<String, RexNode> map = Maps.newHashMap();
+ final Map<String, RexNode> map = new HashMap<>();
int i = 0;
for (RexNode node : nodes) {
if (i++ == 0) {
@@ -2369,7 +2328,7 @@ public class RexUtil {
}
private RexNode removeFactor(Map<String, RexNode> factors, RexNode node) {
- List<RexNode> list = Lists.newArrayList();
+ List<RexNode> list = new ArrayList<>();
for (RexNode operand : RelOptUtil.conjunctions(node)) {
if (!factors.containsKey(operand.toString())) {
list.add(operand);
@@ -2389,7 +2348,7 @@ public class RexUtil {
/** Transforms a list of expressions to the list of digests. */
public static List<String> strings(List<RexNode> list) {
- return Lists.transform(list, TO_STRING);
+ return Lists.transform(list, Object::toString);
}
/** Helps {@link org.apache.calcite.rex.RexUtil#toDnf}. */
@@ -2411,7 +2370,7 @@ public class RexUtil {
final RexNode tail = and(Util.skip(operands));
final RexNode tailDnf = toDnf(tail);
final List<RexNode> tailDnfs = RelOptUtil.disjunctions(tailDnf);
- final List<RexNode> list = Lists.newArrayList();
+ final List<RexNode> list = new ArrayList<>();
for (RexNode h : headDnfs) {
for (RexNode t : tailDnfs) {
list.add(and(ImmutableList.of(h, t)));
@@ -2428,10 +2387,12 @@ public class RexUtil {
return toDnf(((RexCall) arg).getOperands().get(0));
case OR:
operands = ((RexCall) arg).getOperands();
- return toDnf(and(Lists.transform(flattenOr(operands), ADD_NOT)));
+ return toDnf(
+ and(Lists.transform(flattenOr(operands), RexUtil::addNot)));
case AND:
operands = ((RexCall) arg).getOperands();
- return toDnf(or(Lists.transform(flattenAnd(operands), ADD_NOT)));
+ return toDnf(
+ or(Lists.transform(flattenAnd(operands), RexUtil::addNot)));
default:
return rex;
}
@@ -2441,7 +2402,7 @@ public class RexUtil {
}
private List<RexNode> toDnfs(List<RexNode> nodes) {
- final List<RexNode> list = Lists.newArrayList();
+ final List<RexNode> list = new ArrayList<>();
for (RexNode node : nodes) {
RexNode dnf = toDnf(node);
switch (dnf.getKind()) {
@@ -2526,51 +2487,57 @@ public class RexUtil {
public static class SubQueryFinder extends RexVisitorImpl<Void> {
public static final SubQueryFinder INSTANCE = new SubQueryFinder();
- /** Returns whether a {@link Project} contains a sub-query. */
- public static final Predicate<Project> PROJECT_PREDICATE =
- new PredicateImpl<Project>() {
- public boolean test(Project project) {
- for (RexNode node : project.getProjects()) {
- try {
- node.accept(INSTANCE);
- } catch (Util.FoundOne e) {
- return true;
- }
- }
- return false;
- }
- };
+ @SuppressWarnings("Guava")
+ @Deprecated // to be removed before 2.0
+ public static final com.google.common.base.Predicate<Project> PROJECT_PREDICATE =
+ SubQueryFinder::containsSubQuery;
- /** Returns whether a {@link Filter} contains a sub-query. */
+ @SuppressWarnings("Guava")
+ @Deprecated // to be removed before 2.0
public static final Predicate<Filter> FILTER_PREDICATE =
- new PredicateImpl<Filter>() {
- public boolean test(Filter filter) {
- try {
- filter.getCondition().accept(INSTANCE);
- return false;
- } catch (Util.FoundOne e) {
- return true;
- }
- }
- };
+ SubQueryFinder::containsSubQuery;
- /** Returns whether a {@link Join} contains a sub-query. */
- public static final Predicate<Join> JOIN_PREDICATE =
- new PredicateImpl<Join>() {
- public boolean test(Join join) {
- try {
- join.getCondition().accept(INSTANCE);
- return false;
- } catch (Util.FoundOne e) {
- return true;
- }
- }
- };
+ @SuppressWarnings("Guava")
+ @Deprecated // to be removed before 2.0
+ public static final com.google.common.base.Predicate<Join> JOIN_PREDICATE =
+ SubQueryFinder::containsSubQuery;
private SubQueryFinder() {
super(true);
}
+ /** Returns whether a {@link Project} contains a sub-query. */
+ public static boolean containsSubQuery(Project project) {
+ for (RexNode node : project.getProjects()) {
+ try {
+ node.accept(INSTANCE);
+ } catch (Util.FoundOne e) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /** Returns whether a {@link Filter} contains a sub-query. */
+ public static boolean containsSubQuery(Filter filter) {
+ try {
+ filter.getCondition().accept(INSTANCE);
+ return false;
+ } catch (Util.FoundOne e) {
+ return true;
+ }
+ }
+
+ /** Returns whether a {@link Join} contains a sub-query. */
+ public static boolean containsSubQuery(Join join) {
+ try {
+ join.getCondition().accept(INSTANCE);
+ return false;
+ } catch (Util.FoundOne e) {
+ return true;
+ }
+ }
+
@Override public Void visitSubQuery(RexSubQuery subQuery) {
throw new Util.FoundOne(subQuery);
}
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/runtime/BinarySearch.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/runtime/BinarySearch.java b/core/src/main/java/org/apache/calcite/runtime/BinarySearch.java
index 5311434..f78ffa0 100644
--- a/core/src/main/java/org/apache/calcite/runtime/BinarySearch.java
+++ b/core/src/main/java/org/apache/calcite/runtime/BinarySearch.java
@@ -49,7 +49,7 @@ public class BinarySearch {
*/
public static <T> int lowerBound(T[] a, T key, Comparator<T> comparator) {
return lowerBound(a, key, 0, a.length - 1,
- Functions.<T>identitySelector(), comparator);
+ Functions.identitySelector(), comparator);
}
/**
@@ -68,7 +68,7 @@ public class BinarySearch {
*/
public static <T> int upperBound(T[] a, T key, Comparator<T> comparator) {
return upperBound(a, key, 0, a.length - 1,
- Functions.<T>identitySelector(), comparator);
+ Functions.identitySelector(), comparator);
}
/**
@@ -136,7 +136,7 @@ public class BinarySearch {
public static <T> int lowerBound(T[] a, T key, int imin, int imax,
Comparator<T> comparator) {
return lowerBound(a, key, imin, imax,
- Functions.<T>identitySelector(), comparator);
+ Functions.identitySelector(), comparator);
}
/**
@@ -158,7 +158,7 @@ public class BinarySearch {
public static <T> int upperBound(T[] a, T key, int imin, int imax,
Comparator<T> comparator) {
return upperBound(a, key, imin, imax,
- Functions.<T>identitySelector(), comparator);
+ Functions.identitySelector(), comparator);
}
/**
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/runtime/Enumerables.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/runtime/Enumerables.java b/core/src/main/java/org/apache/calcite/runtime/Enumerables.java
index 5fbb268..62b7992 100644
--- a/core/src/main/java/org/apache/calcite/runtime/Enumerables.java
+++ b/core/src/main/java/org/apache/calcite/runtime/Enumerables.java
@@ -20,7 +20,7 @@ import org.apache.calcite.interpreter.Row;
import org.apache.calcite.linq4j.Enumerable;
import org.apache.calcite.linq4j.function.Function1;
-import com.google.common.base.Supplier;
+import java.util.function.Supplier;
/**
* Utilities for processing {@link org.apache.calcite.linq4j.Enumerable}
@@ -30,19 +30,6 @@ import com.google.common.base.Supplier;
* Methods are subject to removal without notice.
*/
public class Enumerables {
- private static final Function1<?, ?> SLICE =
- new Function1<Object[], Object>() {
- public Object apply(Object[] a0) {
- return a0[0];
- }
- };
-
- private static final Function1<Object[], Row> ARRAY_TO_ROW =
- new Function1<Object[], Row>() {
- public Row apply(Object[] a0) {
- return Row.asCopy(a0);
- }
- };
private Enumerables() {}
@@ -50,24 +37,27 @@ public class Enumerables {
* first elements. */
public static <E> Enumerable<E> slice0(Enumerable<E[]> enumerable) {
//noinspection unchecked
- return enumerable.select((Function1<E[], E>) SLICE);
+ return enumerable.select(elements -> elements[0]);
}
/** Converts an {@link Enumerable} over object arrays into an
* {@link Enumerable} over {@link Row} objects. */
public static Enumerable<Row> toRow(final Enumerable<Object[]> enumerable) {
- return enumerable.select(ARRAY_TO_ROW);
+ return enumerable.select((Function1<Object[], Row>) Row::asCopy);
}
/** Converts a supplier of an {@link Enumerable} over object arrays into a
* supplier of an {@link Enumerable} over {@link Row} objects. */
public static Supplier<Enumerable<Row>> toRow(
final Supplier<Enumerable<Object[]>> supplier) {
- return new Supplier<Enumerable<Row>>() {
- public Enumerable<Row> get() {
- return toRow(supplier.get());
- }
- };
+ return () -> toRow(supplier.get());
+ }
+
+ @SuppressWarnings("Guava")
+ @Deprecated // to be removed before 2.0
+ public static com.google.common.base.Supplier<Enumerable<Row>> toRow(
+ final com.google.common.base.Supplier<Enumerable<Object[]>> supplier) {
+ return () -> toRow(supplier.get());
}
}
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/runtime/FlatLists.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/runtime/FlatLists.java b/core/src/main/java/org/apache/calcite/runtime/FlatLists.java
index 94cfce1..d07014a 100644
--- a/core/src/main/java/org/apache/calcite/runtime/FlatLists.java
+++ b/core/src/main/java/org/apache/calcite/runtime/FlatLists.java
@@ -372,6 +372,10 @@ public class FlatLists {
@SuppressWarnings({"unchecked" })
public <T2> T2[] toArray(T2[] a) {
+ if (a.length < 1) {
+ // Make a new array of a's runtime type, but my contents:
+ return (T2[]) Arrays.copyOf(toArray(), 1, a.getClass());
+ }
a[0] = (T2) t0;
return a;
}
@@ -500,6 +504,10 @@ public class FlatLists {
@SuppressWarnings({"unchecked" })
public <T2> T2[] toArray(T2[] a) {
+ if (a.length < 2) {
+ // Make a new array of a's runtime type, but my contents:
+ return (T2[]) Arrays.copyOf(toArray(), 2, a.getClass());
+ }
a[0] = (T2) t0;
a[1] = (T2) t1;
return a;
@@ -645,6 +653,10 @@ public class FlatLists {
@SuppressWarnings({"unchecked" })
public <T2> T2[] toArray(T2[] a) {
+ if (a.length < 3) {
+ // Make a new array of a's runtime type, but my contents:
+ return (T2[]) Arrays.copyOf(toArray(), 3, a.getClass());
+ }
a[0] = (T2) t0;
a[1] = (T2) t1;
a[2] = (T2) t2;
@@ -809,6 +821,10 @@ public class FlatLists {
@SuppressWarnings({"unchecked" })
public <T2> T2[] toArray(T2[] a) {
+ if (a.length < 4) {
+ // Make a new array of a's runtime type, but my contents:
+ return (T2[]) Arrays.copyOf(toArray(), 4, a.getClass());
+ }
a[0] = (T2) t0;
a[1] = (T2) t1;
a[2] = (T2) t2;
@@ -992,6 +1008,10 @@ public class FlatLists {
@SuppressWarnings({"unchecked" })
public <T2> T2[] toArray(T2[] a) {
+ if (a.length < 5) {
+ // Make a new array of a's runtime type, but my contents:
+ return (T2[]) Arrays.copyOf(toArray(), 5, a.getClass());
+ }
a[0] = (T2) t0;
a[1] = (T2) t1;
a[2] = (T2) t2;
@@ -1195,6 +1215,10 @@ public class FlatLists {
@SuppressWarnings({"unchecked" })
public <T2> T2[] toArray(T2[] a) {
+ if (a.length < 6) {
+ // Make a new array of a's runtime type, but my contents:
+ return (T2[]) Arrays.copyOf(toArray(), 6, a.getClass());
+ }
a[0] = (T2) t0;
a[1] = (T2) t1;
a[2] = (T2) t2;
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/runtime/GeoFunctions.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/runtime/GeoFunctions.java b/core/src/main/java/org/apache/calcite/runtime/GeoFunctions.java
index 73884c0..3e258c9 100644
--- a/core/src/main/java/org/apache/calcite/runtime/GeoFunctions.java
+++ b/core/src/main/java/org/apache/calcite/runtime/GeoFunctions.java
@@ -38,9 +38,8 @@ import com.esri.core.geometry.SpatialReference;
import com.esri.core.geometry.WktExportFlags;
import com.esri.core.geometry.WktImportFlags;
-import com.google.common.base.Preconditions;
-
import java.math.BigDecimal;
+import java.util.Objects;
/**
* Helper methods to implement Geo-spatial functions in generated code.
@@ -574,7 +573,7 @@ public class GeoFunctions {
final Geometry g;
SimpleGeom(Geometry g) {
- this.g = Preconditions.checkNotNull(g);
+ this.g = Objects.requireNonNull(g);
}
@Override public String toString() {
@@ -606,7 +605,7 @@ public class GeoFunctions {
final MapGeometry mg;
MapGeom(MapGeometry mg) {
- this.mg = Preconditions.checkNotNull(mg);
+ this.mg = Objects.requireNonNull(mg);
}
@Override public String toString() {
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/runtime/Hook.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/runtime/Hook.java b/core/src/main/java/org/apache/calcite/runtime/Hook.java
index 0cfbc01..10d4586 100644
--- a/core/src/main/java/org/apache/calcite/runtime/Hook.java
+++ b/core/src/main/java/org/apache/calcite/runtime/Hook.java
@@ -18,11 +18,11 @@ package org.apache.calcite.runtime;
import org.apache.calcite.util.Holder;
-import com.google.common.base.Function;
-
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.function.Consumer;
+import java.util.function.Function;
/**
* Collection of hooks that can be set by observers and are executed at various
@@ -88,15 +88,11 @@ public enum Hook {
* pipeline expressions (for the MongoDB adapter), et cetera. */
QUERY_PLAN;
- private final List<Function<Object, Object>> handlers =
+ private final List<Consumer<Object>> handlers =
new CopyOnWriteArrayList<>();
- private final ThreadLocal<List<Function<Object, Object>>> threadHandlers =
- new ThreadLocal<List<Function<Object, Object>>>() {
- protected List<Function<Object, Object>> initialValue() {
- return new ArrayList<>();
- }
- };
+ private final ThreadLocal<List<Consumer<Object>>> threadHandlers =
+ ThreadLocal.withInitial(ArrayList::new);
/** Adds a handler for this Hook.
*
@@ -112,56 +108,70 @@ public enum Hook {
* }</pre>
* </blockquote>
*/
- public <T, R> Closeable add(final Function<T, R> handler) {
+ public <T, R> Closeable add(final Consumer<T> handler) {
//noinspection unchecked
- handlers.add((Function<Object, Object>) handler);
- return new Closeable() {
- public void close() {
- remove(handler);
- }
- };
+ handlers.add((Consumer<Object>) handler);
+ return () -> remove(handler);
+ }
+
+ /** @deprecated Use {@link #addThread(Consumer)}. */
+ @SuppressWarnings("Guava")
+ @Deprecated // to be removed in 2.0
+ public <T, R> Closeable add(final Function<T, R> handler) {
+ return add((Consumer<T>) handler::apply);
}
/** Removes a handler from this Hook. */
- private boolean remove(Function handler) {
+ private boolean remove(Consumer handler) {
return handlers.remove(handler);
}
/** Adds a handler for this thread. */
- public <T, R> Closeable addThread(final Function<T, R> handler) {
+ public <T> Closeable addThread(final Consumer<T> handler) {
//noinspection unchecked
- threadHandlers.get().add((Function<Object, Object>) handler);
- return new Closeable() {
- public void close() {
- removeThread(handler);
- }
- };
+ threadHandlers.get().add((Consumer<Object>) handler);
+ return () -> removeThread(handler);
+ }
+
+ /** @deprecated Use {@link #addThread(Consumer)}. */
+ @SuppressWarnings("Guava")
+ @Deprecated // to be removed in 2.0
+ public <T, R> Closeable addThread(
+ final com.google.common.base.Function<T, R> handler) {
+ return addThread((Consumer<T>) handler::apply);
}
/** Removes a thread handler from this Hook. */
- private boolean removeThread(Function handler) {
+ private boolean removeThread(Consumer handler) {
return threadHandlers.get().remove(handler);
}
+ /** @deprecated Use {@link #propertyJ}. */
+ @SuppressWarnings("Guava")
+ @Deprecated // return type will change in 2.0
+ public static <V> com.google.common.base.Function<Holder<V>, Void> property(final V v) {
+ return holder -> {
+ holder.set(v);
+ return null;
+ };
+ }
+
/** Returns a function that, when a hook is called, will "return" a given
* value. (Because of the way hooks work, it "returns" the value by writing
* into a {@link Holder}. */
- public static <V> Function<Holder<V>, Void> property(final V v) {
- return new Function<Holder<V>, Void>() {
- public Void apply(Holder<V> holder) {
- holder.set(v);
- return null;
- }
+ public static <V> Consumer<Holder<V>> propertyJ(final V v) {
+ return holder -> {
+ holder.set(v);
};
}
/** Runs all handlers registered for this Hook, with the given argument. */
public void run(Object arg) {
- for (Function<Object, Object> handler : handlers) {
- handler.apply(arg);
+ for (Consumer<Object> handler : handlers) {
+ handler.accept(arg);
}
- for (Function<Object, Object> handler : threadHandlers.get()) {
- handler.apply(arg);
+ for (Consumer<Object> handler : threadHandlers.get()) {
+ handler.accept(arg);
}
}
@@ -176,10 +186,7 @@ public enum Hook {
/** Removes a Hook after use. */
public interface Closeable extends AutoCloseable {
/** Closeable that does nothing. */
- Closeable EMPTY =
- new Closeable() {
- public void close() {}
- };
+ Closeable EMPTY = () -> { };
// override, removing "throws"
@Override void close();
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/runtime/HttpUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/runtime/HttpUtils.java b/core/src/main/java/org/apache/calcite/runtime/HttpUtils.java
index bc790d6..783d3bc 100644
--- a/core/src/main/java/org/apache/calcite/runtime/HttpUtils.java
+++ b/core/src/main/java/org/apache/calcite/runtime/HttpUtils.java
@@ -27,9 +27,7 @@ import java.net.URLConnection;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Map;
-import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLSession;
/**
* Utilities for connecting to REST services such as Splunk via HTTP.
@@ -49,12 +47,7 @@ public class HttpUtils {
HttpsURLConnection httpsConn = (HttpsURLConnection) httpConn;
httpsConn.setSSLSocketFactory(
TrustAllSslSocketFactory.createSSLSocketFactory());
- httpsConn.setHostnameVerifier(
- new HostnameVerifier() {
- public boolean verify(String arg0, SSLSession arg1) {
- return true;
- }
- });
+ httpsConn.setHostnameVerifier((arg0, arg1) -> true);
}
return httpConn;
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/runtime/PredicateImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/runtime/PredicateImpl.java b/core/src/main/java/org/apache/calcite/runtime/PredicateImpl.java
index f04737b..33adb54 100644
--- a/core/src/main/java/org/apache/calcite/runtime/PredicateImpl.java
+++ b/core/src/main/java/org/apache/calcite/runtime/PredicateImpl.java
@@ -30,6 +30,9 @@ import javax.annotation.Nullable;
* but still works on JDK 1.7.
*
* @param <T> the type of the input to the predicate
+ *
+ * @deprecated Now Calcite is Java 8 and higher, we recommend that you
+ * implement {@link java.util.function.Predicate} directly.
*/
public abstract class PredicateImpl<T> implements Predicate<T> {
public final boolean apply(@Nullable T input) {
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/runtime/ResultSetEnumerable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/runtime/ResultSetEnumerable.java b/core/src/main/java/org/apache/calcite/runtime/ResultSetEnumerable.java
index 724bcf1..4724d8c 100644
--- a/core/src/main/java/org/apache/calcite/runtime/ResultSetEnumerable.java
+++ b/core/src/main/java/org/apache/calcite/runtime/ResultSetEnumerable.java
@@ -51,51 +51,45 @@ public class ResultSetEnumerable<T> extends AbstractEnumerable<T> {
ResultSetEnumerable.class);
private static final Function1<ResultSet, Function0<Object>> AUTO_ROW_BUILDER_FACTORY =
- new Function1<ResultSet, Function0<Object>>() {
- public Function0<Object> apply(final ResultSet resultSet) {
- final ResultSetMetaData metaData;
- final int columnCount;
- try {
- metaData = resultSet.getMetaData();
- columnCount = metaData.getColumnCount();
- } catch (SQLException e) {
- throw new RuntimeException(e);
- }
- if (columnCount == 1) {
- return new Function0<Object>() {
- public Object apply() {
- try {
- return resultSet.getObject(1);
- } catch (SQLException e) {
- throw new RuntimeException(e);
- }
- }
- };
- } else {
- //noinspection unchecked
- return (Function0) new Function0<Object[]>() {
- public Object[] apply() {
- try {
- final List<Object> list = new ArrayList<Object>();
- for (int i = 0; i < columnCount; i++) {
- if (metaData.getColumnType(i + 1) == Types.TIMESTAMP) {
- long v = resultSet.getLong(i + 1);
- if (v == 0 && resultSet.wasNull()) {
- list.add(null);
- } else {
- list.add(v);
- }
- } else {
- list.add(resultSet.getObject(i + 1));
- }
+ resultSet -> {
+ final ResultSetMetaData metaData;
+ final int columnCount;
+ try {
+ metaData = resultSet.getMetaData();
+ columnCount = metaData.getColumnCount();
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ if (columnCount == 1) {
+ return () -> {
+ try {
+ return resultSet.getObject(1);
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ };
+ } else {
+ //noinspection unchecked
+ return (Function0) () -> {
+ try {
+ final List<Object> list = new ArrayList<Object>();
+ for (int i = 0; i < columnCount; i++) {
+ if (metaData.getColumnType(i + 1) == Types.TIMESTAMP) {
+ long v = resultSet.getLong(i + 1);
+ if (v == 0 && resultSet.wasNull()) {
+ list.add(null);
+ } else {
+ list.add(v);
}
- return list.toArray();
- } catch (SQLException e) {
- throw new RuntimeException(e);
+ } else {
+ list.add(resultSet.getObject(i + 1));
}
}
- };
- }
+ return list.toArray();
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ };
}
};
@@ -227,43 +221,37 @@ public class ResultSetEnumerable<T> extends AbstractEnumerable<T> {
private static Function1<ResultSet, Function0<Object>>
primitiveRowBuilderFactory(final Primitive[] primitives) {
- return new Function1<ResultSet, Function0<Object>>() {
- public Function0<Object> apply(final ResultSet resultSet) {
- final ResultSetMetaData metaData;
- final int columnCount;
+ return resultSet -> {
+ final ResultSetMetaData metaData;
+ final int columnCount;
+ try {
+ metaData = resultSet.getMetaData();
+ columnCount = metaData.getColumnCount();
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ assert columnCount == primitives.length;
+ if (columnCount == 1) {
+ return () -> {
+ try {
+ return resultSet.getObject(1);
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ };
+ }
+ //noinspection unchecked
+ return (Function0) () -> {
try {
- metaData = resultSet.getMetaData();
- columnCount = metaData.getColumnCount();
+ final List<Object> list = new ArrayList<Object>();
+ for (int i = 0; i < columnCount; i++) {
+ list.add(primitives[i].jdbcGet(resultSet, i + 1));
+ }
+ return list.toArray();
} catch (SQLException e) {
throw new RuntimeException(e);
}
- assert columnCount == primitives.length;
- if (columnCount == 1) {
- return new Function0<Object>() {
- public Object apply() {
- try {
- return resultSet.getObject(1);
- } catch (SQLException e) {
- throw new RuntimeException(e);
- }
- }
- };
- }
- //noinspection unchecked
- return (Function0) new Function0<Object[]>() {
- public Object[] apply() {
- try {
- final List<Object> list = new ArrayList<Object>();
- for (int i = 0; i < columnCount; i++) {
- list.add(primitives[i].jdbcGet(resultSet, i + 1));
- }
- return list.toArray();
- } catch (SQLException e) {
- throw new RuntimeException(e);
- }
- }
- };
- }
+ };
};
}
}
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java b/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
index 3a95f25..83cc24e 100644
--- a/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
+++ b/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java
@@ -79,31 +79,20 @@ public class SqlFunctions {
private static final TimeZone LOCAL_TZ = TimeZone.getDefault();
private static final Function1<List<Object>, Enumerable<Object>> LIST_AS_ENUMERABLE =
- new Function1<List<Object>, Enumerable<Object>>() {
- public Enumerable<Object> apply(List<Object> list) {
- return Linq4j.asEnumerable(list);
- }
- };
+ Linq4j::asEnumerable;
private static final Function1<Object[], Enumerable<Object[]>> ARRAY_CARTESIAN_PRODUCT =
- new Function1<Object[], Enumerable<Object[]>>() {
- public Enumerable<Object[]> apply(Object[] lists) {
- final List<Enumerator<Object>> enumerators = new ArrayList<>();
- for (Object list : lists) {
- enumerators.add(Linq4j.enumerator((List) list));
- }
- final Enumerator<List<Object>> product = Linq4j.product(enumerators);
- return new AbstractEnumerable<Object[]>() {
- public Enumerator<Object[]> enumerator() {
- return Linq4j.transform(product,
- new Function1<List<Object>, Object[]>() {
- public Object[] apply(List<Object> list) {
- return list.toArray();
- }
- });
- }
- };
+ lists -> {
+ final List<Enumerator<Object>> enumerators = new ArrayList<>();
+ for (Object list : lists) {
+ enumerators.add(Linq4j.enumerator((List) list));
}
+ final Enumerator<List<Object>> product = Linq4j.product(enumerators);
+ return new AbstractEnumerable<Object[]>() {
+ public Enumerator<Object[]> enumerator() {
+ return Linq4j.transform(product, List::toArray);
+ }
+ };
};
/** Holds, for each thread, a map from sequence name to sequence current
@@ -113,11 +102,7 @@ public class SqlFunctions {
* that sequences can be parsed, validated and planned. A real application
* will want persistent values for sequences, shared among threads. */
private static final ThreadLocal<Map<String, AtomicLong>> THREAD_SEQUENCES =
- new ThreadLocal<Map<String, AtomicLong>>() {
- @Override protected Map<String, AtomicLong> initialValue() {
- return new HashMap<String, AtomicLong>();
- }
- };
+ ThreadLocal.withInitial(HashMap::new);
private SqlFunctions() {
}
@@ -2212,20 +2197,12 @@ public class SqlFunctions {
//noinspection unchecked
return (Function1) LIST_AS_ENUMERABLE;
} else {
- return new Function1<Object, Enumerable<ComparableList<Comparable>>>() {
- public Enumerable<ComparableList<Comparable>> apply(Object row) {
- return p2(new Object[] { row }, fieldCounts, withOrdinality,
- inputTypes);
- }
- };
+ return row -> p2(new Object[] { row }, fieldCounts, withOrdinality,
+ inputTypes);
}
}
- return new Function1<Object, Enumerable<FlatLists.ComparableList<Comparable>>>() {
- public Enumerable<FlatLists.ComparableList<Comparable>> apply(Object lists) {
- return p2((Object[]) lists, fieldCounts, withOrdinality,
- inputTypes);
- }
- };
+ return lists -> p2((Object[]) lists, fieldCounts, withOrdinality,
+ inputTypes);
}
private static Enumerable<FlatLists.ComparableList<Comparable>> p2(
@@ -2243,12 +2220,7 @@ public class SqlFunctions {
(List<Comparable>) inputObject;
enumerators.add(
Linq4j.transform(
- Linq4j.enumerator(list),
- new Function1<Comparable, List<Comparable>>() {
- public List<Comparable> apply(Comparable a0) {
- return FlatLists.of(a0);
- }
- }));
+ Linq4j.enumerator(list), FlatLists::of));
break;
case LIST:
@SuppressWarnings("unchecked") List<List<Comparable>> listList =
@@ -2262,11 +2234,7 @@ public class SqlFunctions {
Linq4j.enumerator(map.entrySet());
Enumerator<List<Comparable>> transformed = Linq4j.transform(enumerator,
- new Function1<Entry<Comparable, Comparable>, List<Comparable>>() {
- public List<Comparable> apply(Entry<Comparable, Comparable> e) {
- return FlatLists.of(e.getKey(), e.getValue());
- }
- });
+ e -> FlatLists.of(e.getKey(), e.getValue()));
enumerators.add(transformed);
break;
default:
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/schema/FunctionParameter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/schema/FunctionParameter.java b/core/src/main/java/org/apache/calcite/schema/FunctionParameter.java
index 3e95628..37af4bd 100644
--- a/core/src/main/java/org/apache/calcite/schema/FunctionParameter.java
+++ b/core/src/main/java/org/apache/calcite/schema/FunctionParameter.java
@@ -26,14 +26,6 @@ import org.apache.calcite.rel.type.RelDataTypeFactory;
* {@link java.lang.reflect.Parameter} was too confusing.</p>
*/
public interface FunctionParameter {
- /** Function to get the name of a parameter. */
- com.google.common.base.Function<FunctionParameter, String> NAME_FN =
- new com.google.common.base.Function<FunctionParameter, String>() {
- public String apply(FunctionParameter p) {
- return p.getName();
- }
- };
-
/**
* Zero-based ordinal of this parameter within the member's parameter
* list.
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/schema/Schemas.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/schema/Schemas.java b/core/src/main/java/org/apache/calcite/schema/Schemas.java
index b238b3b..b303358 100644
--- a/core/src/main/java/org/apache/calcite/schema/Schemas.java
+++ b/core/src/main/java/org/apache/calcite/schema/Schemas.java
@@ -35,7 +35,6 @@ import org.apache.calcite.materialize.Lattice;
import org.apache.calcite.rel.type.RelDataType;
import org.apache.calcite.rel.type.RelDataTypeFactory;
import org.apache.calcite.rel.type.RelProtoDataType;
-import org.apache.calcite.rex.RexNode;
import org.apache.calcite.sql.type.SqlTypeUtil;
import org.apache.calcite.tools.RelRunner;
import org.apache.calcite.util.BuiltInMethod;
@@ -55,34 +54,14 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
+
+import static org.apache.calcite.jdbc.CalciteSchema.LatticeEntry;
/**
* Utility functions for schemas.
*/
public final class Schemas {
- private static final com.google.common.base.Function<
- CalciteSchema.LatticeEntry,
- CalciteSchema.TableEntry> TO_TABLE_ENTRY =
- new com.google.common.base.Function<CalciteSchema.LatticeEntry,
- CalciteSchema.TableEntry>() {
- public CalciteSchema.TableEntry apply(
- CalciteSchema.LatticeEntry entry) {
- final CalciteSchema.TableEntry starTable = entry.getStarTable();
- assert starTable.getTable().getJdbcTableType()
- == Schema.TableType.STAR;
- return entry.getStarTable();
- }
- };
-
- private static final com.google.common.base.Function<
- CalciteSchema.LatticeEntry,
- Lattice> TO_LATTICE =
- new com.google.common.base.Function<CalciteSchema.LatticeEntry,
- Lattice>() {
- public Lattice apply(CalciteSchema.LatticeEntry entry) {
- return entry.getLattice();
- }
- };
private Schemas() {
throw new AssertionError("no instances!");
@@ -245,7 +224,7 @@ public final class Schemas {
* array. */
public static Enumerable<Object[]> enumerable(final FilterableTable table,
final DataContext root) {
- return table.scan(root, ImmutableList.<RexNode>of());
+ return table.scan(root, ImmutableList.of());
}
/** Returns an {@link org.apache.calcite.linq4j.Enumerable} over the rows of
@@ -253,7 +232,7 @@ public final class Schemas {
* representing each row as an object array. */
public static Enumerable<Object[]> enumerable(
final ProjectableFilterableTable table, final DataContext root) {
- return table.scan(root, ImmutableList.<RexNode>of(),
+ return table.scan(root, ImmutableList.of(),
identity(table.getRowType(root.getTypeFactory()).getFieldCount()));
}
@@ -448,22 +427,14 @@ public final class Schemas {
* {@link RelProtoDataType}
* that asks a given table for its row type with a given type factory. */
public static RelProtoDataType proto(final Table table) {
- return new RelProtoDataType() {
- public RelDataType apply(RelDataTypeFactory typeFactory) {
- return table.getRowType(typeFactory);
- }
- };
+ return table::getRowType;
}
/** Returns an implementation of {@link RelProtoDataType}
* that asks a given scalar function for its return type with a given type
* factory. */
public static RelProtoDataType proto(final ScalarFunction function) {
- return new RelProtoDataType() {
- public RelDataType apply(RelDataTypeFactory typeFactory) {
- return function.getReturnType(typeFactory);
- }
- };
+ return function::getReturnType;
}
/** Returns the star tables defined in a schema.
@@ -472,7 +443,13 @@ public final class Schemas {
public static List<CalciteSchema.TableEntry> getStarTables(
CalciteSchema schema) {
final List<CalciteSchema.LatticeEntry> list = getLatticeEntries(schema);
- return Lists.transform(list, TO_TABLE_ENTRY);
+ return Lists.transform(list, entry -> {
+ final CalciteSchema.TableEntry starTable =
+ Objects.requireNonNull(entry).getStarTable();
+ assert starTable.getTable().getJdbcTableType()
+ == Schema.TableType.STAR;
+ return entry.getStarTable();
+ });
}
/** Returns the lattices defined in a schema.
@@ -480,7 +457,7 @@ public final class Schemas {
* @param schema Schema */
public static List<Lattice> getLattices(CalciteSchema schema) {
final List<CalciteSchema.LatticeEntry> list = getLatticeEntries(schema);
- return Lists.transform(list, TO_LATTICE);
+ return Lists.transform(list, CalciteSchema.LatticeEntry::getLattice);
}
/** Returns the lattices defined in a schema.
@@ -488,7 +465,7 @@ public final class Schemas {
* @param schema Schema */
public static List<CalciteSchema.LatticeEntry> getLatticeEntries(
CalciteSchema schema) {
- final List<CalciteSchema.LatticeEntry> list = Lists.newArrayList();
+ final List<LatticeEntry> list = new ArrayList<>();
gatherLattices(schema, list);
return list;
}
@@ -520,7 +497,7 @@ public final class Schemas {
/** Generates a table name that is unique within the given schema. */
public static String uniqueTableName(CalciteSchema schema, String base) {
- String t = Preconditions.checkNotNull(base);
+ String t = Objects.requireNonNull(base);
for (int x = 0; schema.getTable(t, true) != null; x++) {
t = base + x;
}
@@ -558,7 +535,7 @@ public final class Schemas {
public static Path path(SchemaPlus schema) {
List<Pair<String, Schema>> list = new ArrayList<>();
for (SchemaPlus s = schema; s != null; s = s.getParentSchema()) {
- list.add(Pair.<String, Schema>of(s.getName(), s));
+ list.add(Pair.of(s.getName(), s));
}
return new PathImpl(ImmutableList.copyOf(Lists.reverse(list)));
}
@@ -572,7 +549,7 @@ public final class Schemas {
DummyDataContext(CalciteConnection connection, SchemaPlus rootSchema) {
this.connection = connection;
this.rootSchema = rootSchema;
- this.map = ImmutableMap.<String, Object>of();
+ this.map = ImmutableMap.of();
}
public SchemaPlus getRootSchema() {
@@ -598,7 +575,7 @@ public final class Schemas {
private final ImmutableList<Pair<String, Schema>> pairs;
private static final PathImpl EMPTY =
- new PathImpl(ImmutableList.<Pair<String, Schema>>of());
+ new PathImpl(ImmutableList.of());
PathImpl(ImmutableList<Pair<String, Schema>> pairs) {
this.pairs = pairs;
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/schema/Statistics.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/schema/Statistics.java b/core/src/main/java/org/apache/calcite/schema/Statistics.java
index d3d4173..0e55140 100644
--- a/core/src/main/java/org/apache/calcite/schema/Statistics.java
+++ b/core/src/main/java/org/apache/calcite/schema/Statistics.java
@@ -45,7 +45,7 @@ public class Statistics {
}
public List<RelReferentialConstraint> getReferentialConstraints() {
- return ImmutableList.<RelReferentialConstraint>of();
+ return ImmutableList.of();
}
public List<RelCollation> getCollations() {
@@ -59,15 +59,15 @@ public class Statistics {
/** Returns a statistic with a given set of referential constraints. */
public static Statistic of(final List<RelReferentialConstraint> referentialConstraints) {
- return of(null, ImmutableList.<ImmutableBitSet>of(),
- referentialConstraints, ImmutableList.<RelCollation>of());
+ return of(null, ImmutableList.of(),
+ referentialConstraints, ImmutableList.of());
}
/** Returns a statistic with a given row count and set of unique keys. */
public static Statistic of(final double rowCount,
final List<ImmutableBitSet> keys) {
- return of(rowCount, keys, ImmutableList.<RelReferentialConstraint>of(),
- ImmutableList.<RelCollation>of());
+ return of(rowCount, keys, ImmutableList.of(),
+ ImmutableList.of());
}
/** Returns a statistic with a given row count, set of unique keys,
@@ -75,7 +75,7 @@ public class Statistics {
public static Statistic of(final double rowCount,
final List<ImmutableBitSet> keys,
final List<RelCollation> collations) {
- return of(rowCount, keys, ImmutableList.<RelReferentialConstraint>of(), collations);
+ return of(rowCount, keys, ImmutableList.of(), collations);
}
/** Returns a statistic with a given row count, set of unique keys,
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/schema/Table.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/schema/Table.java b/core/src/main/java/org/apache/calcite/schema/Table.java
index 33185db..f3540d1 100644
--- a/core/src/main/java/org/apache/calcite/schema/Table.java
+++ b/core/src/main/java/org/apache/calcite/schema/Table.java
@@ -77,9 +77,9 @@ public interface Table {
* @param parent Parent node of {@code call} in the {@link SqlNode} tree
* @param config Config settings. May be null
* @return true iff the given aggregate call is valid
- * */
- boolean rolledUpColumnValidInsideAgg(String column, SqlCall call, SqlNode parent,
- CalciteConnectionConfig config);
+ */
+ boolean rolledUpColumnValidInsideAgg(String column, SqlCall call,
+ SqlNode parent, CalciteConnectionConfig config);
}
// End Table.java
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/schema/impl/AbstractSchema.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/schema/impl/AbstractSchema.java b/core/src/main/java/org/apache/calcite/schema/impl/AbstractSchema.java
index dc8c25e..c77107b 100644
--- a/core/src/main/java/org/apache/calcite/schema/impl/AbstractSchema.java
+++ b/core/src/main/java/org/apache/calcite/schema/impl/AbstractSchema.java
@@ -50,10 +50,6 @@ import java.util.Set;
* <li>The name and parent schema are as specified in the constructor
* arguments.</li>
* </ul>
- *
- * <p>For constructing custom maps and multi-maps, we recommend
- * {@link com.google.common.base.Suppliers} and
- * {@link com.google.common.collect.Maps}.</p>
*/
public class AbstractSchema implements Schema {
public AbstractSchema() {
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/schema/impl/AggregateFunctionImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/schema/impl/AggregateFunctionImpl.java b/core/src/main/java/org/apache/calcite/schema/impl/AggregateFunctionImpl.java
index 69f2269..34644e9 100644
--- a/core/src/main/java/org/apache/calcite/schema/impl/AggregateFunctionImpl.java
+++ b/core/src/main/java/org/apache/calcite/schema/impl/AggregateFunctionImpl.java
@@ -25,12 +25,12 @@ import org.apache.calcite.schema.FunctionParameter;
import org.apache.calcite.schema.ImplementableAggFunction;
import org.apache.calcite.util.ReflectUtil;
-import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.List;
+import java.util.Objects;
import static org.apache.calcite.util.Static.RESOURCE;
@@ -70,8 +70,8 @@ public class AggregateFunctionImpl implements AggregateFunction,
this.parameters = params;
this.accumulatorType = accumulatorType;
this.resultType = resultType;
- this.initMethod = Preconditions.checkNotNull(initMethod);
- this.addMethod = Preconditions.checkNotNull(addMethod);
+ this.initMethod = Objects.requireNonNull(initMethod);
+ this.addMethod = Objects.requireNonNull(addMethod);
this.mergeMethod = mergeMethod;
this.resultMethod = resultMethod;
this.isStatic = Modifier.isStatic(initMethod.getModifiers());
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/schema/impl/MaterializedViewTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/schema/impl/MaterializedViewTable.java b/core/src/main/java/org/apache/calcite/schema/impl/MaterializedViewTable.java
index baebab5..5121221 100644
--- a/core/src/main/java/org/apache/calcite/schema/impl/MaterializedViewTable.java
+++ b/core/src/main/java/org/apache/calcite/schema/impl/MaterializedViewTable.java
@@ -30,12 +30,11 @@ import org.apache.calcite.schema.Schemas;
import org.apache.calcite.schema.Table;
import org.apache.calcite.schema.TranslatableTable;
-import com.google.common.base.Preconditions;
-
import java.lang.reflect.Type;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;
+import java.util.Objects;
/**
* Table that is a materialized view.
@@ -107,7 +106,7 @@ public class MaterializedViewTable extends ViewTable {
super(schema, viewSql,
viewSchemaPath != null ? viewSchemaPath : schema.path(null), viewPath,
Boolean.TRUE);
- this.key = Preconditions.checkNotNull(
+ this.key = Objects.requireNonNull(
MaterializationService.instance().defineMaterialization(
schema, null, viewSql, schemaPath, suggestedTableName, true,
existing));
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/schema/impl/ModifiableViewTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/schema/impl/ModifiableViewTable.java b/core/src/main/java/org/apache/calcite/schema/impl/ModifiableViewTable.java
index a312188..567b780 100644
--- a/core/src/main/java/org/apache/calcite/schema/impl/ModifiableViewTable.java
+++ b/core/src/main/java/org/apache/calcite/schema/impl/ModifiableViewTable.java
@@ -39,10 +39,10 @@ import org.apache.calcite.util.ImmutableIntList;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Maps;
import java.lang.reflect.Type;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -186,7 +186,7 @@ public class ModifiableViewTable extends ViewTable
private ModifiableViewTableInitializerExpressionFactory() {
super();
- final Map<Integer, RexNode> projectMap = Maps.newHashMap();
+ final Map<Integer, RexNode> projectMap = new HashMap<>();
final List<RexNode> filters = new ArrayList<>();
RelOptUtil.inferViewPredicates(projectMap, filters, constraint);
assert filters.isEmpty();
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/schema/impl/StarTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/schema/impl/StarTable.java b/core/src/main/java/org/apache/calcite/schema/impl/StarTable.java
index 27f3cf8..b0a62a5 100644
--- a/core/src/main/java/org/apache/calcite/schema/impl/StarTable.java
+++ b/core/src/main/java/org/apache/calcite/schema/impl/StarTable.java
@@ -34,11 +34,11 @@ import org.apache.calcite.schema.TranslatableTable;
import org.apache.calcite.util.ImmutableIntList;
import org.apache.calcite.util.Pair;
-import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
/**
* Virtual table that is composed of two or more tables joined together.
@@ -63,7 +63,7 @@ public class StarTable extends AbstractTable implements TranslatableTable {
/** Creates a StarTable. */
private StarTable(Lattice lattice, ImmutableList<Table> tables) {
- this.lattice = Preconditions.checkNotNull(lattice);
+ this.lattice = Objects.requireNonNull(lattice);
this.tables = tables;
}
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlBasicCall.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlBasicCall.java b/core/src/main/java/org/apache/calcite/sql/SqlBasicCall.java
index bd311f2..d9e0322 100755
--- a/core/src/main/java/org/apache/calcite/sql/SqlBasicCall.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlBasicCall.java
@@ -19,9 +19,8 @@ package org.apache.calcite.sql;
import org.apache.calcite.sql.parser.SqlParserPos;
import org.apache.calcite.util.UnmodifiableArrayList;
-import com.google.common.base.Preconditions;
-
import java.util.List;
+import java.util.Objects;
/**
* Implementation of {@link SqlCall} that keeps its operands in an array.
@@ -46,7 +45,7 @@ public class SqlBasicCall extends SqlCall {
boolean expanded,
SqlLiteral functionQualifier) {
super(pos);
- this.operator = Preconditions.checkNotNull(operator);
+ this.operator = Objects.requireNonNull(operator);
this.operands = operands;
this.expanded = expanded;
this.functionQuantifier = functionQualifier;
@@ -65,7 +64,7 @@ public class SqlBasicCall extends SqlCall {
}
public void setOperator(SqlOperator operator) {
- this.operator = Preconditions.checkNotNull(operator);
+ this.operator = Objects.requireNonNull(operator);
}
public SqlOperator getOperator() {
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlBinaryStringLiteral.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlBinaryStringLiteral.java b/core/src/main/java/org/apache/calcite/sql/SqlBinaryStringLiteral.java
index 71380e1..d9c4ef2 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlBinaryStringLiteral.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlBinaryStringLiteral.java
@@ -19,9 +19,7 @@ package org.apache.calcite.sql;
import org.apache.calcite.sql.parser.SqlParserPos;
import org.apache.calcite.sql.type.SqlTypeName;
import org.apache.calcite.util.BitString;
-
-import com.google.common.base.Function;
-import com.google.common.collect.Lists;
+import org.apache.calcite.util.Util;
import java.util.List;
@@ -32,12 +30,6 @@ import java.util.List;
* {@link SqlTypeName#BINARY}.
*/
public class SqlBinaryStringLiteral extends SqlAbstractStringLiteral {
- private static final Function<SqlLiteral, BitString> F =
- new Function<SqlLiteral, BitString>() {
- public BitString apply(SqlLiteral literal) {
- return ((SqlBinaryStringLiteral) literal).getBitString();
- }
- };
//~ Constructors -----------------------------------------------------------
@@ -70,7 +62,9 @@ public class SqlBinaryStringLiteral extends SqlAbstractStringLiteral {
protected SqlAbstractStringLiteral concat1(List<SqlLiteral> literals) {
return new SqlBinaryStringLiteral(
- BitString.concat(Lists.transform(literals, F)),
+ BitString.concat(
+ Util.transform(literals,
+ literal -> ((SqlBinaryStringLiteral) literal).getBitString())),
literals.get(0).getParserPosition());
}
}
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlCall.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlCall.java b/core/src/main/java/org/apache/calcite/sql/SqlCall.java
index 9e50417..aeddb6f 100755
--- a/core/src/main/java/org/apache/calcite/sql/SqlCall.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlCall.java
@@ -84,7 +84,7 @@ public abstract class SqlCall extends SqlNode {
@Override public SqlNode clone(SqlParserPos pos) {
final List<SqlNode> operandList = getOperandList();
return getOperator().createCall(getFunctionQuantifier(), pos,
- operandList.toArray(new SqlNode[operandList.size()]));
+ operandList.toArray(new SqlNode[0]));
}
public void unparse(
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlCallBinding.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlCallBinding.java b/core/src/main/java/org/apache/calcite/sql/SqlCallBinding.java
index 002382c..8fe2e82 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlCallBinding.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlCallBinding.java
@@ -30,7 +30,6 @@ import org.apache.calcite.sql.validate.SqlValidatorScope;
import org.apache.calcite.sql.validate.SqlValidatorUtil;
import org.apache.calcite.util.NlsString;
-import com.google.common.base.Function;
import com.google.common.collect.Lists;
import java.math.BigDecimal;
@@ -154,20 +153,17 @@ public class SqlCallBinding extends SqlOperatorBinding {
* formal parameters of the function. */
private List<SqlNode> permutedOperands(final SqlCall call) {
final SqlFunction operator = (SqlFunction) call.getOperator();
- return Lists.transform(operator.getParamNames(),
- new Function<String, SqlNode>() {
- public SqlNode apply(String paramName) {
- for (SqlNode operand2 : call.getOperandList()) {
- final SqlCall call2 = (SqlCall) operand2;
- assert operand2.getKind() == SqlKind.ARGUMENT_ASSIGNMENT;
- final SqlIdentifier id = call2.operand(1);
- if (id.getSimple().equals(paramName)) {
- return call2.operand(0);
- }
- }
- return DEFAULT_CALL;
- }
- });
+ return Lists.transform(operator.getParamNames(), paramName -> {
+ for (SqlNode operand2 : call.getOperandList()) {
+ final SqlCall call2 = (SqlCall) operand2;
+ assert operand2.getKind() == SqlKind.ARGUMENT_ASSIGNMENT;
+ final SqlIdentifier id = call2.operand(1);
+ if (id.getSimple().equals(paramName)) {
+ return call2.operand(0);
+ }
+ }
+ return DEFAULT_CALL;
+ });
}
/**
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlCharStringLiteral.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlCharStringLiteral.java b/core/src/main/java/org/apache/calcite/sql/SqlCharStringLiteral.java
index b74176c..c3846f1 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlCharStringLiteral.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlCharStringLiteral.java
@@ -22,9 +22,6 @@ import org.apache.calcite.util.Bug;
import org.apache.calcite.util.NlsString;
import org.apache.calcite.util.Util;
-import com.google.common.base.Function;
-import com.google.common.collect.Lists;
-
import java.util.List;
/**
@@ -34,12 +31,6 @@ import java.util.List;
* {@link SqlTypeName#CHAR}.
*/
public class SqlCharStringLiteral extends SqlAbstractStringLiteral {
- private static final Function<SqlLiteral, NlsString> F =
- new Function<SqlLiteral, NlsString>() {
- public NlsString apply(SqlLiteral literal) {
- return ((SqlCharStringLiteral) literal).getNlsString();
- }
- };
//~ Constructors -----------------------------------------------------------
@@ -83,7 +74,9 @@ public class SqlCharStringLiteral extends SqlAbstractStringLiteral {
protected SqlAbstractStringLiteral concat1(List<SqlLiteral> literals) {
return new SqlCharStringLiteral(
- NlsString.concat(Lists.transform(literals, F)),
+ NlsString.concat(
+ Util.transform(literals,
+ literal -> ((SqlCharStringLiteral) literal).getNlsString())),
literals.get(0).getParserPosition());
}
}
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlDataTypeSpec.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlDataTypeSpec.java b/core/src/main/java/org/apache/calcite/sql/SqlDataTypeSpec.java
index cb921a4..a6238a3 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlDataTypeSpec.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlDataTypeSpec.java
@@ -28,8 +28,6 @@ import org.apache.calcite.sql.validate.SqlValidatorScope;
import org.apache.calcite.util.Litmus;
import org.apache.calcite.util.Util;
-import com.google.common.base.Preconditions;
-
import java.nio.charset.Charset;
import java.util.Objects;
import java.util.TimeZone;
@@ -364,7 +362,7 @@ public class SqlDataTypeSpec extends SqlNode {
charset = typeFactory.getDefaultCharset();
} else {
String javaCharSetName =
- Preconditions.checkNotNull(
+ Objects.requireNonNull(
SqlUtil.translateCharacterSetName(charSetName), charSetName);
charset = Charset.forName(javaCharSetName);
}
@@ -378,7 +376,7 @@ public class SqlDataTypeSpec extends SqlNode {
if (null != collectionsTypeName) {
final String collectionName = collectionsTypeName.getSimple();
final SqlTypeName collectionsSqlTypeName =
- Preconditions.checkNotNull(SqlTypeName.get(collectionName),
+ Objects.requireNonNull(SqlTypeName.get(collectionName),
collectionName);
switch (collectionsSqlTypeName) {
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlDdl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlDdl.java b/core/src/main/java/org/apache/calcite/sql/SqlDdl.java
index c22abb6..671ad7d 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlDdl.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlDdl.java
@@ -18,7 +18,7 @@ package org.apache.calcite.sql;
import org.apache.calcite.sql.parser.SqlParserPos;
-import com.google.common.base.Preconditions;
+import java.util.Objects;
/** Base class for CREATE, DROP and other DDL statements. */
public abstract class SqlDdl extends SqlCall {
@@ -31,7 +31,7 @@ public abstract class SqlDdl extends SqlCall {
/** Creates a SqlDdl. */
public SqlDdl(SqlOperator operator, SqlParserPos pos) {
super(pos);
- this.operator = Preconditions.checkNotNull(operator);
+ this.operator = Objects.requireNonNull(operator);
}
public SqlOperator getOperator() {
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlDescribeSchema.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlDescribeSchema.java b/core/src/main/java/org/apache/calcite/sql/SqlDescribeSchema.java
index b6432c7..e9959b0 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlDescribeSchema.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlDescribeSchema.java
@@ -64,7 +64,7 @@ public class SqlDescribeSchema extends SqlCall {
}
@Override public List<SqlNode> getOperandList() {
- return ImmutableNullableList.<SqlNode>of(schema);
+ return ImmutableNullableList.of(schema);
}
public SqlIdentifier getSchema() {
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlDescribeTable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlDescribeTable.java b/core/src/main/java/org/apache/calcite/sql/SqlDescribeTable.java
index 025bced..76e088b 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlDescribeTable.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlDescribeTable.java
@@ -75,7 +75,7 @@ public class SqlDescribeTable extends SqlCall {
}
@Override public List<SqlNode> getOperandList() {
- return ImmutableNullableList.<SqlNode>of(table, column);
+ return ImmutableNullableList.of(table, column);
}
public SqlIdentifier getTable() {
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlDialect.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlDialect.java b/core/src/main/java/org/apache/calcite/sql/SqlDialect.java
index 3e679d3..1314656 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlDialect.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlDialect.java
@@ -32,7 +32,6 @@ import org.apache.calcite.sql.type.BasicSqlType;
import org.apache.calcite.sql.type.SqlTypeUtil;
import com.google.common.base.Preconditions;
-import com.google.common.base.Supplier;
import com.google.common.base.Suppliers;
import org.slf4j.Logger;
@@ -44,6 +43,8 @@ import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Locale;
+import java.util.Objects;
+import java.util.function.Supplier;
import java.util.regex.Pattern;
import javax.annotation.Nonnull;
@@ -135,9 +136,9 @@ public class SqlDialect {
* @param context All the information necessary to create a dialect
*/
public SqlDialect(Context context) {
- this.nullCollation = Preconditions.checkNotNull(context.nullCollation());
+ this.nullCollation = Objects.requireNonNull(context.nullCollation());
this.databaseProduct =
- Preconditions.checkNotNull(context.databaseProduct());
+ Objects.requireNonNull(context.databaseProduct());
String identifierQuoteString = context.identifierQuoteString();
if (identifierQuoteString != null) {
identifierQuoteString = identifierQuoteString.trim();
@@ -897,32 +898,24 @@ public class SqlDialect {
*/
UNKNOWN("Unknown", "`", NullCollation.HIGH);
- private final Supplier<SqlDialect> dialect =
- Suppliers.memoize(new Supplier<SqlDialect>() {
- public SqlDialect get() {
- final SqlDialect dialect =
- SqlDialectFactoryImpl.simple(DatabaseProduct.this);
- if (dialect != null) {
- return dialect;
- }
- return new SqlDialect(SqlDialect.EMPTY_CONTEXT
- .withDatabaseProduct(DatabaseProduct.this)
- .withDatabaseProductName(databaseProductName)
- .withIdentifierQuoteString(quoteString)
- .withNullCollation(nullCollation));
- }
- });
-
- private String databaseProductName;
- private String quoteString;
- private final NullCollation nullCollation;
+ private final Supplier<SqlDialect> dialect;
DatabaseProduct(String databaseProductName, String quoteString,
NullCollation nullCollation) {
- this.databaseProductName =
- Preconditions.checkNotNull(databaseProductName);
- this.quoteString = quoteString;
- this.nullCollation = Preconditions.checkNotNull(nullCollation);
+ Objects.requireNonNull(databaseProductName);
+ Objects.requireNonNull(nullCollation);
+ dialect = Suppliers.memoize(() -> {
+ final SqlDialect dialect =
+ SqlDialectFactoryImpl.simple(DatabaseProduct.this);
+ if (dialect != null) {
+ return dialect;
+ }
+ return new SqlDialect(SqlDialect.EMPTY_CONTEXT
+ .withDatabaseProduct(DatabaseProduct.this)
+ .withDatabaseProductName(databaseProductName)
+ .withIdentifierQuoteString(quoteString)
+ .withNullCollation(nullCollation));
+ })::get;
}
/**
@@ -980,14 +973,14 @@ public class SqlDialect {
int databaseMajorVersion, int databaseMinorVersion,
String identifierQuoteString, NullCollation nullCollation,
JethroDataSqlDialect.JethroInfo jethroInfo) {
- this.databaseProduct = Preconditions.checkNotNull(databaseProduct);
+ this.databaseProduct = Objects.requireNonNull(databaseProduct);
this.databaseProductName = databaseProductName;
this.databaseVersion = databaseVersion;
this.databaseMajorVersion = databaseMajorVersion;
this.databaseMinorVersion = databaseMinorVersion;
this.identifierQuoteString = identifierQuoteString;
- this.nullCollation = Preconditions.checkNotNull(nullCollation);
- this.jethroInfo = Preconditions.checkNotNull(jethroInfo);
+ this.nullCollation = Objects.requireNonNull(nullCollation);
+ this.jethroInfo = Objects.requireNonNull(jethroInfo);
}
@Nonnull public DatabaseProduct databaseProduct() {
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlFunction.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlFunction.java b/core/src/main/java/org/apache/calcite/sql/SqlFunction.java
index e485422..597b7ff 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlFunction.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlFunction.java
@@ -16,7 +16,6 @@
*/
package org.apache.calcite.sql;
-import org.apache.calcite.linq4j.function.Function1;
import org.apache.calcite.linq4j.function.Functions;
import org.apache.calcite.rel.type.RelDataType;
import org.apache.calcite.sql.type.SqlOperandTypeChecker;
@@ -26,10 +25,10 @@ import org.apache.calcite.sql.validate.SqlValidator;
import org.apache.calcite.sql.validate.SqlValidatorScope;
import org.apache.calcite.util.Util;
-import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import java.util.List;
+import java.util.Objects;
import javax.annotation.Nonnull;
import static org.apache.calcite.util.Static.RESOURCE;
@@ -39,13 +38,6 @@ import static org.apache.calcite.util.Static.RESOURCE;
* function-call syntax.
*/
public class SqlFunction extends SqlOperator {
- /** Function that generates "arg{n}" for the {@code n}th argument name. */
- private static final Function1<Integer, String> ARG_FN =
- new Function1<Integer, String>() {
- public String apply(Integer a0) {
- return "arg" + a0;
- }
- };
//~ Instance fields --------------------------------------------------------
@@ -123,7 +115,7 @@ public class SqlFunction extends SqlOperator {
operandTypeChecker);
this.sqlIdentifier = sqlIdentifier;
- this.category = Preconditions.checkNotNull(category);
+ this.category = Objects.requireNonNull(category);
this.paramTypes =
paramTypes == null ? null : ImmutableList.copyOf(paramTypes);
}
@@ -161,7 +153,7 @@ public class SqlFunction extends SqlOperator {
* <p>The default implementation returns {@code [arg0, arg1, ..., argN]}.
*/
public List<String> getParamNames() {
- return Functions.generate(paramTypes.size(), ARG_FN);
+ return Functions.generate(paramTypes.size(), i -> "arg" + i);
}
public void unparse(
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlIdentifier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlIdentifier.java b/core/src/main/java/org/apache/calcite/sql/SqlIdentifier.java
index 4839805..ba6fb0c 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlIdentifier.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlIdentifier.java
@@ -26,7 +26,6 @@ import org.apache.calcite.sql.validate.SqlValidatorScope;
import org.apache.calcite.util.Litmus;
import org.apache.calcite.util.Util;
-import com.google.common.base.Function;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
@@ -37,19 +36,6 @@ import java.util.List;
* A <code>SqlIdentifier</code> is an identifier, possibly compound.
*/
public class SqlIdentifier extends SqlNode {
- private static final Function<String, String> STAR_TO_EMPTY =
- new Function<String, String>() {
- public String apply(String s) {
- return s.equals("*") ? "" : s;
- }
- };
-
- private static final Function<String, String> EMPTY_TO_STAR =
- new Function<String, String>() {
- public String apply(String s) {
- return s.equals("") ? "*" : s.equals("*") ? "\"*\"" : s;
- }
- };
//~ Instance fields --------------------------------------------------------
@@ -131,7 +117,8 @@ public class SqlIdentifier extends SqlNode {
/** Creates an identifier that ends in a wildcard star. */
public static SqlIdentifier star(List<String> names, SqlParserPos pos,
List<SqlParserPos> componentPositions) {
- return new SqlIdentifier(Lists.transform(names, STAR_TO_EMPTY), null, pos,
+ return new SqlIdentifier(
+ Lists.transform(names, s -> s.equals("*") ? "" : s), null, pos,
componentPositions);
}
@@ -156,7 +143,8 @@ public class SqlIdentifier extends SqlNode {
/** Converts empty strings in a list of names to stars. */
public static List<String> toStar(List<String> names) {
- return Lists.transform(names, EMPTY_TO_STAR);
+ return Lists.transform(names,
+ s -> s.equals("") ? "*" : s.equals("*") ? "\"*\"" : s);
}
/**
@@ -175,7 +163,7 @@ public class SqlIdentifier extends SqlNode {
* Does not modify this identifier. */
public SqlIdentifier setName(int i, String name) {
if (!names.get(i).equals(name)) {
- String[] nameArray = names.toArray(new String[names.size()]);
+ String[] nameArray = names.toArray(new String[0]);
nameArray[i] = name;
return new SqlIdentifier(ImmutableList.copyOf(nameArray), collation, pos,
componentPositions);
@@ -274,8 +262,10 @@ public class SqlIdentifier extends SqlNode {
*/
public SqlIdentifier plusStar() {
final SqlIdentifier id = this.plus("*", SqlParserPos.ZERO);
- return new SqlIdentifier(Lists.transform(id.names, STAR_TO_EMPTY), null, id.pos,
- id.componentPositions);
+ return new SqlIdentifier(
+ id.names.stream().map(s -> s.equals("*") ? "" : s)
+ .collect(Util.toImmutableList()),
+ null, id.pos, id.componentPositions);
}
/** Creates an identifier that consists of all but the last {@code n}
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlIntervalQualifier.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlIntervalQualifier.java b/core/src/main/java/org/apache/calcite/sql/SqlIntervalQualifier.java
index 2fafec7..a25d93d 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlIntervalQualifier.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlIntervalQualifier.java
@@ -29,9 +29,8 @@ import org.apache.calcite.sql.validate.SqlValidatorScope;
import org.apache.calcite.util.Litmus;
import org.apache.calcite.util.Util;
-import com.google.common.base.Preconditions;
-
import java.math.BigDecimal;
+import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -109,7 +108,7 @@ public class SqlIntervalQualifier extends SqlNode {
endUnit = null;
}
this.timeUnitRange =
- TimeUnitRange.of(Preconditions.checkNotNull(startUnit), endUnit);
+ TimeUnitRange.of(Objects.requireNonNull(startUnit), endUnit);
this.startPrecision = startPrecision;
this.fractionalSecondPrecision = fractionalSecondPrecision;
}
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlJdbcFunctionCall.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlJdbcFunctionCall.java b/core/src/main/java/org/apache/calcite/sql/SqlJdbcFunctionCall.java
index a057697..d84d931 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlJdbcFunctionCall.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlJdbcFunctionCall.java
@@ -25,10 +25,10 @@ import org.apache.calcite.sql.validate.SqlValidator;
import org.apache.calcite.sql.validate.SqlValidatorImpl;
import org.apache.calcite.sql.validate.SqlValidatorScope;
-import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap;
import java.util.Map;
+import java.util.Objects;
import static org.apache.calcite.util.Static.RESOURCE;
@@ -601,7 +601,7 @@ public class SqlJdbcFunctionCall extends SqlFunction {
*/
PermutingMakeCall(SqlOperator operator, int[] order) {
super(operator);
- this.order = Preconditions.checkNotNull(order);
+ this.order = Objects.requireNonNull(order);
}
@Override public SqlCall createCall(SqlParserPos pos,
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/sql/SqlJoin.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/sql/SqlJoin.java b/core/src/main/java/org/apache/calcite/sql/SqlJoin.java
index 104d315..e533ee9 100644
--- a/core/src/main/java/org/apache/calcite/sql/SqlJoin.java
+++ b/core/src/main/java/org/apache/calcite/sql/SqlJoin.java
@@ -24,6 +24,7 @@ import org.apache.calcite.util.Util;
import com.google.common.base.Preconditions;
import java.util.List;
+import java.util.Objects;
/**
* Parse tree node representing a {@code JOIN} clause.
@@ -60,15 +61,15 @@ public class SqlJoin extends SqlCall {
SqlNode condition) {
super(pos);
this.left = left;
- this.natural = Preconditions.checkNotNull(natural);
- this.joinType = Preconditions.checkNotNull(joinType);
+ this.natural = Objects.requireNonNull(natural);
+ this.joinType = Objects.requireNonNull(joinType);
this.right = right;
- this.conditionType = Preconditions.checkNotNull(conditionType);
+ this.conditionType = Objects.requireNonNull(conditionType);
this.condition = condition;
Preconditions.checkArgument(natural.getTypeName() == SqlTypeName.BOOLEAN);
- Preconditions.checkNotNull(conditionType.symbolValue(JoinConditionType.class));
- Preconditions.checkNotNull(joinType.symbolValue(JoinType.class));
+ Objects.requireNonNull(conditionType.symbolValue(JoinConditionType.class));
+ Objects.requireNonNull(joinType.symbolValue(JoinType.class));
}
//~ Methods ----------------------------------------------------------------