http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/metadata/RelMdAllPredicates.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdAllPredicates.java b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdAllPredicates.java index 4430db4..6101846 100644 --- a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdAllPredicates.java +++ b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdAllPredicates.java @@ -41,7 +41,6 @@ import org.apache.calcite.util.BuiltInMethod; import org.apache.calcite.util.ImmutableBitSet; import org.apache.calcite.util.Util; -import com.google.common.base.Function; import com.google.common.collect.HashMultimap; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; @@ -195,14 +194,9 @@ public class RelMdAllPredicates RelTableRef.of(rightRef.getTable(), shift + rightRef.getEntityNumber())); } final List<RexNode> updatedPreds = Lists.newArrayList( - Iterables.transform( - inputPreds.pulledUpPredicates, - new Function<RexNode, RexNode>() { - @Override public RexNode apply(RexNode e) { - return RexUtil.swapTableReferences(rexBuilder, e, currentTablesMapping); - } - } - )); + Iterables.transform(inputPreds.pulledUpPredicates, + e -> RexUtil.swapTableReferences(rexBuilder, e, + currentTablesMapping))); newPreds = newPreds.union(rexBuilder, RelOptPredicateList.of(rexBuilder, updatedPreds)); } @@ -283,14 +277,9 @@ public class RelMdAllPredicates } // Update preds final List<RexNode> updatedPreds = Lists.newArrayList( - Iterables.transform( - inputPreds.pulledUpPredicates, - new Function<RexNode, RexNode>() { - @Override public RexNode apply(RexNode e) { - return RexUtil.swapTableReferences(rexBuilder, e, currentTablesMapping); - } - } - )); + Iterables.transform(inputPreds.pulledUpPredicates, + e -> RexUtil.swapTableReferences(rexBuilder, e, + currentTablesMapping))); newPreds = newPreds.union(rexBuilder, RelOptPredicateList.of(rexBuilder, updatedPreds)); }
http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/metadata/RelMdCollation.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdCollation.java b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdCollation.java index 8fed9bb..aa42f42 100644 --- a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdCollation.java +++ b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdCollation.java @@ -48,10 +48,8 @@ import org.apache.calcite.util.ImmutableIntList; import org.apache.calcite.util.Pair; import org.apache.calcite.util.Util; -import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.LinkedListMultimap; -import com.google.common.collect.Lists; import com.google.common.collect.Multimap; import com.google.common.collect.Ordering; @@ -60,6 +58,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.SortedSet; import java.util.TreeSet; @@ -169,7 +168,7 @@ public class RelMdCollation public ImmutableList<RelCollation> collations(RelSubset rel, RelMetadataQuery mq) { return ImmutableList.copyOf( - Preconditions.checkNotNull( + Objects.requireNonNull( rel.getTraitSet().getTraits(RelCollationTraitDef.INSTANCE))); } @@ -302,10 +301,10 @@ public class RelMdCollation public static List<RelCollation> values(RelMetadataQuery mq, RelDataType rowType, ImmutableList<ImmutableList<RexLiteral>> tuples) { Util.discard(mq); // for future use - final List<RelCollation> list = Lists.newArrayList(); + final List<RelCollation> list = new ArrayList<>(); final int n = rowType.getFieldCount(); final List<Pair<RelFieldCollation, Ordering<List<RexLiteral>>>> pairs = - Lists.newArrayList(); + new ArrayList<>(); outer: for (int i = 0; i < n; i++) { pairs.clear(); http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/metadata/RelMdColumnUniqueness.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdColumnUniqueness.java b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdColumnUniqueness.java index ead85fa..e9625fa 100644 --- a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdColumnUniqueness.java +++ b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdColumnUniqueness.java @@ -40,13 +40,11 @@ import org.apache.calcite.rex.RexCall; import org.apache.calcite.rex.RexInputRef; import org.apache.calcite.rex.RexLiteral; import org.apache.calcite.rex.RexNode; -import org.apache.calcite.runtime.PredicateImpl; import org.apache.calcite.sql.fun.SqlStdOperatorTable; import org.apache.calcite.util.BuiltInMethod; import org.apache.calcite.util.ImmutableBitSet; import org.apache.calcite.util.Pair; -import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; import java.util.ArrayList; @@ -64,14 +62,6 @@ public class RelMdColumnUniqueness ReflectiveRelMetadataProvider.reflectiveSource( BuiltInMethod.COLUMN_UNIQUENESS.method, new RelMdColumnUniqueness()); - /** Aggregate and Calc are "safe" children of a RelSubset to delve into. */ - private static final Predicate<RelNode> SAFE_REL = - new PredicateImpl<RelNode>() { - public boolean test(RelNode r) { - return r instanceof Aggregate || r instanceof Project; - } - }; - //~ Constructors ----------------------------------------------------------- private RelMdColumnUniqueness() {} http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/metadata/RelMdExpressionLineage.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdExpressionLineage.java b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdExpressionLineage.java index e7c82fd..1afadc3 100644 --- a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdExpressionLineage.java +++ b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdExpressionLineage.java @@ -41,12 +41,11 @@ import org.apache.calcite.util.BuiltInMethod; import org.apache.calcite.util.ImmutableBitSet; import org.apache.calcite.util.Util; -import com.google.common.base.Function; import com.google.common.collect.HashMultimap; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; -import com.google.common.collect.Sets; import java.util.ArrayList; import java.util.Collection; @@ -57,6 +56,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; /** * Default implementation of @@ -127,9 +127,8 @@ public class RelMdExpressionLineage final RexNode inputRef = RexTableInputRef.of( RelTableRef.of(rel.getTable(), 0), RexInputRef.of(idx, rel.getRowType().getFieldList())); - final Set<RexNode> originalExprs = Sets.newHashSet(inputRef); final RexInputRef ref = RexInputRef.of(idx, rel.getRowType().getFieldList()); - mapping.put(ref, originalExprs); + mapping.put(ref, ImmutableSet.of(inputRef)); } // Return result @@ -237,15 +236,10 @@ public class RelMdExpressionLineage currentTablesMapping.put(rightRef, RelTableRef.of(rightRef.getTable(), shift + rightRef.getEntityNumber())); } - final Set<RexNode> updatedExprs = Sets.newHashSet( - Iterables.transform( - originalExprs, - new Function<RexNode, RexNode>() { - @Override public RexNode apply(RexNode e) { - return RexUtil.swapTableReferences(rexBuilder, e, currentTablesMapping); - } - } - )); + final Set<RexNode> updatedExprs = ImmutableSet.copyOf( + Iterables.transform(originalExprs, e -> + RexUtil.swapTableReferences(rexBuilder, e, + currentTablesMapping))); mapping.put(RexInputRef.of(idx, rel.getRowType().getFieldList()), updatedExprs); } } @@ -292,15 +286,12 @@ public class RelMdExpressionLineage currentTablesMapping.put(tableRef, RelTableRef.of(tableRef.getTable(), shift + tableRef.getEntityNumber())); } - final Set<RexNode> updatedExprs = Sets.newHashSet( - Iterables.transform( - originalExprs, - new Function<RexNode, RexNode>() { - @Override public RexNode apply(RexNode e) { - return RexUtil.swapTableReferences(rexBuilder, e, currentTablesMapping); - } - } - )); + final Set<RexNode> updatedExprs = + originalExprs.stream() + .map(e -> + RexUtil.swapTableReferences(rexBuilder, e, + currentTablesMapping)) + .collect(Collectors.toSet()); final Set<RexNode> set = mapping.get(ref); if (set != null) { set.addAll(updatedExprs); @@ -393,7 +384,7 @@ public class RelMdExpressionLineage if (predFieldsUsed.isEmpty()) { // The unique expression is the input expression - return Sets.newHashSet(expr); + return ImmutableSet.of(expr); } return createAllPossibleExpressions(rexBuilder, expr, predFieldsUsed, mapping, http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/metadata/RelMdPredicates.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdPredicates.java b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdPredicates.java index 02f6bda..6e30189 100644 --- a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdPredicates.java +++ b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdPredicates.java @@ -18,7 +18,6 @@ package org.apache.calcite.rel.metadata; import org.apache.calcite.linq4j.Linq4j; import org.apache.calcite.linq4j.Ord; -import org.apache.calcite.linq4j.function.Predicate1; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptPredicateList; import org.apache.calcite.plan.RelOptUtil; @@ -58,11 +57,9 @@ import org.apache.calcite.util.mapping.Mapping; import org.apache.calcite.util.mapping.MappingType; import org.apache.calcite.util.mapping.Mappings; -import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import java.util.ArrayList; import java.util.BitSet; @@ -73,8 +70,10 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Objects; import java.util.Set; import java.util.SortedMap; +import java.util.TreeMap; /** * Utility to infer Predicates that are applicable above a RelNode. @@ -511,7 +510,7 @@ public class RelMdPredicates allFieldsBitSet = ImmutableBitSet.range(0, nSysFields + nFieldsLeft + nFieldsRight); - exprFields = Maps.newHashMap(); + exprFields = new HashMap<>(); allExprDigests = new HashSet<>(); if (lPreds == null) { @@ -544,7 +543,7 @@ public class RelMdPredicates } } - equivalence = Maps.newTreeMap(); + equivalence = new TreeMap<>(); equalityPredicates = new HashSet<>(); for (int i = 0; i < nSysFields + nFieldsLeft + nFieldsRight; i++) { equivalence.put(i, BitSets.of(i)); @@ -560,12 +559,7 @@ public class RelMdPredicates final EquivalenceFinder eF = new EquivalenceFinder(); new ArrayList<>( - Lists.transform(exprs, - new Function<RexNode, Void>() { - public Void apply(RexNode input) { - return input.accept(eF); - } - })); + Lists.transform(exprs, input -> input.accept(eF))); equivalence = BitSets.closure(equivalence); } @@ -695,14 +689,12 @@ public class RelMdPredicates } Iterable<Mapping> mappings(final RexNode predicate) { - return new Iterable<Mapping>() { - public Iterator<Mapping> iterator() { - ImmutableBitSet fields = exprFields.get(predicate.toString()); - if (fields.cardinality() == 0) { - return Collections.emptyIterator(); - } - return new ExprsItr(fields); + return () -> { + ImmutableBitSet fields = exprFields.get(predicate.toString()); + if (fields.cardinality() == 0) { + return Collections.emptyIterator(); } + return new ExprsItr(fields); }; } @@ -722,11 +714,7 @@ public class RelMdPredicates } RexNode compose(RexBuilder rexBuilder, Iterable<RexNode> exprs) { - exprs = Linq4j.asEnumerable(exprs).where(new Predicate1<RexNode>() { - public boolean apply(RexNode expr) { - return expr != null; - } - }); + exprs = Linq4j.asEnumerable(exprs).where(Objects::nonNull); return RexUtil.composeConjunction(rexBuilder, exprs, false); } http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/metadata/RelMdSize.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdSize.java b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdSize.java index 63c27b1..998b7aa 100644 --- a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdSize.java +++ b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdSize.java @@ -43,8 +43,8 @@ import org.apache.calcite.util.NlsString; import org.apache.calcite.util.Pair; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; +import java.util.ArrayList; import java.util.List; /** @@ -219,7 +219,7 @@ public class RelMdSize implements MetadataHandler<BuiltInMetadata.Size> { public List<Double> averageColumnSizes(Union rel, RelMetadataQuery mq) { final int fieldCount = rel.getRowType().getFieldCount(); - List<List<Double>> inputColumnSizeList = Lists.newArrayList(); + List<List<Double>> inputColumnSizeList = new ArrayList<>(); for (RelNode input : rel.getInputs()) { final List<Double> inputSizes = mq.getAverageColumnSizes(input); if (inputSizes != null) { http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/metadata/RelMdTableReferences.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdTableReferences.java b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdTableReferences.java index d84e911..38b1ca2 100644 --- a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdTableReferences.java +++ b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdTableReferences.java @@ -32,8 +32,8 @@ import org.apache.calcite.util.BuiltInMethod; import org.apache.calcite.util.Util; import com.google.common.collect.HashMultimap; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Multimap; -import com.google.common.collect.Sets; import java.util.Collection; import java.util.HashMap; @@ -88,7 +88,7 @@ public class RelMdTableReferences * TableScan table reference. */ public Set<RelTableRef> getTableReferences(TableScan rel, RelMetadataQuery mq) { - return Sets.newHashSet(RelTableRef.of(rel.getTable(), 0)); + return ImmutableSet.of(RelTableRef.of(rel.getTable(), 0)); } /** http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/metadata/RelMetadataQuery.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/RelMetadataQuery.java b/core/src/main/java/org/apache/calcite/rel/metadata/RelMetadataQuery.java index 06c4fb0..d8f3dd2 100644 --- a/core/src/main/java/org/apache/calcite/rel/metadata/RelMetadataQuery.java +++ b/core/src/main/java/org/apache/calcite/rel/metadata/RelMetadataQuery.java @@ -27,18 +27,16 @@ import org.apache.calcite.rex.RexTableInputRef.RelTableRef; import org.apache.calcite.sql.SqlExplainLevel; import org.apache.calcite.util.ImmutableBitSet; -import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Multimap; -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; /** @@ -109,15 +107,11 @@ public class RelMetadataQuery { private BuiltInMetadata.UniqueKeys.Handler uniqueKeysHandler; public static final ThreadLocal<JaninoRelMetadataProvider> THREAD_PROVIDERS = - new ThreadLocal<JaninoRelMetadataProvider>() { - protected JaninoRelMetadataProvider initialValue() { - return JaninoRelMetadataProvider.DEFAULT; - } - }; + ThreadLocal.withInitial(() -> JaninoRelMetadataProvider.DEFAULT); protected RelMetadataQuery(JaninoRelMetadataProvider metadataProvider, RelMetadataQuery prototype) { - this.metadataProvider = Preconditions.checkNotNull(metadataProvider); + this.metadataProvider = Objects.requireNonNull(metadataProvider); this.collationHandler = prototype.collationHandler; this.columnOriginHandler = prototype.columnOriginHandler; this.expressionLineageHandler = prototype.expressionLineageHandler; @@ -146,13 +140,9 @@ public class RelMetadataQuery { protected static <H> H initialHandler(Class<H> handlerClass) { return handlerClass.cast( Proxy.newProxyInstance(RelMetadataQuery.class.getClassLoader(), - new Class[] {handlerClass}, - new InvocationHandler() { - public Object invoke(Object proxy, Method method, Object[] args) - throws Throwable { - final RelNode r = (RelNode) args[0]; - throw new JaninoRelMetadataProvider.NoHandler(r.getClass()); - } + new Class[] {handlerClass}, (proxy, method, args) -> { + final RelNode r = (RelNode) args[0]; + throw new JaninoRelMetadataProvider.NoHandler(r.getClass()); })); } @@ -656,7 +646,7 @@ public class RelMetadataQuery { public List<Double> getAverageColumnSizesNotNull(RelNode rel) { final List<Double> averageColumnSizes = getAverageColumnSizes(rel); return averageColumnSizes == null - ? Collections.<Double>nCopies(rel.getRowType().getFieldCount(), null) + ? Collections.nCopies(rel.getRowType().getFieldCount(), null) : averageColumnSizes; } http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/metadata/UnboundMetadata.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/UnboundMetadata.java b/core/src/main/java/org/apache/calcite/rel/metadata/UnboundMetadata.java index ef8dc4a..85a6c76 100644 --- a/core/src/main/java/org/apache/calcite/rel/metadata/UnboundMetadata.java +++ b/core/src/main/java/org/apache/calcite/rel/metadata/UnboundMetadata.java @@ -24,6 +24,7 @@ import org.apache.calcite.rel.RelNode; * * @param <M> Metadata type */ +@FunctionalInterface public interface UnboundMetadata<M extends Metadata> { M bind(RelNode rel, RelMetadataQuery mq); } http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/mutable/MutableMultiRel.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/mutable/MutableMultiRel.java b/core/src/main/java/org/apache/calcite/rel/mutable/MutableMultiRel.java index 531f3e5..05ba762 100644 --- a/core/src/main/java/org/apache/calcite/rel/mutable/MutableMultiRel.java +++ b/core/src/main/java/org/apache/calcite/rel/mutable/MutableMultiRel.java @@ -20,7 +20,6 @@ import org.apache.calcite.linq4j.Ord; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.rel.type.RelDataType; -import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; @@ -59,12 +58,7 @@ abstract class MutableMultiRel extends MutableRel { } protected List<MutableRel> cloneChildren() { - return Lists.transform(inputs, - new Function<MutableRel, MutableRel>() { - public MutableRel apply(MutableRel mutableRel) { - return mutableRel.clone(); - } - }); + return Lists.transform(inputs, MutableRel::clone); } } http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/mutable/MutableRel.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/mutable/MutableRel.java b/core/src/main/java/org/apache/calcite/rel/mutable/MutableRel.java index 385ea44..fb0d72b 100644 --- a/core/src/main/java/org/apache/calcite/rel/mutable/MutableRel.java +++ b/core/src/main/java/org/apache/calcite/rel/mutable/MutableRel.java @@ -22,10 +22,10 @@ import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.type.RelDataType; import com.google.common.base.Equivalence; -import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import java.util.List; +import java.util.Objects; /** Mutable equivalent of {@link RelNode}. * @@ -69,9 +69,9 @@ public abstract class MutableRel { protected MutableRel(RelOptCluster cluster, RelDataType rowType, MutableRelType type) { - this.cluster = Preconditions.checkNotNull(cluster); - this.rowType = Preconditions.checkNotNull(rowType); - this.type = Preconditions.checkNotNull(type); + this.cluster = Objects.requireNonNull(cluster); + this.rowType = Objects.requireNonNull(rowType); + this.type = Objects.requireNonNull(type); } public MutableRel getParent() { http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/mutable/MutableRels.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/mutable/MutableRels.java b/core/src/main/java/org/apache/calcite/rel/mutable/MutableRels.java index 8470dc6..31510ca 100644 --- a/core/src/main/java/org/apache/calcite/rel/mutable/MutableRels.java +++ b/core/src/main/java/org/apache/calcite/rel/mutable/MutableRels.java @@ -56,7 +56,6 @@ import org.apache.calcite.tools.RelBuilder; import org.apache.calcite.util.Util; import org.apache.calcite.util.mapping.Mappings; -import com.google.common.base.Function; import com.google.common.collect.Lists; import java.util.AbstractList; @@ -275,13 +274,10 @@ public abstract class MutableRels { } } - private static List<RelNode> fromMutables(List<MutableRel> nodes, final RelBuilder relBuilder) { + private static List<RelNode> fromMutables(List<MutableRel> nodes, + final RelBuilder relBuilder) { return Lists.transform(nodes, - new Function<MutableRel, RelNode>() { - public RelNode apply(MutableRel mutableRel) { - return fromMutable(mutableRel, relBuilder); - } - }); + mutableRel -> fromMutable(mutableRel, relBuilder)); } public static MutableRel toMutable(RelNode rel) { @@ -408,12 +404,7 @@ public abstract class MutableRels { } private static List<MutableRel> toMutables(List<RelNode> nodes) { - return Lists.transform(nodes, - new Function<RelNode, MutableRel>() { - public MutableRel apply(RelNode relNode) { - return toMutable(relNode); - } - }); + return Lists.transform(nodes, MutableRels::toMutable); } } http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rel2sql/RelToSqlConverter.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rel2sql/RelToSqlConverter.java b/core/src/main/java/org/apache/calcite/rel/rel2sql/RelToSqlConverter.java index 2afda14..4ee45fd 100644 --- a/core/src/main/java/org/apache/calcite/rel/rel2sql/RelToSqlConverter.java +++ b/core/src/main/java/org/apache/calcite/rel/rel2sql/RelToSqlConverter.java @@ -65,7 +65,6 @@ import org.apache.calcite.util.Pair; import org.apache.calcite.util.ReflectUtil; import org.apache.calcite.util.ReflectiveVisitor; -import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; @@ -381,7 +380,7 @@ public class RelToSqlConverter extends SqlImplementor new SqlInsert(POS, SqlNodeList.EMPTY, sqlTargetTable, sqlSource, identifierList(modify.getInput().getRowType().getFieldNames())); - return result(sqlInsert, ImmutableList.<Clause>of(), modify, null); + return result(sqlInsert, ImmutableList.of(), modify, null); } case UPDATE: { final Result input = visitChild(0, modify.getInput()); @@ -415,24 +414,14 @@ public class RelToSqlConverter extends SqlImplementor private SqlNodeList exprList(final Context context, List<? extends RexNode> exprs) { return new SqlNodeList( - Lists.transform(exprs, - new Function<RexNode, SqlNode>() { - public SqlNode apply(RexNode e) { - return context.toSql(null, e); - } - }), POS); + Lists.transform(exprs, e -> context.toSql(null, e)), POS); } /** Converts a list of names expressions to a list of single-part * {@link SqlIdentifier}s. */ private SqlNodeList identifierList(List<String> names) { return new SqlNodeList( - Lists.transform(names, - new Function<String, SqlNode>() { - public SqlNode apply(String name) { - return new SqlIdentifier(name, POS); - } - }), POS); + Lists.transform(names, name -> new SqlIdentifier(name, POS)), POS); } /** @see #dispatch */ @@ -500,7 +489,7 @@ public class RelToSqlConverter extends SqlImplementor final SqlNodeList subsetList = new SqlNodeList(POS); for (Map.Entry<String, SortedSet<String>> entry : e.getSubsets().entrySet()) { SqlNode left = new SqlIdentifier(entry.getKey(), POS); - List<SqlNode> rhl = Lists.newArrayList(); + List<SqlNode> rhl = new ArrayList<>(); for (String right : entry.getValue()) { rhl.add(new SqlIdentifier(right, POS)); } http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java b/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java index 594cd3c..6508525 100644 --- a/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java +++ b/core/src/main/java/org/apache/calcite/rel/rel2sql/SqlImplementor.java @@ -72,7 +72,6 @@ import org.apache.calcite.util.TimeString; import org.apache.calcite.util.TimestampString; import org.apache.calcite.util.Util; -import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -90,6 +89,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Objects; import java.util.Set; /** @@ -106,7 +106,7 @@ public abstract class SqlImplementor { protected final Map<CorrelationId, Context> correlTableMap = new HashMap<>(); protected SqlImplementor(SqlDialect dialect) { - this.dialect = Preconditions.checkNotNull(dialect); + this.dialect = Objects.requireNonNull(dialect); } public abstract Result visitChild(int i, RelNode e); @@ -730,7 +730,7 @@ public abstract class SqlImplementor { } return op.createCall( aggCall.isDistinct() ? SqlSelectKeyword.DISTINCT.symbol(POS) : null, - POS, operands.toArray(new SqlNode[operands.size()])); + POS, operands.toArray(new SqlNode[0])); } /** Converts a collation to an ORDER BY item. */ @@ -1067,7 +1067,7 @@ public abstract class SqlImplementor { return this; } else { return new Result(node, clauses, neededAlias, neededType, - ImmutableMap.<String, RelDataType>of(neededAlias, neededType)); + ImmutableMap.of(neededAlias, neededType)); } } } http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java b/core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java index f9dd2f4..2753c44 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java @@ -214,7 +214,7 @@ public abstract class AbstractMaterializedViewRule extends RelOptRule { final List<RelOptMaterialization> materializations = (planner instanceof VolcanoPlanner) ? ((VolcanoPlanner) planner).getMaterializations() - : ImmutableList.<RelOptMaterialization>of(); + : ImmutableList.of(); if (!materializations.isEmpty()) { // 1. Explore query plan to recognize whether preconditions to @@ -1365,7 +1365,7 @@ public abstract class AbstractMaterializedViewRule extends RelOptRule { // if not present if (topViewProject == null) { topViewProject = (Project) relBuilder.push(viewNode) - .project(relBuilder.fields(), ImmutableList.<String>of(), true).build(); + .project(relBuilder.fields(), ImmutableList.of(), true).build(); } // Generate result rewriting @@ -1836,8 +1836,8 @@ public abstract class AbstractMaterializedViewRule extends RelOptRule { return ImmutableList.of(); } List<BiMap<RelTableRef, RelTableRef>> result = - ImmutableList.<BiMap<RelTableRef, RelTableRef>>of( - HashBiMap.<RelTableRef, RelTableRef>create()); + ImmutableList.of( + HashBiMap.create()); for (Entry<RelTableRef, Collection<RelTableRef>> e : multiMapTables.asMap().entrySet()) { if (e.getValue().size() == 1) { // Only one reference, we can just add it to every map @@ -1854,7 +1854,7 @@ public abstract class AbstractMaterializedViewRule extends RelOptRule { for (BiMap<RelTableRef, RelTableRef> m : result) { if (!m.containsValue(target)) { final BiMap<RelTableRef, RelTableRef> newM = - HashBiMap.<RelTableRef, RelTableRef>create(m); + HashBiMap.create(m); newM.put(e.getKey(), target); newResult.add(newM); } @@ -1937,7 +1937,7 @@ public abstract class AbstractMaterializedViewRule extends RelOptRule { residualPreds.add(e); } } - return ImmutableTriple.<RexNode, RexNode, RexNode>of( + return ImmutableTriple.of( RexUtil.composeConjunction(rexBuilder, equiColumnsPreds, false), RexUtil.composeConjunction(rexBuilder, rangePreds, false), RexUtil.composeConjunction(rexBuilder, residualPreds, false)); @@ -1968,7 +1968,7 @@ public abstract class AbstractMaterializedViewRule extends RelOptRule { Multimap<RexTableInputRef, RexTableInputRef> compensationEquiColumns) { // Create UK-FK graph with view tables final DirectedGraph<RelTableRef, Edge> graph = - DefaultDirectedGraph.create(Edge.FACTORY); + DefaultDirectedGraph.create(Edge::new); final Multimap<List<String>, RelTableRef> tableVNameToTableRefs = ArrayListMultimap.create(); final Set<RelTableRef> extraTableRefs = new HashSet<>(); @@ -2117,8 +2117,8 @@ public abstract class AbstractMaterializedViewRule extends RelOptRule { return null; } - return ImmutableTriple.<RexNode, RexNode, RexNode>of( - compensationColumnsEquiPred, compensationRangePred, compensationResidualPred); + return ImmutableTriple.of(compensationColumnsEquiPred, + compensationRangePred, compensationResidualPred); } /** @@ -2625,12 +2625,6 @@ public abstract class AbstractMaterializedViewRule extends RelOptRule { /** Edge for graph */ private static class Edge extends DefaultEdge { - public static final DirectedGraph.EdgeFactory<RelTableRef, Edge> FACTORY = - new DirectedGraph.EdgeFactory<RelTableRef, Edge>() { - public Edge createEdge(RelTableRef source, RelTableRef target) { - return new Edge(source, target); - } - }; final Multimap<RexTableInputRef, RexTableInputRef> equiColumns = ArrayListMultimap.create(); http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/AggregateExpandDistinctAggregatesRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/AggregateExpandDistinctAggregatesRule.java b/core/src/main/java/org/apache/calcite/rel/rules/AggregateExpandDistinctAggregatesRule.java index 918a4db..d150989 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/AggregateExpandDistinctAggregatesRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/AggregateExpandDistinctAggregatesRule.java @@ -308,7 +308,7 @@ public final class AggregateExpandDistinctAggregatesRule extends RelOptRule { // Add aggregate A (see the reference example above), the top aggregate // to handle the rest of the aggregation that the bottom aggregate hasn't handled - final List<AggregateCall> topAggregateCalls = Lists.newArrayList(); + final List<AggregateCall> topAggregateCalls = new ArrayList<>(); // Use the remapped arguments for the (non)distinct aggregate calls int nonDistinctAggCallProcessedSoFar = 0; for (AggregateCall aggCall : originalAggCalls) { @@ -707,7 +707,7 @@ public final class AggregateExpandDistinctAggregatesRule extends RelOptRule { // where {f0, f1, ...} are the GROUP BY fields. final List<RelDataTypeField> distinctFields = relBuilder.peek().getRowType().getFieldList(); - final List<RexNode> conditions = Lists.newArrayList(); + final List<RexNode> conditions = new ArrayList<>(); for (i = 0; i < groupAndIndicatorCount; ++i) { // null values form its own group // use "is not distinct from" so that the join condition @@ -845,7 +845,7 @@ public final class AggregateExpandDistinctAggregatesRule extends RelOptRule { relBuilder.push( aggregate.copy(aggregate.getTraitSet(), relBuilder.build(), false, ImmutableBitSet.range(projects.size()), - null, ImmutableList.<AggregateCall>of())); + null, ImmutableList.of())); return relBuilder; } } http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/AggregateExtractProjectRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/AggregateExtractProjectRule.java b/core/src/main/java/org/apache/calcite/rel/rules/AggregateExtractProjectRule.java index 0e4f76d..23e1425 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/AggregateExtractProjectRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/AggregateExtractProjectRule.java @@ -24,7 +24,6 @@ import org.apache.calcite.rel.core.Aggregate; import org.apache.calcite.rel.core.AggregateCall; import org.apache.calcite.rel.core.Project; import org.apache.calcite.rex.RexNode; -import org.apache.calcite.runtime.PredicateImpl; import org.apache.calcite.tools.RelBuilder; import org.apache.calcite.tools.RelBuilderFactory; import org.apache.calcite.util.ImmutableBitSet; @@ -32,16 +31,12 @@ import org.apache.calcite.util.mapping.Mapping; import org.apache.calcite.util.mapping.MappingType; import org.apache.calcite.util.mapping.Mappings; -import com.google.common.base.Function; -import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import java.util.ArrayList; import java.util.List; -import javax.annotation.Nullable; - /** * Rule to extract a {@link org.apache.calcite.rel.core.Project} * from an {@link org.apache.calcite.rel.core.Aggregate} @@ -55,16 +50,6 @@ import javax.annotation.Nullable; */ public class AggregateExtractProjectRule extends RelOptRule { - /** Predicate that prevents matching against an {@code Aggregate} whose input - * is already a {@code Project}. This will prevent this rule firing - * repeatedly. */ - private static final Predicate<RelNode> PREDICATE = - new PredicateImpl<RelNode>() { - public boolean test(@Nullable RelNode relNode) { - return !(relNode instanceof Project); - } - }; - /** * Creates an AggregateExtractProjectRule. * @@ -74,7 +59,11 @@ public class AggregateExtractProjectRule extends RelOptRule { Class<? extends Aggregate> aggregateClass, Class<? extends RelNode> inputClass, RelBuilderFactory relBuilderFactory) { - this(operand(aggregateClass, operand(inputClass, null, PREDICATE, any())), + // Predicate prevents matching against an Aggregate whose input + // is already a Project. Prevents this rule firing repeatedly. + this( + operand(aggregateClass, + operandJ(inputClass, null, r -> !(r instanceof Project), any())), relBuilderFactory); } @@ -119,11 +108,7 @@ public class AggregateExtractProjectRule extends RelOptRule { final ImmutableList<ImmutableBitSet> newGroupSets = ImmutableList.copyOf( Iterables.transform(aggregate.getGroupSets(), - new Function<ImmutableBitSet, ImmutableBitSet>() { - public ImmutableBitSet apply(ImmutableBitSet input) { - return Mappings.apply(mapping, input); - } - })); + bitSet -> Mappings.apply(mapping, bitSet))); final List<RelBuilder.AggCall> newAggCallList = new ArrayList<>(); for (AggregateCall aggCall : aggregate.getAggCallList()) { final ImmutableList<RexNode> args = http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/AggregateFilterTransposeRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/AggregateFilterTransposeRule.java b/core/src/main/java/org/apache/calcite/rel/rules/AggregateFilterTransposeRule.java index 6e9e508..5c0e531 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/AggregateFilterTransposeRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/AggregateFilterTransposeRule.java @@ -35,10 +35,9 @@ import org.apache.calcite.tools.RelBuilderFactory; import org.apache.calcite.util.ImmutableBitSet; import org.apache.calcite.util.mapping.Mappings; -import com.google.common.base.Function; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; +import java.util.ArrayList; import java.util.List; /** @@ -97,11 +96,7 @@ public class AggregateFilterTransposeRule extends RelOptRule { aggregate.copy(aggregate.getTraitSet(), input, false, newGroupSet, null, aggregate.getAggCallList()); final Mappings.TargetMapping mapping = Mappings.target( - new Function<Integer, Integer>() { - public Integer apply(Integer a0) { - return newGroupSet.indexOf(a0); - } - }, + newGroupSet::indexOf, input.getRowType().getFieldCount(), newGroupSet.cardinality()); final RexNode newCondition = @@ -134,7 +129,7 @@ public class AggregateFilterTransposeRule extends RelOptRule { } newGroupingSets = newGroupingSetsBuilder.build(); } - final List<AggregateCall> topAggCallList = Lists.newArrayList(); + final List<AggregateCall> topAggCallList = new ArrayList<>(); int i = newGroupSet.cardinality(); for (AggregateCall aggregateCall : aggregate.getAggCallList()) { final SqlAggFunction rollup = http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/AggregateJoinTransposeRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/AggregateJoinTransposeRule.java b/core/src/main/java/org/apache/calcite/rel/rules/AggregateJoinTransposeRule.java index 28c58f3..e841952 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/AggregateJoinTransposeRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/AggregateJoinTransposeRule.java @@ -45,16 +45,14 @@ import org.apache.calcite.util.Util; import org.apache.calcite.util.mapping.Mapping; import org.apache.calcite.util.mapping.Mappings; -import com.google.common.base.Function; -import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; import java.util.ArrayList; import java.util.BitSet; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.SortedMap; import java.util.TreeMap; @@ -80,8 +78,10 @@ public class AggregateJoinTransposeRule extends RelOptRule { Class<? extends Join> joinClass, RelBuilderFactory relBuilderFactory, boolean allowFunctions) { super( - operand(aggregateClass, null, Aggregate.IS_SIMPLE, - operand(joinClass, any())), relBuilderFactory, null); + operandJ(aggregateClass, null, + aggregate -> aggregate.getGroupType() == Aggregate.Group.SIMPLE, + operand(joinClass, any())), + relBuilderFactory, null); this.allowFunctions = allowFunctions; } @@ -167,9 +167,9 @@ public class AggregateJoinTransposeRule extends RelOptRule { aggregateColumns.union(joinColumns); // Split join condition - final List<Integer> leftKeys = Lists.newArrayList(); - final List<Integer> rightKeys = Lists.newArrayList(); - final List<Boolean> filterNulls = Lists.newArrayList(); + final List<Integer> leftKeys = new ArrayList<>(); + final List<Integer> rightKeys = new ArrayList<>(); + final List<Boolean> filterNulls = new ArrayList<>(); RexNode nonEquiConj = RelOptUtil.splitJoinCondition(join.getLeft(), join.getRight(), join.getCondition(), leftKeys, rightKeys, filterNulls); @@ -237,7 +237,7 @@ public class AggregateJoinTransposeRule extends RelOptRule { for (Ord<AggregateCall> aggCall : Ord.zip(aggregate.getAggCallList())) { final SqlAggFunction aggregation = aggCall.e.getAggregation(); final SqlSplittableAggFunction splitter = - Preconditions.checkNotNull( + Objects.requireNonNull( aggregation.unwrap(SqlSplittableAggFunction.class)); if (!aggCall.e.getArgList().isEmpty() && fieldSet.contains(ImmutableBitSet.of(aggCall.e.getArgList()))) { @@ -268,7 +268,7 @@ public class AggregateJoinTransposeRule extends RelOptRule { for (Ord<AggregateCall> aggCall : Ord.zip(aggregate.getAggCallList())) { final SqlAggFunction aggregation = aggCall.e.getAggregation(); final SqlSplittableAggFunction splitter = - Preconditions.checkNotNull( + Objects.requireNonNull( aggregation.unwrap(SqlSplittableAggFunction.class)); final AggregateCall call1; if (fieldSet.contains(ImmutableBitSet.of(aggCall.e.getArgList()))) { @@ -303,11 +303,7 @@ public class AggregateJoinTransposeRule extends RelOptRule { // Update condition final Mapping mapping = (Mapping) Mappings.target( - new Function<Integer, Integer>() { - public Integer apply(Integer a0) { - return map.get(a0); - } - }, + map::get, join.getRowType().getFieldCount(), belowOffset); final RexNode newCondition = @@ -329,7 +325,7 @@ public class AggregateJoinTransposeRule extends RelOptRule { for (Ord<AggregateCall> aggCall : Ord.zip(aggregate.getAggCallList())) { final SqlAggFunction aggregation = aggCall.e.getAggregation(); final SqlSplittableAggFunction splitter = - Preconditions.checkNotNull( + Objects.requireNonNull( aggregation.unwrap(SqlSplittableAggFunction.class)); final Integer leftSubTotal = sides.get(0).split.get(aggCall.i); final Integer rightSubTotal = sides.get(1).split.get(aggCall.i); @@ -425,15 +421,13 @@ public class AggregateJoinTransposeRule extends RelOptRule { * that is a view of a list. */ private static <E> SqlSplittableAggFunction.Registry<E> registry( final List<E> list) { - return new SqlSplittableAggFunction.Registry<E>() { - public int register(E e) { - int i = list.indexOf(e); - if (i < 0) { - i = list.size(); - list.add(e); - } - return i; + return e -> { + int i = list.indexOf(e); + if (i < 0) { + i = list.size(); + list.add(e); } + return i; }; } http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/AggregateProjectMergeRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/AggregateProjectMergeRule.java b/core/src/main/java/org/apache/calcite/rel/rules/AggregateProjectMergeRule.java index e7ddd58..c5ec515 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/AggregateProjectMergeRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/AggregateProjectMergeRule.java @@ -31,8 +31,8 @@ import org.apache.calcite.tools.RelBuilderFactory; import org.apache.calcite.util.ImmutableBitSet; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -73,7 +73,7 @@ public class AggregateProjectMergeRule extends RelOptRule { public static RelNode apply(RelOptRuleCall call, Aggregate aggregate, Project project) { - final List<Integer> newKeys = Lists.newArrayList(); + final List<Integer> newKeys = new ArrayList<>(); final Map<Integer, Integer> map = new HashMap<>(); for (int key : aggregate.getGroupSet()) { final RexNode rex = project.getProjects().get(key); @@ -131,7 +131,7 @@ public class AggregateProjectMergeRule extends RelOptRule { final RelBuilder relBuilder = call.builder(); relBuilder.push(newAggregate); if (!newKeys.equals(newGroupSet.asList())) { - final List<Integer> posList = Lists.newArrayList(); + final List<Integer> posList = new ArrayList<>(); for (int newKey : newKeys) { posList.add(newGroupSet.indexOf(newKey)); } http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/AggregateProjectPullUpConstantsRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/AggregateProjectPullUpConstantsRule.java b/core/src/main/java/org/apache/calcite/rel/rules/AggregateProjectPullUpConstantsRule.java index eda2b20..8686db2 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/AggregateProjectPullUpConstantsRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/AggregateProjectPullUpConstantsRule.java @@ -87,7 +87,7 @@ public class AggregateProjectPullUpConstantsRule extends RelOptRule { Class<? extends RelNode> inputClass, RelBuilderFactory relBuilderFactory, String description) { super( - operand(aggregateClass, null, Aggregate.IS_SIMPLE, + operandJ(aggregateClass, null, Aggregate::isSimple, operand(inputClass, any())), relBuilderFactory, description); } http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/AggregateReduceFunctionsRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/AggregateReduceFunctionsRule.java b/core/src/main/java/org/apache/calcite/rel/rules/AggregateReduceFunctionsRule.java index e65b6a1..8bdd6c1 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/AggregateReduceFunctionsRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/AggregateReduceFunctionsRule.java @@ -42,12 +42,11 @@ import org.apache.calcite.util.ImmutableIntList; import org.apache.calcite.util.Util; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -154,10 +153,10 @@ public class AggregateReduceFunctionsRule extends RelOptRule { final int groupCount = oldAggRel.getGroupCount(); final int indicatorCount = oldAggRel.getIndicatorCount(); - final List<AggregateCall> newCalls = Lists.newArrayList(); - final Map<AggregateCall, RexNode> aggCallMapping = Maps.newHashMap(); + final List<AggregateCall> newCalls = new ArrayList<>(); + final Map<AggregateCall, RexNode> aggCallMapping = new HashMap<>(); - final List<RexNode> projList = Lists.newArrayList(); + final List<RexNode> projList = new ArrayList<>(); // pass through group key (+ indicators if present) for (int i = 0; i < groupCount + indicatorCount; ++i) { @@ -187,7 +186,7 @@ public class AggregateReduceFunctionsRule extends RelOptRule { relBuilder.project(inputExprs, CompositeList.of( relBuilder.peek().getRowType().getFieldNames(), - Collections.<String>nCopies(extraArgCount, null))); + Collections.nCopies(extraArgCount, null))); } newAggregateRel(relBuilder, oldAggRel, newCalls); newCalcRel(relBuilder, oldAggRel.getRowType(), projList); http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/AggregateStarTableRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/AggregateStarTableRule.java b/core/src/main/java/org/apache/calcite/rel/rules/AggregateStarTableRule.java index f000d39..f1b6d6e 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/AggregateStarTableRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/AggregateStarTableRule.java @@ -48,8 +48,8 @@ import org.apache.calcite.util.Pair; import org.apache.calcite.util.mapping.AbstractSourceMapping; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; +import java.util.ArrayList; import java.util.List; /** @@ -62,14 +62,14 @@ import java.util.List; public class AggregateStarTableRule extends RelOptRule { public static final AggregateStarTableRule INSTANCE = new AggregateStarTableRule( - operand(Aggregate.class, null, Aggregate.IS_SIMPLE, + operandJ(Aggregate.class, null, Aggregate::isSimple, some(operand(StarTable.StarTableScan.class, none()))), RelFactories.LOGICAL_BUILDER, "AggregateStarTableRule"); public static final AggregateStarTableRule INSTANCE2 = new AggregateStarTableRule( - operand(Aggregate.class, null, Aggregate.IS_SIMPLE, + operandJ(Aggregate.class, null, Aggregate::isSimple, operand(Project.class, operand(StarTable.StarTableScan.class, none()))), RelFactories.LOGICAL_BUILDER, @@ -164,7 +164,7 @@ public class AggregateStarTableRule extends RelOptRule { + aggregate.getGroupSet()); } assert tileKey.dimensions.contains(aggregate.getGroupSet()); - final List<AggregateCall> aggCalls = Lists.newArrayList(); + final List<AggregateCall> aggCalls = new ArrayList<>(); ImmutableBitSet.Builder groupSet = ImmutableBitSet.builder(); for (int key : aggregate.getGroupSet()) { groupSet.set(tileKey.dimensions.indexOf(key)); @@ -242,7 +242,7 @@ public class AggregateStarTableRule extends RelOptRule { // Second, try to satisfy the aggregation based on group set columns. tryGroup: { - List<Integer> newArgs = Lists.newArrayList(); + List<Integer> newArgs = new ArrayList<>(); for (Integer arg : aggregateCall.getArgList()) { int z = tileKey.dimensions.indexOf(arg); if (z < 0) { http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/AggregateUnionAggregateRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/AggregateUnionAggregateRule.java b/core/src/main/java/org/apache/calcite/rel/rules/AggregateUnionAggregateRule.java index a15d74a..f65bb7f 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/AggregateUnionAggregateRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/AggregateUnionAggregateRule.java @@ -77,7 +77,7 @@ public class AggregateUnionAggregateRule extends RelOptRule { RelBuilderFactory relBuilderFactory, String desc) { super( - operand(aggregateClass, null, Aggregate.IS_SIMPLE, + operandJ(aggregateClass, null, Aggregate::isSimple, operand(unionClass, operand(firstUnionInputClass, any()), operand(secondUnionInputClass, any()))), http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/AggregateUnionTransposeRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/AggregateUnionTransposeRule.java b/core/src/main/java/org/apache/calcite/rel/rules/AggregateUnionTransposeRule.java index abc5fbe..2372205 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/AggregateUnionTransposeRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/AggregateUnionTransposeRule.java @@ -39,8 +39,8 @@ import org.apache.calcite.tools.RelBuilder; import org.apache.calcite.tools.RelBuilderFactory; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; +import java.util.ArrayList; import java.util.IdentityHashMap; import java.util.List; import java.util.Map; @@ -147,7 +147,7 @@ public class AggregateUnionTransposeRule extends RelOptRule { private List<AggregateCall> transformAggCalls(RelNode input, int groupCount, List<AggregateCall> origCalls) { - final List<AggregateCall> newCalls = Lists.newArrayList(); + final List<AggregateCall> newCalls = new ArrayList<>(); for (Ord<AggregateCall> ord : Ord.zip(origCalls)) { final AggregateCall origCall = ord.e; if (origCall.isDistinct() http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/AggregateValuesRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/AggregateValuesRule.java b/core/src/main/java/org/apache/calcite/rel/rules/AggregateValuesRule.java index db31937..d61cb95 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/AggregateValuesRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/AggregateValuesRule.java @@ -28,7 +28,6 @@ import org.apache.calcite.tools.RelBuilder; import org.apache.calcite.tools.RelBuilderFactory; import org.apache.calcite.util.Util; -import com.google.common.base.Predicates; import com.google.common.collect.ImmutableList; import java.math.BigDecimal; @@ -64,8 +63,10 @@ public class AggregateValuesRule extends RelOptRule { */ public AggregateValuesRule(RelBuilderFactory relBuilderFactory) { super( - operand(Aggregate.class, null, Predicates.not(Aggregate.IS_NOT_GRAND_TOTAL), - operand(Values.class, null, Values.IS_EMPTY, none())), + operandJ(Aggregate.class, null, + aggregate -> aggregate.getGroupCount() == 0, + operandJ(Values.class, null, + values -> values.getTuples().isEmpty(), none())), relBuilderFactory, null); } http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/CalcRelSplitter.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/CalcRelSplitter.java b/core/src/main/java/org/apache/calcite/rel/rules/CalcRelSplitter.java index f3b03a9..51826bf 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/CalcRelSplitter.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/CalcRelSplitter.java @@ -126,7 +126,7 @@ public abstract class CalcRelSplitter { // expressions to the left. assert program.isValid(Litmus.THROW, null); final List<RexNode> exprList = program.getExprList(); - final RexNode[] exprs = exprList.toArray(new RexNode[exprList.size()]); + final RexNode[] exprs = exprList.toArray(new RexNode[0]); assert !RexUtil.containComplexExprs(exprList); // Figure out what level each expression belongs to. http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/DateRangeRules.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/DateRangeRules.java b/core/src/main/java/org/apache/calcite/rel/rules/DateRangeRules.java index fac9f02..ae51560 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/DateRangeRules.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/DateRangeRules.java @@ -30,7 +30,6 @@ import org.apache.calcite.rex.RexNode; import org.apache.calcite.rex.RexShuttle; import org.apache.calcite.rex.RexUtil; import org.apache.calcite.rex.RexVisitorImpl; -import org.apache.calcite.runtime.PredicateImpl; import org.apache.calcite.runtime.SqlFunctions; import org.apache.calcite.sql.SqlBinaryOperator; import org.apache.calcite.sql.SqlKind; @@ -44,8 +43,6 @@ import org.apache.calcite.util.TimestampWithTimeZoneString; import org.apache.calcite.util.Util; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Preconditions; -import com.google.common.base.Predicate; import com.google.common.collect.BoundType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -64,8 +61,10 @@ import java.util.EnumSet; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.TimeZone; +import java.util.function.Predicate; /** * Collection of planner rules that convert @@ -92,17 +91,15 @@ public abstract class DateRangeRules { private DateRangeRules() {} private static final Predicate<Filter> FILTER_PREDICATE = - new PredicateImpl<Filter>() { - @Override public boolean test(Filter filter) { - try (ExtractFinder finder = ExtractFinder.THREAD_INSTANCES.get()) { - assert finder.timeUnits.isEmpty() && finder.opKinds.isEmpty() - : "previous user did not clean up"; - filter.getCondition().accept(finder); - // bail out if there is no EXTRACT of YEAR, or call to FLOOR or CEIL - return finder.timeUnits.contains(TimeUnitRange.YEAR) - || finder.opKinds.contains(SqlKind.FLOOR) - || finder.opKinds.contains(SqlKind.CEIL); - } + filter -> { + try (ExtractFinder finder = ExtractFinder.THREAD_INSTANCES.get()) { + assert finder.timeUnits.isEmpty() && finder.opKinds.isEmpty() + : "previous user did not clean up"; + filter.getCondition().accept(finder); + // bail out if there is no EXTRACT of YEAR, or call to FLOOR or CEIL + return finder.timeUnits.contains(TimeUnitRange.YEAR) + || finder.opKinds.contains(SqlKind.FLOOR) + || finder.opKinds.contains(SqlKind.CEIL); } }; @@ -174,7 +171,7 @@ public abstract class DateRangeRules { @SuppressWarnings("WeakerAccess") public static class FilterDateRangeRule extends RelOptRule { public FilterDateRangeRule(RelBuilderFactory relBuilderFactory) { - super(operand(Filter.class, null, FILTER_PREDICATE, any()), + super(operandJ(Filter.class, null, FILTER_PREDICATE, any()), relBuilderFactory, "FilterDateRangeRule"); } @@ -205,11 +202,7 @@ public abstract class DateRangeRules { private final Set<SqlKind> opKinds = EnumSet.noneOf(SqlKind.class); private static final ThreadLocal<ExtractFinder> THREAD_INSTANCES = - new ThreadLocal<ExtractFinder>() { - @Override protected ExtractFinder initialValue() { - return new ExtractFinder(); - } - }; + ThreadLocal.withInitial(ExtractFinder::new); private ExtractFinder() { super(true); @@ -253,12 +246,12 @@ public abstract class DateRangeRules { ExtractShuttle(RexBuilder rexBuilder, TimeUnitRange timeUnit, Map<String, RangeSet<Calendar>> operandRanges, ImmutableSortedSet<TimeUnitRange> timeUnitRanges, String timeZone) { - this.rexBuilder = Preconditions.checkNotNull(rexBuilder); - this.timeUnit = Preconditions.checkNotNull(timeUnit); + this.rexBuilder = Objects.requireNonNull(rexBuilder); + this.timeUnit = Objects.requireNonNull(timeUnit); Bug.upgrade("Change type to Map<RexNode, RangeSet<Calendar>> when" + " [CALCITE-1367] is fixed"); - this.operandRanges = Preconditions.checkNotNull(operandRanges); - this.timeUnitRanges = Preconditions.checkNotNull(timeUnitRanges); + this.operandRanges = Objects.requireNonNull(operandRanges); + this.timeUnitRanges = Objects.requireNonNull(timeUnitRanges); this.timeZone = timeZone; } http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/FilterAggregateTransposeRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/FilterAggregateTransposeRule.java b/core/src/main/java/org/apache/calcite/rel/rules/FilterAggregateTransposeRule.java index f65d874..9501e74 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/FilterAggregateTransposeRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/FilterAggregateTransposeRule.java @@ -34,8 +34,8 @@ import org.apache.calcite.tools.RelBuilderFactory; import org.apache.calcite.util.ImmutableBitSet; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; +import java.util.ArrayList; import java.util.List; /** @@ -103,8 +103,8 @@ public class FilterAggregateTransposeRule extends RelOptRule { adjustments[j] = i - j; j++; } - final List<RexNode> pushedConditions = Lists.newArrayList(); - final List<RexNode> remainingConditions = Lists.newArrayList(); + final List<RexNode> pushedConditions = new ArrayList<>(); + final List<RexNode> remainingConditions = new ArrayList<>(); for (RexNode condition : conditions) { ImmutableBitSet rCols = RelOptUtil.InputFinder.bits(condition); http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/FilterJoinRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/FilterJoinRule.java b/core/src/main/java/org/apache/calcite/rel/rules/FilterJoinRule.java index 0bb3830..9d06e50 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/FilterJoinRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/FilterJoinRule.java @@ -33,14 +33,15 @@ import org.apache.calcite.rex.RexUtil; import org.apache.calcite.tools.RelBuilder; import org.apache.calcite.tools.RelBuilderFactory; -import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; import com.google.common.collect.Sets; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Objects; + +import static org.apache.calcite.plan.RelOptUtil.conjunctions; /** * Planner rule that pushes filters above and @@ -49,12 +50,7 @@ import java.util.List; public abstract class FilterJoinRule extends RelOptRule { /** Predicate that always returns true. With this predicate, every filter * will be pushed into the ON clause. */ - public static final Predicate TRUE_PREDICATE = - new Predicate() { - public boolean apply(Join join, JoinRelType joinType, RexNode exp) { - return true; - } - }; + public static final Predicate TRUE_PREDICATE = (join, joinType, exp) -> true; /** Rule that pushes predicates from a Filter into the Join below them. */ public static final FilterJoinRule FILTER_ON_JOIN = @@ -90,7 +86,7 @@ public abstract class FilterJoinRule extends RelOptRule { boolean smart, RelBuilderFactory relBuilderFactory, Predicate predicate) { super(operand, relBuilderFactory, "FilterJoinRule:" + id); this.smart = smart; - this.predicate = Preconditions.checkNotNull(predicate); + this.predicate = Objects.requireNonNull(predicate); } /** @@ -136,8 +132,8 @@ public abstract class FilterJoinRule extends RelOptRule { final List<RexNode> aboveFilters = filter != null - ? RelOptUtil.conjunctions(filter.getCondition()) - : Lists.<RexNode>newArrayList(); + ? conjunctions(filter.getCondition()) + : new ArrayList<>(); final ImmutableList<RexNode> origAboveFilters = ImmutableList.copyOf(aboveFilters); http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/FilterTableScanRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/FilterTableScanRule.java b/core/src/main/java/org/apache/calcite/rel/rules/FilterTableScanRule.java index 1a52eec..7e597b0 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/FilterTableScanRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/FilterTableScanRule.java @@ -27,7 +27,6 @@ import org.apache.calcite.rel.core.RelFactories; import org.apache.calcite.rel.core.TableScan; import org.apache.calcite.rex.RexNode; import org.apache.calcite.rex.RexUtil; -import org.apache.calcite.runtime.PredicateImpl; import org.apache.calcite.schema.FilterableTable; import org.apache.calcite.schema.ProjectableFilterableTable; import org.apache.calcite.tools.RelBuilderFactory; @@ -35,7 +34,6 @@ import org.apache.calcite.util.ImmutableIntList; import org.apache.calcite.util.mapping.Mapping; import org.apache.calcite.util.mapping.Mappings; -import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; /** @@ -52,22 +50,17 @@ import com.google.common.collect.ImmutableList; * @see org.apache.calcite.rel.rules.ProjectTableScanRule */ public abstract class FilterTableScanRule extends RelOptRule { - public static final Predicate<TableScan> PREDICATE = - new PredicateImpl<TableScan>() { - public boolean test(TableScan scan) { - // We can only push filters into a FilterableTable or - // ProjectableFilterableTable. - final RelOptTable table = scan.getTable(); - return table.unwrap(FilterableTable.class) != null - || table.unwrap(ProjectableFilterableTable.class) != null; - } - }; + @SuppressWarnings("Guava") + @Deprecated // to be removed before 2.0 + public static final com.google.common.base.Predicate<TableScan> PREDICATE = + FilterTableScanRule::test; /** Rule that matches Filter on TableScan. */ public static final FilterTableScanRule INSTANCE = new FilterTableScanRule( operand(Filter.class, - operand(TableScan.class, null, PREDICATE, none())), + operandJ(TableScan.class, null, FilterTableScanRule::test, + none())), RelFactories.LOGICAL_BUILDER, "FilterTableScanRule") { public void onMatch(RelOptRuleCall call) { @@ -82,7 +75,8 @@ public abstract class FilterTableScanRule extends RelOptRule { new FilterTableScanRule( operand(Filter.class, operand(EnumerableInterpreter.class, - operand(TableScan.class, null, PREDICATE, none()))), + operandJ(TableScan.class, null, FilterTableScanRule::test, + none()))), RelFactories.LOGICAL_BUILDER, "FilterTableScanRule:interpreter") { public void onMatch(RelOptRuleCall call) { @@ -107,6 +101,14 @@ public abstract class FilterTableScanRule extends RelOptRule { //~ Methods ---------------------------------------------------------------- + public static boolean test(TableScan scan) { + // We can only push filters into a FilterableTable or + // ProjectableFilterableTable. + final RelOptTable table = scan.getTable(); + return table.unwrap(FilterableTable.class) != null + || table.unwrap(ProjectableFilterableTable.class) != null; + } + protected void apply(RelOptRuleCall call, Filter filter, TableScan scan) { final ImmutableIntList projects; final ImmutableList.Builder<RexNode> filters = ImmutableList.builder(); http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/JoinAssociateRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/JoinAssociateRule.java b/core/src/main/java/org/apache/calcite/rel/rules/JoinAssociateRule.java index ad6b3c6..b3e9f99 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/JoinAssociateRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/JoinAssociateRule.java @@ -32,8 +32,7 @@ import org.apache.calcite.tools.RelBuilderFactory; import org.apache.calcite.util.ImmutableBitSet; import org.apache.calcite.util.mapping.Mappings; -import com.google.common.collect.Lists; - +import java.util.ArrayList; import java.util.List; /** @@ -119,8 +118,8 @@ public class JoinAssociateRule extends RelOptRule { // Split the condition of topJoin and bottomJoin into a conjunctions. A // condition can be pushed down if it does not use columns from A. - final List<RexNode> top = Lists.newArrayList(); - final List<RexNode> bottom = Lists.newArrayList(); + final List<RexNode> top = new ArrayList<>(); + final List<RexNode> bottom = new ArrayList<>(); JoinPushThroughJoinRule.split(topJoin.getCondition(), aBitSet, top, bottom); JoinPushThroughJoinRule.split(bottomJoin.getCondition(), aBitSet, top, bottom); @@ -134,7 +133,7 @@ public class JoinAssociateRule extends RelOptRule { aCount + bCount + cCount, 0, aCount, bCount, bCount, aCount + bCount, cCount); - final List<RexNode> newBottomList = Lists.newArrayList(); + final List<RexNode> newBottomList = new ArrayList<>(); new RexPermuteInputsShuttle(bottomMapping, relB, relC) .visitList(bottom, newBottomList); RexNode newBottomCondition = http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/JoinProjectTransposeRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/JoinProjectTransposeRule.java b/core/src/main/java/org/apache/calcite/rel/rules/JoinProjectTransposeRule.java index 39b4ef6..6e53ec2 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/JoinProjectTransposeRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/JoinProjectTransposeRule.java @@ -187,7 +187,7 @@ public class JoinProjectTransposeRule extends RelOptRule { JoinRelType.INNER, joinRel.getCluster().getTypeFactory(), null, - Collections.<RelDataTypeField>emptyList()); + Collections.emptyList()); // Create projection expressions, combining the projection expressions // from the projects that feed into the join. For the RHS projection http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/JoinToMultiJoinRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/JoinToMultiJoinRule.java b/core/src/main/java/org/apache/calcite/rel/rules/JoinToMultiJoinRule.java index 90a98bf..52e5ed0 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/JoinToMultiJoinRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/JoinToMultiJoinRule.java @@ -36,9 +36,9 @@ import org.apache.calcite.util.ImmutableIntList; import org.apache.calcite.util.Pair; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -134,8 +134,8 @@ public class JoinToMultiJoinRule extends RelOptRule { // combine the children MultiJoin inputs into an array of inputs // for the new MultiJoin - final List<ImmutableBitSet> projFieldsList = Lists.newArrayList(); - final List<int[]> joinFieldRefCountsList = Lists.newArrayList(); + final List<ImmutableBitSet> projFieldsList = new ArrayList<>(); + final List<int[]> joinFieldRefCountsList = new ArrayList<>(); final List<RelNode> newInputs = combineInputs( origJoin, @@ -147,7 +147,7 @@ public class JoinToMultiJoinRule extends RelOptRule { // combine the outer join information from the left and right // inputs, and include the outer join information from the current // join, if it's a left/right outer join - final List<Pair<JoinRelType, RexNode>> joinSpecs = Lists.newArrayList(); + final List<Pair<JoinRelType, RexNode>> joinSpecs = new ArrayList<>(); combineOuterJoins( origJoin, newInputs, @@ -206,7 +206,7 @@ public class JoinToMultiJoinRule extends RelOptRule { RelNode right, List<ImmutableBitSet> projFieldsList, List<int[]> joinFieldRefCountsList) { - final List<RelNode> newInputs = Lists.newArrayList(); + final List<RelNode> newInputs = new ArrayList<>(); // leave the null generating sides of an outer join intact; don't // pull up those children inputs into the array we're constructing @@ -390,7 +390,7 @@ public class JoinToMultiJoinRule extends RelOptRule { // AND the join condition if this isn't a left or right outer join; // in those cases, the outer join condition is already tracked // separately - final List<RexNode> filters = Lists.newArrayList(); + final List<RexNode> filters = new ArrayList<>(); if ((joinType != JoinRelType.LEFT) && (joinType != JoinRelType.RIGHT)) { filters.add(joinRel.getCondition()); } @@ -481,7 +481,7 @@ public class JoinToMultiJoinRule extends RelOptRule { joinCondition.accept(new InputReferenceCounter(joinCondRefCounts)); // first, make a copy of the ref counters - final Map<Integer, int[]> refCountsMap = Maps.newHashMap(); + final Map<Integer, int[]> refCountsMap = new HashMap<>(); int nInputs = multiJoinInputs.size(); int currInput = 0; for (int[] origRefCounts : origJoinFieldRefCounts) { @@ -532,7 +532,7 @@ public class JoinToMultiJoinRule extends RelOptRule { Join joinRel, RelNode left, RelNode right) { - final List<RexNode> filters = Lists.newArrayList(); + final List<RexNode> filters = new ArrayList<>(); if (right instanceof MultiJoin) { final MultiJoin multiRight = (MultiJoin) right; filters.add( http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/LoptJoinTree.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/LoptJoinTree.java b/core/src/main/java/org/apache/calcite/rel/rules/LoptJoinTree.java index 126659b..5765d69 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/LoptJoinTree.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/LoptJoinTree.java @@ -19,10 +19,9 @@ package org.apache.calcite.rel.rules; import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.core.Join; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; - +import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * Utility class used to store a {@link org.apache.calcite.rel.core.Join} tree @@ -134,7 +133,7 @@ public class LoptJoinTree { } public List<Integer> getTreeOrder() { - List<Integer> treeOrder = Lists.newArrayList(); + List<Integer> treeOrder = new ArrayList<>(); getTreeOrder(treeOrder); return treeOrder; } @@ -157,7 +156,7 @@ public class LoptJoinTree { private final LoptJoinTree parent; protected BinaryTree(LoptJoinTree parent) { - this.parent = Preconditions.checkNotNull(parent); + this.parent = Objects.requireNonNull(parent); } public LoptJoinTree getParent() { @@ -195,8 +194,8 @@ public class LoptJoinTree { public Node(BinaryTree left, BinaryTree right, LoptJoinTree parent) { super(parent); - this.left = Preconditions.checkNotNull(left); - this.right = Preconditions.checkNotNull(right); + this.left = Objects.requireNonNull(left); + this.right = Objects.requireNonNull(right); } public BinaryTree getLeft() { http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/LoptMultiJoin.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/LoptMultiJoin.java b/core/src/main/java/org/apache/calcite/rel/rules/LoptMultiJoin.java index 7d865bf..ba86639 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/LoptMultiJoin.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/LoptMultiJoin.java @@ -34,7 +34,6 @@ import org.apache.calcite.util.ImmutableIntList; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import java.util.ArrayList; import java.util.BitSet; @@ -462,8 +461,8 @@ public class LoptMultiJoin { * references */ private void setJoinFilterRefs() { - fieldsRefByJoinFilter = Maps.newHashMap(); - factorsRefByJoinFilter = Maps.newHashMap(); + fieldsRefByJoinFilter = new HashMap<>(); + factorsRefByJoinFilter = new HashMap<>(); ListIterator<RexNode> filterIter = allJoinFilters.listIterator(); while (filterIter.hasNext()) { RexNode joinFilter = filterIter.next(); http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/LoptOptimizeJoinRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/LoptOptimizeJoinRule.java b/core/src/main/java/org/apache/calcite/rel/rules/LoptOptimizeJoinRule.java index e17ac1e..5a25d63 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/LoptOptimizeJoinRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/LoptOptimizeJoinRule.java @@ -47,8 +47,6 @@ import org.apache.calcite.util.ImmutableIntList; import org.apache.calcite.util.Pair; import org.apache.calcite.util.mapping.IntPair; -import com.google.common.collect.Lists; - import java.util.ArrayList; import java.util.BitSet; import java.util.HashMap; @@ -298,7 +296,7 @@ public class LoptOptimizeJoinRule extends RelOptRule { sortedFactors.addAll(simpleFactors.keySet()); final Map<Integer, Integer> selfJoinPairs = new HashMap<>(); Integer [] factors = - sortedFactors.toArray(new Integer[sortedFactors.size()]); + sortedFactors.toArray(new Integer[0]); for (int i = 0; i < factors.length; i++) { if (repeatedTables.contains(simpleFactors.get(factors[i]))) { continue; @@ -493,7 +491,7 @@ public class LoptOptimizeJoinRule extends RelOptRule { LoptMultiJoin multiJoin, LoptJoinTree joinTree, List<String> fieldNames) { - List<RexNode> newProjExprs = Lists.newArrayList(); + List<RexNode> newProjExprs = new ArrayList<>(); RexBuilder rexBuilder = multiJoin.getMultiJoinRel().getCluster().getRexBuilder(); @@ -1633,7 +1631,7 @@ public class LoptOptimizeJoinRule extends RelOptRule { List<RelDataTypeField> newFields = multiJoin.getJoinFactor(factorToAdd).getRowType().getFieldList(); final int nNewFields = newFields.size(); - List<Pair<RexNode, String>> projects = Lists.newArrayList(); + List<Pair<RexNode, String>> projects = new ArrayList<>(); RexBuilder rexBuilder = currJoinRel.getCluster().getRexBuilder(); RelDataTypeFactory typeFactory = rexBuilder.getTypeFactory(); http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/MaterializedViewFilterScanRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/MaterializedViewFilterScanRule.java b/core/src/main/java/org/apache/calcite/rel/rules/MaterializedViewFilterScanRule.java index b382f52..88e752b 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/MaterializedViewFilterScanRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/MaterializedViewFilterScanRule.java @@ -74,7 +74,7 @@ public class MaterializedViewFilterScanRule extends RelOptRule { List<RelOptMaterialization> materializations = (planner instanceof VolcanoPlanner) ? ((VolcanoPlanner) planner).getMaterializations() - : ImmutableList.<RelOptMaterialization>of(); + : ImmutableList.of(); if (!materializations.isEmpty()) { RelNode root = filter.copy(filter.getTraitSet(), Collections.singletonList((RelNode) scan)); http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/MultiJoinOptimizeBushyRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/MultiJoinOptimizeBushyRule.java b/core/src/main/java/org/apache/calcite/rel/rules/MultiJoinOptimizeBushyRule.java index a482904..bdaeb05 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/MultiJoinOptimizeBushyRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/MultiJoinOptimizeBushyRule.java @@ -36,14 +36,17 @@ import org.apache.calcite.util.Pair; import org.apache.calcite.util.Util; import org.apache.calcite.util.mapping.Mappings; -import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; import java.io.PrintWriter; +import java.util.ArrayList; import java.util.Comparator; import java.util.Iterator; import java.util.List; +import java.util.Objects; + +import static org.apache.calcite.rel.rules.LoptMultiJoin.Edge; +import static org.apache.calcite.util.mapping.Mappings.TargetMapping; /** * Planner rule that finds an approximately optimal ordering for join operators @@ -92,7 +95,7 @@ public class MultiJoinOptimizeBushyRule extends RelOptRule { final LoptMultiJoin multiJoin = new LoptMultiJoin(multiJoinRel); - final List<Vertex> vertexes = Lists.newArrayList(); + final List<Vertex> vertexes = new ArrayList<>(); int x = 0; for (int i = 0; i < multiJoin.getNumJoinFactors(); i++) { final RelNode rel = multiJoin.getJoinFactor(i); @@ -102,7 +105,7 @@ public class MultiJoinOptimizeBushyRule extends RelOptRule { } assert x == multiJoin.getNumTotalFields(); - final List<LoptMultiJoin.Edge> unusedEdges = Lists.newArrayList(); + final List<Edge> unusedEdges = new ArrayList<>(); for (RexNode node : multiJoin.getJoinFilters()) { unusedEdges.add(multiJoin.createEdge(node)); } @@ -124,7 +127,7 @@ public class MultiJoinOptimizeBushyRule extends RelOptRule { } }; - final List<LoptMultiJoin.Edge> usedEdges = Lists.newArrayList(); + final List<Edge> usedEdges = new ArrayList<>(); for (;;) { final int edgeOrdinal = chooseBestEdge(unusedEdges, edgeComparator); if (pw != null) { @@ -174,7 +177,7 @@ public class MultiJoinOptimizeBushyRule extends RelOptRule { .set(v) .build(); - final List<RexNode> conditions = Lists.newArrayList(); + final List<RexNode> conditions = new ArrayList<>(); final Iterator<LoptMultiJoin.Edge> edgeIterator = unusedEdges.iterator(); while (edgeIterator.hasNext()) { LoptMultiJoin.Edge edge = edgeIterator.next(); @@ -223,7 +226,7 @@ public class MultiJoinOptimizeBushyRule extends RelOptRule { } // We have a winner! - List<Pair<RelNode, Mappings.TargetMapping>> relNodes = Lists.newArrayList(); + List<Pair<RelNode, TargetMapping>> relNodes = new ArrayList<>(); for (Vertex vertex : vertexes) { if (vertex instanceof LeafVertex) { LeafVertex leafVertex = (LeafVertex) vertex; @@ -372,7 +375,7 @@ public class MultiJoinOptimizeBushyRule extends RelOptRule { super(id, factors, cost); this.leftFactor = leftFactor; this.rightFactor = rightFactor; - this.conditions = Preconditions.checkNotNull(conditions); + this.conditions = Objects.requireNonNull(conditions); } @Override public String toString() { http://git-wip-us.apache.org/repos/asf/calcite/blob/d59b639d/core/src/main/java/org/apache/calcite/rel/rules/ProjectCorrelateTransposeRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/ProjectCorrelateTransposeRule.java b/core/src/main/java/org/apache/calcite/rel/rules/ProjectCorrelateTransposeRule.java index 67d9402..adeac9e 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/ProjectCorrelateTransposeRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/ProjectCorrelateTransposeRule.java @@ -46,8 +46,7 @@ import java.util.Map; public class ProjectCorrelateTransposeRule extends RelOptRule { public static final ProjectCorrelateTransposeRule INSTANCE = - new ProjectCorrelateTransposeRule( - PushProjector.ExprCondition.TRUE, + new ProjectCorrelateTransposeRule(expr -> true, RelFactories.LOGICAL_BUILDER); //~ Instance fields --------------------------------------------------------
