diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeServiceImpl.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeServiceImpl.java index bed5e6bb98a5..15cf2322a3b7 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeServiceImpl.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeServiceImpl.java @@ -19,9 +19,9 @@ import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.UUID; -import com.google.common.collect.ImmutableMap; import org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox; import org.apache.ignite.internal.processors.query.calcite.exec.rel.Outbox; import org.apache.ignite.internal.processors.query.calcite.message.InboxCloseMessage; @@ -257,7 +257,7 @@ private ExecutionContext baseInboxContext(String nodeId, UUID qryId, long fra null, null), null, - ImmutableMap.of()); + Map.of()); } /** {@inheritDoc} */ diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionServiceImpl.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionServiceImpl.java index f2f2f6dedb14..7e0ed835d831 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionServiceImpl.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExecutionServiceImpl.java @@ -28,7 +28,6 @@ import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.Contexts; import org.apache.calcite.plan.ConventionTraitDef; import org.apache.calcite.plan.RelOptUtil; @@ -307,7 +306,7 @@ private List prepareQuery(PlanningContext ctx) { /** */ private List prepareFragment(PlanningContext ctx) { - return ImmutableList.of(new FragmentPlan(fromJson(ctx, ctx.query()))); + return List.of(new FragmentPlan(fromJson(ctx, ctx.query()))); } /** */ diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/PlannerHelper.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/PlannerHelper.java index 4d53326a6f99..01a57d88ee87 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/PlannerHelper.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/PlannerHelper.java @@ -19,8 +19,8 @@ import java.util.ArrayList; import java.util.List; +import java.util.Set; -import com.google.common.collect.ImmutableSet; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelCollations; import org.apache.calcite.rel.RelNode; @@ -95,7 +95,7 @@ public static IgniteRel optimize(SqlNode sqlNode, IgnitePlanner planner, IgniteL igniteRel = new IgniteProject(igniteRel.getCluster(), desired, igniteRel, projects, root.validatedRowType); } - if (sqlNode.isA(ImmutableSet.of(SqlKind.INSERT, SqlKind.UPDATE, SqlKind.MERGE))) + if (sqlNode.isA(Set.of(SqlKind.INSERT, SqlKind.UPDATE, SqlKind.MERGE))) igniteRel = new FixDependentModifyNodeShuttle().visit(igniteRel); return igniteRel; @@ -207,7 +207,7 @@ private IgniteRel processScan(TableScan scan) { if (scan instanceof IgniteTableScan) return (IgniteRel)scan; - ImmutableSet indexedCols = ImmutableSet.copyOf( + Set indexedCols = Set.copyOf( tbl.getIndex(((AbstractIndexScan)scan).indexName()).collation().getKeys()); spoolNeeded = modifyNode.getUpdateColumnList().stream() diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/ExpressionFactory.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/ExpressionFactory.java index 725595564af0..d48027d37f14 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/ExpressionFactory.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/ExpressionFactory.java @@ -23,7 +23,6 @@ import java.util.function.Predicate; import java.util.function.Supplier; -import com.google.common.collect.ImmutableList; import org.apache.calcite.rel.RelCollation; import org.apache.calcite.rel.RelFieldCollation; import org.apache.calcite.rel.core.AggregateCall; @@ -111,7 +110,7 @@ Supplier>> accumulatorsFactory( * @return Scalar. */ default Scalar scalar(RexNode node, RelDataType type) { - return scalar(ImmutableList.of(node), type); + return scalar(List.of(node), type); } /** diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/ExpressionFactoryImpl.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/ExpressionFactoryImpl.java index eb8260d47c18..adbffafe28dd 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/ExpressionFactoryImpl.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/ExpressionFactoryImpl.java @@ -29,9 +29,6 @@ import java.util.function.Supplier; import java.util.stream.Collectors; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Ordering; -import com.google.common.primitives.Primitives; import org.apache.calcite.DataContext; import org.apache.calcite.adapter.enumerable.EnumUtils; import org.apache.calcite.linq4j.function.Function1; @@ -65,6 +62,7 @@ import org.apache.ignite.internal.processors.query.calcite.type.IgniteTypeFactory; import org.apache.ignite.internal.processors.query.calcite.util.Commons; import org.apache.ignite.internal.processors.query.calcite.util.IgniteMethod; +import org.apache.ignite.internal.processors.query.calcite.util.Primitives; import static org.apache.ignite.internal.util.CollectionUtils.nullOrEmpty; @@ -119,7 +117,8 @@ public ExpressionFactoryImpl(ExecutionContext ctx, IgniteTypeFactory typeFa return null; else if (collation.getFieldCollations().size() == 1) return comparator(collation.getFieldCollations().get(0)); - return Ordering.compound(collation.getFieldCollations() + + return Commons.compoundComparator(collation.getFieldCollations() .stream() .map(this::comparator) .collect(Collectors.toList())); @@ -136,7 +135,7 @@ else if (collation.getFieldCollations().size() == 1) for (int i = 0; i < left.size(); i++) comparators.add(comparator(left.get(i), right.get(i))); - return Ordering.compound(comparators); + return Commons.compoundComparator(comparators); } /** */ @@ -291,7 +290,7 @@ private Scalar compile(Iterable nodes, RelDataType type) { MethodDeclaration decl = Expressions.methodDecl( Modifier.PUBLIC, void.class, IgniteMethod.SCALAR_EXECUTE.method().getName(), - ImmutableList.of(ctx_, in_, out_), builder.toBlock()); + List.of(ctx_, in_, out_), builder.toBlock()); return Commons.compile(Scalar.class, Expressions.toString(List.of(decl), "\n", false)); } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/RexImpTable.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/RexImpTable.java index 93dff877107b..330141db2d34 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/RexImpTable.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/RexImpTable.java @@ -31,7 +31,6 @@ import java.util.function.Supplier; import java.util.stream.Collectors; -import com.google.common.collect.ImmutableList; import org.apache.calcite.adapter.enumerable.EnumUtils; import org.apache.calcite.adapter.enumerable.NullPolicy; import org.apache.calcite.adapter.java.JavaTypeFactory; @@ -1107,7 +1106,7 @@ private static class BinaryImplementor extends AbstractRexCallImplementor { * Types that can be arguments to comparison operators such as {@code <}. */ private static final List COMP_OP_TYPES = - ImmutableList.of( + List.of( Primitive.BYTE, Primitive.CHAR, Primitive.SHORT, @@ -1118,7 +1117,7 @@ private static class BinaryImplementor extends AbstractRexCallImplementor { /** */ private static final List COMPARISON_OPERATORS = - ImmutableList.of( + List.of( SqlStdOperatorTable.LESS_THAN, SqlStdOperatorTable.LESS_THAN_OR_EQUAL, SqlStdOperatorTable.GREATER_THAN, @@ -1126,7 +1125,7 @@ private static class BinaryImplementor extends AbstractRexCallImplementor { /** */ private static final List EQUALS_OPERATORS = - ImmutableList.of( + List.of( SqlStdOperatorTable.EQUALS, SqlStdOperatorTable.NOT_EQUALS); diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/RexToLixTranslator.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/RexToLixTranslator.java index b98073573607..23429089e054 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/RexToLixTranslator.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/RexToLixTranslator.java @@ -25,7 +25,6 @@ import java.util.Map; import java.util.Objects; -import com.google.common.collect.ImmutableList; import org.apache.calcite.adapter.enumerable.PhysType; import org.apache.calcite.adapter.java.JavaTypeFactory; import org.apache.calcite.avatica.util.ByteString; @@ -1181,7 +1180,7 @@ private Result toInnerStorageType(final Result result, final Type storageType) { builder.makeLiteral(fieldName, typeFactory.createType(String.class), true); RexCall accessCall = (RexCall)builder.makeCall( fieldAccess.getType(), SqlStdOperatorTable.STRUCT_ACCESS, - ImmutableList.of(target, rxIndex, rxName)); + List.of(target, rxIndex, rxName)); final Result result2 = accessCall.accept(this); rexWithStorageTypeResultMap.put(key, result2); return result2; diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/agg/AccumulatorsFactory.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/agg/AccumulatorsFactory.java index 462662347cd3..f39b07d9574d 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/agg/AccumulatorsFactory.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/agg/AccumulatorsFactory.java @@ -19,15 +19,9 @@ import java.lang.reflect.Modifier; import java.util.List; -import java.util.concurrent.ExecutionException; import java.util.function.Function; import java.util.function.Supplier; -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheLoader; -import com.google.common.cache.LoadingCache; -import com.google.common.collect.ImmutableList; -import com.google.common.primitives.Primitives; import org.apache.calcite.DataContext; import org.apache.calcite.adapter.enumerable.EnumUtils; import org.apache.calcite.adapter.enumerable.JavaRowFormat; @@ -52,7 +46,8 @@ import org.apache.ignite.internal.processors.query.calcite.prepare.PlanningContext; import org.apache.ignite.internal.processors.query.calcite.type.IgniteTypeFactory; import org.apache.ignite.internal.processors.query.calcite.util.Commons; -import org.apache.ignite.lang.IgniteInternalException; +import org.apache.ignite.internal.processors.query.calcite.util.LocalCache; +import org.apache.ignite.internal.processors.query.calcite.util.Primitives; import org.jetbrains.annotations.NotNull; import static org.apache.ignite.internal.processors.query.calcite.util.TypeUtils.createRowType; @@ -61,8 +56,8 @@ /** */ public class AccumulatorsFactory implements Supplier>> { /** */ - private static final LoadingCache, Function> CACHE = - CacheBuilder.newBuilder().build(CacheLoader.from(AccumulatorsFactory::cast0)); + private static final LocalCache, Function> CACHE = + new LocalCache<>(AccumulatorsFactory::cast0); /** */ public static interface CastFunction extends Function { @@ -79,12 +74,7 @@ private static Function cast(RelDataType from, RelDataType to) { /** */ private static Function cast(Pair types) { - try { - return CACHE.get(types); - } - catch (ExecutionException e) { - throw new IgniteInternalException(e); - } + return CACHE.get(types); } /** */ @@ -114,7 +104,7 @@ private static Function compileCast(IgniteTypeFactory typeFactor RexToLixTranslator.InputGetter getter = new RexToLixTranslator.InputGetterImpl( - ImmutableList.of( + List.of( Pair.of(EnumUtils.convert(in_, Object.class, typeFactory.getJavaClass(from)), PhysTypeImpl.of(typeFactory, rowType, JavaRowFormat.SCALAR, false)))); @@ -130,7 +120,7 @@ private static Function compileCast(IgniteTypeFactory typeFactor list.add(projects.get(0)); MethodDeclaration decl = Expressions.methodDecl( - Modifier.PUBLIC, Object.class, "apply", ImmutableList.of(in_), list.toBlock()); + Modifier.PUBLIC, Object.class, "apply", List.of(in_), list.toBlock()); return Commons.compile(CastFunction.class, Expressions.toString(List.of(decl), "\n", false)); } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJson.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJson.java index 17ce506e21af..b099a30e73a5 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJson.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJson.java @@ -20,6 +20,7 @@ import java.lang.reflect.Modifier; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -29,11 +30,7 @@ import java.util.function.Function; import java.util.stream.Collectors; -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheLoader; -import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import org.apache.calcite.avatica.AvaticaUtils; import org.apache.calcite.avatica.util.TimeUnit; import org.apache.calcite.avatica.util.TimeUnitRange; @@ -103,6 +100,7 @@ import org.apache.ignite.internal.processors.query.calcite.trait.IgniteDistributions; import org.apache.ignite.internal.processors.query.calcite.type.IgniteTypeFactory; import org.apache.ignite.internal.processors.query.calcite.util.Commons; +import org.apache.ignite.internal.processors.query.calcite.util.LocalCache; import org.apache.ignite.internal.util.IgniteUtils; import org.apache.ignite.lang.IgniteException; @@ -126,8 +124,7 @@ public static interface RelFactory extends Function { } /** */ - private static final LoadingCache FACTORIES_CACHE = CacheBuilder.newBuilder() - .build(CacheLoader.from(RelJson::relFactory)); + private static final LocalCache FACTORIES_CACHE = new LocalCache<>(RelJson::relFactory); /** */ private static RelFactory relFactory(String typeName) { @@ -164,15 +161,14 @@ private static RelFactory relFactory(String typeName) { } /** */ - private static final ImmutableMap> ENUM_BY_NAME; + private static final Map> ENUM_BY_NAME; /** */ static { // Build a mapping from enum constants (e.g. LEADING) to the enum // that contains them (e.g. SqlTrimFunction.Flag). If there two // enum constants have the same name, the builder will throw. - final ImmutableMap.Builder> enumByName = - ImmutableMap.builder(); + final Map> enumByName = new HashMap<>(); register(enumByName, JoinConditionType.class); register(enumByName, JoinType.class); @@ -193,14 +189,14 @@ private static RelFactory relFactory(String typeName) { register(enumByName, SqlTrimFunction.Flag.class); register(enumByName, TimeUnitRange.class); - ENUM_BY_NAME = enumByName.build(); + ENUM_BY_NAME = Map.copyOf(enumByName); } /** */ - private static void register(ImmutableMap.Builder> builder, Class aClass) { + private static void register(Map> map, Class aClass) { String preffix = aClass.getSimpleName() + "#"; for (Enum enumConstant : aClass.getEnumConstants()) - builder.put(preffix + enumConstant.name(), enumConstant); + map.put(preffix + enumConstant.name(), enumConstant); } /** */ @@ -218,7 +214,7 @@ private static Class classForName(String typeName, boolean skipNotFound) { /** */ private static final List PACKAGES = - ImmutableList.of( + List.of( "org.apache.ignite.internal.processors.query.calcite.rel.", "org.apache.ignite.internal.processors.query.calcite.rel.agg.", "org.apache.ignite.internal.processors.query.calcite.rel.set.", @@ -235,7 +231,7 @@ private static Class classForName(String typeName, boolean skipNotFound) { /** */ Function factory(String type) { - return FACTORIES_CACHE.getUnchecked(type); + return FACTORIES_CACHE.get(type); } /** */ diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJsonReader.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJsonReader.java index 0d0a9a3cbccd..e2d8407e21c0 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJsonReader.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/externalize/RelJsonReader.java @@ -156,7 +156,7 @@ private RelInputImpl(Map jsonRel) { @Override public List getInputs() { List jsonInputs = getStringList("inputs"); if (jsonInputs == null) - return ImmutableList.of(lastRel); + return List.of(lastRel); List inputs = new ArrayList<>(); for (String jsonInput : jsonInputs) inputs.add(lookupInput(jsonInput)); @@ -176,13 +176,16 @@ private RelInputImpl(Map jsonRel) { /** {@inheritDoc} */ @Override public List getBitSetList(String tag) { List> list = getIntegerListList(tag); + if (list == null) return null; - ImmutableList.Builder builder = - ImmutableList.builder(); + + List bitSets = new ArrayList<>(); + for (List integers : list) - builder.add(ImmutableBitSet.of(integers)); - return builder.build(); + bitSets.add(ImmutableBitSet.of(integers)); + + return List.copyOf(bitSets); } /** {@inheritDoc} */ @@ -289,8 +292,10 @@ private RelInputImpl(Map jsonRel) { List jsonTuples = (List)get(tag); ImmutableList.Builder> builder = ImmutableList.builder(); + for (List jsonTuple : jsonTuples) builder.add(getTuple(jsonTuple)); + return builder.build(); } @@ -307,8 +312,10 @@ private RelNode lookupInput(String jsonInput) { private ImmutableList getTuple(List jsonTuple) { ImmutableList.Builder builder = ImmutableList.builder(); + for (Object jsonValue : jsonTuple) builder.add((RexLiteral)relJson.toRex(this, jsonValue)); + return builder.build(); } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdCollation.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdCollation.java index d8a2974a565b..fda198adb81a 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdCollation.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdCollation.java @@ -18,8 +18,12 @@ package org.apache.ignite.internal.processors.query.calcite.metadata; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Objects; @@ -28,9 +32,6 @@ import java.util.stream.Collectors; import com.google.common.collect.ImmutableList; -import com.google.common.collect.LinkedListMultimap; -import com.google.common.collect.Multimap; -import com.google.common.collect.Ordering; import org.apache.calcite.adapter.enumerable.EnumerableCorrelate; import org.apache.calcite.adapter.enumerable.EnumerableHashJoin; import org.apache.calcite.adapter.enumerable.EnumerableMergeJoin; @@ -294,14 +295,24 @@ public static List project(RelMetadataQuery mq, final SortedSet collations = new TreeSet<>(); final List inputCollations = mq.collations(input); if (inputCollations == null || inputCollations.isEmpty()) { - return ImmutableList.of(); + return List.of(); } - final Multimap targets = LinkedListMultimap.create(); + final Map> targets = new HashMap<>(); final Map targetsWithMonotonicity = new HashMap<>(); for (Ord project : Ord.zip(projects)) { - if (project.e instanceof RexInputRef) - targets.put(((RexSlot) project.e).getIndex(), project.i); + if (project.e instanceof RexInputRef) { + targets.compute(((RexSlot)project.e).getIndex(), (k, v) -> { + if (v == null) + return new ArrayList<>(Collections.singleton(project.i)); + else { + v.add(project.i); + + return v; + } + } + ); + } else if (project.e instanceof RexCall) { final RexCall call = (RexCall) project.e; final RexCallBinding binding = @@ -355,7 +366,7 @@ else if (project.e instanceof RexCall) { collations.add(RelCollations.of(fieldCollationsForRexCalls)); } - return ImmutableList.copyOf(collations); + return List.copyOf(collations); } /** Helper method to determine a @@ -366,7 +377,7 @@ else if (project.e instanceof RexCall) { * implementation does not re-order its input rows, then any collations of its * input are preserved. */ public static List window(RelMetadataQuery mq, RelNode input, - ImmutableList groups) { + List groups) { return mq.collations(input); } @@ -405,22 +416,26 @@ public static List values(RelMetadataQuery mq, Util.discard(mq); // for future use final List list = new ArrayList<>(); final int n = rowType.getFieldCount(); - final List>>> pairs = + final List>>> pairs = new ArrayList<>(); boolean skip = false; + for (int i = 0; i < n; i++) { pairs.clear(); for (int j = i; j < n; j++) { final RelFieldCollation fieldCollation = new RelFieldCollation(j); - Ordering> comparator = comparator(fieldCollation); - Ordering> ordering; + + Comparator> comparator = comparator(fieldCollation); + Comparator> ordering; + if (pairs.isEmpty()) ordering = comparator; else - ordering = Util.last(pairs).right.compound(comparator); + ordering = Commons.compoundComparator(Arrays.asList(Util.last(pairs).right, comparator)); pairs.add(Pair.of(fieldCollation, ordering)); - if (!ordering.isOrdered(tuples)) { + + if (!isOrdered(tuples, ordering)) { if (j == i) { skip = true; @@ -435,33 +450,57 @@ public static List values(RelMetadataQuery mq, if (!pairs.isEmpty()) list.add(RelCollations.of(Pair.left(pairs))); } + return list; } - private static Ordering> comparator( + /** */ + private static Comparator> comparator( RelFieldCollation fieldCollation) { final int nullComparison = fieldCollation.nullDirection.nullComparison; final int x = fieldCollation.getFieldIndex(); + switch (fieldCollation.direction) { - case ASCENDING: - return new Ordering>() { - @Override public int compare(List o1, List o2) { - final Comparable c1 = o1.get(x).getValueAs(Comparable.class); - final Comparable c2 = o2.get(x).getValueAs(Comparable.class); - return RelFieldCollation.compare(c1, c2, nullComparison); - } + case ASCENDING: { + return (o1, o2) -> { + final Comparable c1 = o1.get(x).getValueAs(Comparable.class); + final Comparable c2 = o2.get(x).getValueAs(Comparable.class); + + return RelFieldCollation.compare(c1, c2, nullComparison); }; - default: - return new Ordering>() { - @Override public int compare(List o1, List o2) { - final Comparable c1 = o1.get(x).getValueAs(Comparable.class); - final Comparable c2 = o2.get(x).getValueAs(Comparable.class); - return RelFieldCollation.compare(c2, c1, -nullComparison); - } + } + default: { + return (o1, o2) -> { + final Comparable c1 = o1.get(x).getValueAs(Comparable.class); + final Comparable c2 = o2.get(x).getValueAs(Comparable.class); + + return RelFieldCollation.compare(c2, c1, nullComparison); }; + } } } + /** */ + public static boolean isOrdered(Iterable iterable, Comparator cmp) { + Iterator it = iterable.iterator(); + + if (it.hasNext()) { + T prev = it.next(); + + while (it.hasNext()) { + T next = it.next(); + + if (cmp.compare(prev, next) > 0) { + return false; + } + + prev = next; + } + } + + return true; + } + /** Helper method to determine a {@link Join}'s collation assuming that it * uses a merge-join algorithm. * @@ -486,24 +525,24 @@ public static List mergeJoin(RelMetadataQuery mq, assert EnumerableMergeJoin.isMergeJoinSupported(joinType) : "EnumerableMergeJoin unsupported for join type " + joinType; - final ImmutableList leftCollations = mq.collations(left); + final List leftCollations = mq.collations(left); assert RelCollations.contains(leftCollations, leftKeys) : "cannot merge join: left input is not sorted on left keys"; if (!joinType.projectsRight()) { return leftCollations; } - final ImmutableList.Builder builder = ImmutableList.builder(); - builder.addAll(leftCollations); + final List collations = new ArrayList<>(); + collations.addAll(leftCollations); - final ImmutableList rightCollations = mq.collations(right); + final List rightCollations = mq.collations(right); assert RelCollations.contains(rightCollations, rightKeys) : "cannot merge join: right input is not sorted on right keys"; final int leftFieldCount = left.getRowType().getFieldCount(); for (RelCollation collation : rightCollations) { - builder.add(RelCollations.shift(collation, leftFieldCount)); + collations.add(RelCollations.shift(collation, leftFieldCount)); } - return builder.build(); + return List.copyOf(collations); } /** @@ -551,7 +590,7 @@ private static List enumerableJoin0(RelMetadataQuery mq, // following conditions hold: // (i) join type is INNER or LEFT; // (ii) RelCollation always orders nulls last. - final ImmutableList leftCollations = mq.collations(left); + final List leftCollations = mq.collations(left); switch (joinType) { case SEMI: case ANTI: @@ -563,12 +602,12 @@ private static List enumerableJoin0(RelMetadataQuery mq, for (RelCollation collation : leftCollations) { for (RelFieldCollation field : collation.getFieldCollations()) { if (!(RelFieldCollation.NullDirection.LAST == field.nullDirection)) { - return ImmutableList.of(); + return List.of(); } } } return leftCollations; } - return ImmutableList.of(); + return List.of(); } } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdFragmentMapping.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdFragmentMapping.java index e16ce581799b..82c8c757445f 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdFragmentMapping.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMdFragmentMapping.java @@ -17,7 +17,8 @@ package org.apache.ignite.internal.processors.query.calcite.metadata; -import com.google.common.collect.ImmutableList; +import java.util.List; + import org.apache.calcite.plan.RelOptCost; import org.apache.calcite.plan.volcano.RelSubset; import org.apache.calcite.rel.BiRel; @@ -108,8 +109,8 @@ public FragmentMapping fragmentMapping(BiRel rel, RelMetadataQuery mq) { IgniteExchange lExch = new IgniteExchange(rel.getCluster(), left.getTraitSet(), left, TraitUtils.distribution(left)); IgniteExchange rExch = new IgniteExchange(rel.getCluster(), right.getTraitSet(), right, TraitUtils.distribution(right)); - RelNode lVar = rel.copy(rel.getTraitSet(), ImmutableList.of(lExch, right)); - RelNode rVar = rel.copy(rel.getTraitSet(), ImmutableList.of(left, rExch)); + RelNode lVar = rel.copy(rel.getTraitSet(), List.of(lExch, right)); + RelNode rVar = rel.copy(rel.getTraitSet(), List.of(left, rExch)); RelOptCost lVarCost = mq.getCumulativeCost(lVar); RelOptCost rVarCost = mq.getCumulativeCost(rVar); diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMetadata.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMetadata.java index 1b71fc190a0b..3e1a010672d4 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMetadata.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/metadata/IgniteMetadata.java @@ -17,7 +17,8 @@ package org.apache.ignite.internal.processors.query.calcite.metadata; -import com.google.common.collect.ImmutableList; +import java.util.List; + import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.metadata.ChainedRelMetadataProvider; import org.apache.calcite.rel.metadata.DefaultRelMetadataProvider; @@ -35,7 +36,7 @@ public class IgniteMetadata { /** */ public static final RelMetadataProvider METADATA_PROVIDER = ChainedRelMetadataProvider.of( - ImmutableList.of( + List.of( // Ignite specific providers IgniteMdFragmentMapping.SOURCE, diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/Cloner.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/Cloner.java index af89e28dba2f..297f5146d4c7 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/Cloner.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/Cloner.java @@ -17,7 +17,9 @@ package org.apache.ignite.internal.processors.query.calcite.prepare; -import com.google.common.collect.ImmutableList; +import java.util.ArrayList; +import java.util.List; + import org.apache.calcite.plan.RelOptCluster; import org.apache.ignite.internal.processors.query.calcite.rel.IgniteCorrelatedNestedLoopJoin; import org.apache.ignite.internal.processors.query.calcite.rel.IgniteExchange; @@ -58,7 +60,7 @@ public class Cloner implements IgniteRelVisitor { private final RelOptCluster cluster; /** */ - private ImmutableList.Builder remotes; + private List remotes; /** */ Cloner(RelOptCluster cluster) { @@ -73,12 +75,11 @@ public class Cloner implements IgniteRelVisitor { */ public Fragment go(Fragment src) { try { - remotes = ImmutableList.builder(); + remotes = new ArrayList<>(); IgniteRel newRoot = visit(src.root()); - ImmutableList remotes = this.remotes.build(); - return new Fragment(src.fragmentId(), newRoot, remotes, src.serialized(), src.mapping()); + return new Fragment(src.fragmentId(), newRoot, List.copyOf(remotes), src.serialized(), src.mapping()); } finally { remotes = null; diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/ExecutionPlan.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/ExecutionPlan.java index 53dc4fa27464..6676d2f29555 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/ExecutionPlan.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/ExecutionPlan.java @@ -19,8 +19,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; - /** * */ @@ -29,12 +27,12 @@ class ExecutionPlan { private final long ver; /** */ - private final ImmutableList fragments; + private final List fragments; /** */ ExecutionPlan(long ver, List fragments) { this.ver = ver; - this.fragments = ImmutableList.copyOf(fragments); + this.fragments = List.copyOf(fragments); } /** */ diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/Fragment.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/Fragment.java index 9f85b0eefc66..a5f92b7b574b 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/Fragment.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/Fragment.java @@ -21,7 +21,6 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.function.Supplier; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptUtil; import org.apache.calcite.rel.metadata.RelMetadataQuery; @@ -60,7 +59,7 @@ public class Fragment { private final FragmentMapping mapping; /** */ - private final ImmutableList remotes; + private final List remotes; /** * @param id Fragment id. @@ -75,7 +74,7 @@ public Fragment(long id, IgniteRel root, List remotes) { Fragment(long id, IgniteRel root, List remotes, @Nullable String rootSer, @Nullable FragmentMapping mapping) { this.id = id; this.root = root; - this.remotes = ImmutableList.copyOf(remotes); + this.remotes = List.copyOf(remotes); this.rootSer = rootSer != null ? rootSer : toJson(root); this.mapping = mapping; } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/FragmentSplitter.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/FragmentSplitter.java index a9d31caf2c9a..09dacc0d3b5b 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/FragmentSplitter.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/FragmentSplitter.java @@ -22,7 +22,6 @@ import java.util.LinkedList; import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelNode; @@ -128,7 +127,7 @@ private static class FragmentProto { private IgniteRel root; /** */ - private final ImmutableList.Builder remotes = ImmutableList.builder(); + private final List remotes = new ArrayList<>(); /** */ private FragmentProto(long id, IgniteRel root) { @@ -138,7 +137,7 @@ private FragmentProto(long id, IgniteRel root) { /** */ Fragment build() { - return new Fragment(id, root, remotes.build()); + return new Fragment(id, root, List.copyOf(remotes)); } } } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/IgnitePlanner.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/IgnitePlanner.java index 5a2ba88e27bd..146795fa75c3 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/IgnitePlanner.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/IgnitePlanner.java @@ -24,7 +24,6 @@ import java.util.List; import java.util.Set; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.Context; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptCost; @@ -75,7 +74,7 @@ public class IgnitePlanner implements Planner, RelOptTable.ViewExpander { private final SqlOperatorTable operatorTbl; /** */ - private final ImmutableList programs; + private final List programs; /** */ private final FrameworkConfig frameworkCfg; @@ -85,7 +84,7 @@ public class IgnitePlanner implements Planner, RelOptTable.ViewExpander { /** */ @SuppressWarnings("rawtypes") - private final ImmutableList traitDefs; + private final List traitDefs; /** */ private final SqlParser.Config parserCfg; @@ -314,7 +313,7 @@ RelOptCluster cluster() { /** */ private List latices() { - return ImmutableList.of(); // TODO + return List.of(); // TODO } /** @@ -322,7 +321,7 @@ private List latices() { * @return Materializations. */ private List materializations() { - return ImmutableList.of(); // TODO + return List.of(); // TODO } /** diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/PlannerHelper.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/PlannerHelper.java index ef57eda4f83d..8118f7f478bc 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/PlannerHelper.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/PlannerHelper.java @@ -19,8 +19,8 @@ import java.util.ArrayList; import java.util.List; +import java.util.Set; -import com.google.common.collect.ImmutableSet; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelCollations; import org.apache.calcite.rel.RelNode; @@ -94,7 +94,7 @@ public static IgniteRel optimize(SqlNode sqlNode, IgnitePlanner planner) { igniteRel = new IgniteProject(igniteRel.getCluster(), desired, igniteRel, projects, root.validatedRowType); } - if (sqlNode.isA(ImmutableSet.of(SqlKind.INSERT, SqlKind.UPDATE, SqlKind.MERGE))) + if (sqlNode.isA(Set.of(SqlKind.INSERT, SqlKind.UPDATE, SqlKind.MERGE))) igniteRel = new FixDependentModifyNodeShuttle().visit(igniteRel); return igniteRel; @@ -208,7 +208,7 @@ private IgniteRel processScan(TableScan scan) { if (scan instanceof IgniteTableScan) return (IgniteRel)scan; - ImmutableSet indexedCols = ImmutableSet.copyOf( + Set indexedCols = Set.copyOf( tbl.getIndex(((AbstractIndexScan)scan).indexName()).collation().getKeys()); spoolNeeded = modifyNode.getUpdateColumnList().stream() diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/QueryTemplate.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/QueryTemplate.java index 5e2a7c25ace3..207506265d1d 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/QueryTemplate.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/QueryTemplate.java @@ -24,7 +24,6 @@ import java.util.Objects; import java.util.concurrent.atomic.AtomicReference; -import com.google.common.collect.ImmutableList; import org.apache.calcite.rel.metadata.RelMetadataQuery; import org.apache.ignite.internal.processors.query.calcite.metadata.FragmentMappingException; import org.apache.ignite.internal.processors.query.calcite.metadata.MappingService; @@ -43,7 +42,7 @@ public class QueryTemplate { private final MappingService mappingService; /** */ - private final ImmutableList fragments; + private final List fragments; /** */ private final AtomicReference executionPlan = new AtomicReference<>(); @@ -52,11 +51,11 @@ public class QueryTemplate { public QueryTemplate(MappingService mappingService, List fragments) { this.mappingService = mappingService; - ImmutableList.Builder b = ImmutableList.builder(); + List frgs = new ArrayList<>(fragments.size()); for (Fragment fragment : fragments) - b.add(fragment.detach()); + frgs.add(fragment.detach()); - this.fragments = b.build(); + this.fragments = List.copyOf(frgs); } /** */ @@ -93,11 +92,12 @@ public ExecutionPlan map(PlanningContext ctx) { /** */ @NotNull private List map(List fragments, PlanningContext ctx, RelMetadataQuery mq) { - ImmutableList.Builder b = ImmutableList.builder(); + List frgs = new ArrayList<>(); + for (Fragment fragment : fragments) - b.add(fragment.map(mappingService, ctx, mq).detach()); + frgs.add(fragment.map(mappingService, ctx, mq).detach()); - return b.build(); + return List.copyOf(frgs); } /** */ diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/Splitter.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/Splitter.java index ec0dd7685dcd..b623c3f1e157 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/Splitter.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/prepare/Splitter.java @@ -22,7 +22,6 @@ import java.util.LinkedList; import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.ignite.internal.processors.query.calcite.rel.IgniteExchange; import org.apache.ignite.internal.processors.query.calcite.rel.IgniteIndexScan; @@ -109,7 +108,7 @@ private static class FragmentProto { private IgniteRel root; /** */ - private final ImmutableList.Builder remotes = ImmutableList.builder(); + private final List remotes = new ArrayList<>(); /** */ private FragmentProto(long id, IgniteRel root) { @@ -119,7 +118,7 @@ private FragmentProto(long id, IgniteRel root) { /** */ Fragment build() { - return new Fragment(id, root, remotes.build()); + return new Fragment(id, root, List.copyOf(remotes)); } } } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/AbstractIgniteJoin.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/AbstractIgniteJoin.java index 59d2ad66624d..c7fb0ec9f7f3 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/AbstractIgniteJoin.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/AbstractIgniteJoin.java @@ -24,7 +24,6 @@ import java.util.Map; import java.util.Set; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelCollation; @@ -99,7 +98,7 @@ protected AbstractIgniteJoin(RelOptCluster cluster, RelTraitSet traitSet, RelNod RelTraitSet leftTraits = left.replace(collation); RelTraitSet rightTraits = right.replace(RelCollations.EMPTY); - return ImmutableList.of(Pair.of(outTraits, ImmutableList.of(leftTraits, rightTraits))); + return List.of(Pair.of(outTraits, List.of(leftTraits, rightTraits))); } /** {@inheritDoc} */ @@ -114,13 +113,13 @@ protected AbstractIgniteJoin(RelOptCluster cluster, RelTraitSet traitSet, RelNod List>> pairs = new ArrayList<>(); pairs.add(Pair.of(nodeTraits.replace(RewindabilityTrait.ONE_WAY), - ImmutableList.of(left.replace(RewindabilityTrait.ONE_WAY), right.replace(RewindabilityTrait.ONE_WAY)))); + List.of(left.replace(RewindabilityTrait.ONE_WAY), right.replace(RewindabilityTrait.ONE_WAY)))); if (leftRewindability.rewindable() && rightRewindability.rewindable()) pairs.add(Pair.of(nodeTraits.replace(RewindabilityTrait.REWINDABLE), - ImmutableList.of(left.replace(RewindabilityTrait.REWINDABLE), right.replace(RewindabilityTrait.REWINDABLE)))); + List.of(left.replace(RewindabilityTrait.REWINDABLE), right.replace(RewindabilityTrait.REWINDABLE)))); - return ImmutableList.copyOf(pairs); + return List.copyOf(pairs); } /** {@inheritDoc} */ @@ -159,17 +158,17 @@ protected AbstractIgniteJoin(RelOptCluster cluster, RelTraitSet traitSet, RelNod rightTraits = right.replace(single()); } - res.add(Pair.of(outTraits, ImmutableList.of(leftTraits, rightTraits))); + res.add(Pair.of(outTraits, List.of(leftTraits, rightTraits))); if (nullOrEmpty(joinInfo.pairs())) - return ImmutableList.copyOf(res); + return List.copyOf(res); if (leftDistr.getType() == HASH_DISTRIBUTED && left2rightProjectedDistr != random()) { outTraits = nodeTraits.replace(leftDistr); leftTraits = left.replace(leftDistr); rightTraits = right.replace(left2rightProjectedDistr); - res.add(Pair.of(outTraits, ImmutableList.of(leftTraits, rightTraits))); + res.add(Pair.of(outTraits, List.of(leftTraits, rightTraits))); } if (rightDistr.getType() == HASH_DISTRIBUTED && right2leftProjectedDistr != random()) { @@ -177,19 +176,19 @@ protected AbstractIgniteJoin(RelOptCluster cluster, RelTraitSet traitSet, RelNod leftTraits = left.replace(right2leftProjectedDistr); rightTraits = right.replace(rightDistr); - res.add(Pair.of(outTraits, ImmutableList.of(leftTraits, rightTraits))); + res.add(Pair.of(outTraits, List.of(leftTraits, rightTraits))); } leftTraits = left.replace(hash(joinInfo.leftKeys, DistributionFunction.hash())); rightTraits = right.replace(hash(joinInfo.rightKeys, DistributionFunction.hash())); outTraits = nodeTraits.replace(hash(joinInfo.leftKeys, DistributionFunction.hash())); - res.add(Pair.of(outTraits, ImmutableList.of(leftTraits, rightTraits))); + res.add(Pair.of(outTraits, List.of(leftTraits, rightTraits))); outTraits = nodeTraits.replace(hash(joinInfo.rightKeys, DistributionFunction.hash())); - res.add(Pair.of(outTraits, ImmutableList.of(leftTraits, rightTraits))); + res.add(Pair.of(outTraits, List.of(leftTraits, rightTraits))); - return ImmutableList.copyOf(res); + return List.copyOf(res); } /** {@inheritDoc} */ @@ -200,7 +199,7 @@ protected AbstractIgniteJoin(RelOptCluster cluster, RelTraitSet traitSet, RelNod // right correlations corrIds.addAll(TraitUtils.correlation(inTraits.get(1)).correlationIds()); - return ImmutableList.of(Pair.of(nodeTraits.replace(CorrelationTrait.correlations(corrIds)), inTraits)); + return List.of(Pair.of(nodeTraits.replace(CorrelationTrait.correlations(corrIds)), inTraits)); } /** {@inheritDoc} */ @@ -215,7 +214,7 @@ protected AbstractIgniteJoin(RelOptCluster cluster, RelTraitSet traitSet, RelNod if (collation.equals(RelCollations.EMPTY)) return Pair.of(nodeTraits, - ImmutableList.of(left.replace(RelCollations.EMPTY), right.replace(RelCollations.EMPTY))); + List.of(left.replace(RelCollations.EMPTY), right.replace(RelCollations.EMPTY))); if (!projectsLeft(collation)) collation = RelCollations.EMPTY; @@ -229,7 +228,7 @@ else if (joinType == RIGHT || joinType == JoinRelType.FULL) { } return Pair.of(nodeTraits.replace(collation), - ImmutableList.of(left.replace(collation), right.replace(RelCollations.EMPTY))); + List.of(left.replace(collation), right.replace(RelCollations.EMPTY))); } /** {@inheritDoc} */ @@ -273,7 +272,7 @@ else if (joinType == RIGHT || joinType == JoinRelType.FULL) { if (distrType != HASH_DISTRIBUTED || outDistr.satisfies(distribution)) { return Pair.of(nodeTraits.replace(outDistr), - ImmutableList.of(left.replace(outDistr), right.replace(hash(joinInfo.rightKeys, function)))); + List.of(left.replace(outDistr), right.replace(hash(joinInfo.rightKeys, function)))); } break; diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteAggregate.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteAggregate.java index 3b85c31152e0..d0902868fc71 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteAggregate.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteAggregate.java @@ -19,7 +19,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptCost; import org.apache.calcite.plan.RelOptPlanner; @@ -48,7 +47,7 @@ protected IgniteAggregate( List groupSets, List aggCalls ) { - super(cluster, traitSet, ImmutableList.of(), input, groupSet, groupSets, aggCalls); + super(cluster, traitSet, List.of(), input, groupSet, groupSets, aggCalls); } /** {@inheritDoc} */ diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteCorrelatedNestedLoopJoin.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteCorrelatedNestedLoopJoin.java index 76c576c37e8f..abcf3d5916de 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteCorrelatedNestedLoopJoin.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteCorrelatedNestedLoopJoin.java @@ -21,8 +21,6 @@ import java.util.List; import java.util.Set; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptCost; import org.apache.calcite.plan.RelOptPlanner; @@ -81,7 +79,7 @@ public IgniteCorrelatedNestedLoopJoin(RelInput input) { input.getInputs().get(0), input.getInputs().get(1), input.getExpression("condition"), - ImmutableSet.copyOf(Commons.transform(input.getIntegerList("variablesSet"), CorrelationId::new)), + Set.copyOf(Commons.transform(input.getIntegerList("variablesSet"), CorrelationId::new)), input.getEnum("joinType", JoinRelType.class)); } @@ -107,7 +105,7 @@ public IgniteCorrelatedNestedLoopJoin(RelInput input) { List newRightCollationFields = maxPrefix(rightCollation.getKeys(), joinInfo.leftKeys); if (nullOrEmpty(newRightCollationFields)) - return ImmutableList.of(Pair.of(nodeTraits.replace(RelCollations.EMPTY), inputTraits)); + return List.of(Pair.of(nodeTraits.replace(RelCollations.EMPTY), inputTraits)); // We preserve left edge collation only if batch size == 1 if (variablesSet.size() == 1) @@ -115,7 +113,7 @@ public IgniteCorrelatedNestedLoopJoin(RelInput input) { else nodeTraits = nodeTraits.replace(RelCollations.EMPTY); - return ImmutableList.of(Pair.of(nodeTraits, inputTraits)); + return List.of(Pair.of(nodeTraits, inputTraits)); } /** {@inheritDoc} */ @@ -128,8 +126,8 @@ public IgniteCorrelatedNestedLoopJoin(RelInput input) { RewindabilityTrait rewindability = TraitUtils.rewindability(left); - return ImmutableList.of(Pair.of(nodeTraits.replace(rewindability), - ImmutableList.of(left, right.replace(RewindabilityTrait.REWINDABLE)))); + return List.of(Pair.of(nodeTraits.replace(rewindability), + List.of(left, right.replace(RewindabilityTrait.REWINDABLE)))); } /** {@inheritDoc} */ @@ -145,7 +143,7 @@ public IgniteCorrelatedNestedLoopJoin(RelInput input) { return Pair.of( baseTraits.getKey(), - ImmutableList.of( + List.of( baseTraits.getValue().get(0), baseTraits.getValue().get(1) ) @@ -153,7 +151,7 @@ public IgniteCorrelatedNestedLoopJoin(RelInput input) { } return Pair.of(nodeTraits.replace(RelCollations.EMPTY), - ImmutableList.of(left.replace(RelCollations.EMPTY), right)); + List.of(left.replace(RelCollations.EMPTY), right)); } /** {@inheritDoc} */ @@ -164,7 +162,7 @@ public IgniteCorrelatedNestedLoopJoin(RelInput input) { RewindabilityTrait rewindability = TraitUtils.rewindability(nodeTraits); return Pair.of(nodeTraits.replace(rewindability), - ImmutableList.of(left.replace(rewindability), right.replace(RewindabilityTrait.REWINDABLE))); + List.of(left.replace(rewindability), right.replace(RewindabilityTrait.REWINDABLE))); } /** {@inheritDoc} */ @@ -196,7 +194,7 @@ public IgniteCorrelatedNestedLoopJoin(RelInput input) { selfCorrIds.addAll(nodeCorr.correlationIds()); return Pair.of(nodeTraits, - ImmutableList.of( + List.of( inTraits.get(0).replace(nodeCorr), inTraits.get(1).replace(CorrelationTrait.correlations(selfCorrIds)) ) @@ -209,7 +207,7 @@ public IgniteCorrelatedNestedLoopJoin(RelInput input) { Set rightCorrIds = TraitUtils.correlation(inTraits.get(1)).correlationIds(); if (!rightCorrIds.containsAll(variablesSet)) - return ImmutableList.of(); + return List.of(); Set corrIds = new HashSet<>(rightCorrIds); @@ -218,7 +216,7 @@ public IgniteCorrelatedNestedLoopJoin(RelInput input) { corrIds.removeAll(variablesSet); - return ImmutableList.of(Pair.of(nodeTraits.replace(CorrelationTrait.correlations(corrIds)), inTraits)); + return List.of(Pair.of(nodeTraits.replace(CorrelationTrait.correlations(corrIds)), inTraits)); } /** {@inheritDoc} */ diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteFilter.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteFilter.java index d848f9c226da..1800ef569bd6 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteFilter.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteFilter.java @@ -20,7 +20,6 @@ import java.util.List; import java.util.Set; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptCost; import org.apache.calcite.plan.RelOptPlanner; @@ -80,23 +79,23 @@ public IgniteFilter(RelInput input) { @Override public List>> deriveRewindability(RelTraitSet nodeTraits, List inTraits) { if (!TraitUtils.rewindability(inTraits.get(0)).rewindable() && RexUtils.hasCorrelation(getCondition())) - return ImmutableList.of(); + return List.of(); - return ImmutableList.of(Pair.of(nodeTraits.replace(TraitUtils.rewindability(inTraits.get(0))), + return List.of(Pair.of(nodeTraits.replace(TraitUtils.rewindability(inTraits.get(0))), inTraits)); } /** {@inheritDoc} */ @Override public List>> deriveDistribution(RelTraitSet nodeTraits, List inTraits) { - return ImmutableList.of(Pair.of(nodeTraits.replace(TraitUtils.distribution(inTraits.get(0))), + return List.of(Pair.of(nodeTraits.replace(TraitUtils.distribution(inTraits.get(0))), inTraits)); } /** {@inheritDoc} */ @Override public List>> deriveCollation(RelTraitSet nodeTraits, List inTraits) { - return ImmutableList.of(Pair.of(nodeTraits.replace(TraitUtils.collation(inTraits.get(0))), + return List.of(Pair.of(nodeTraits.replace(TraitUtils.collation(inTraits.get(0))), inTraits)); } @@ -108,7 +107,7 @@ public IgniteFilter(RelInput input) { CorrelationTrait correlation = TraitUtils.correlation(nodeTraits); if (corrSet.isEmpty() || correlation.correlationIds().containsAll(corrSet)) - return Pair.of(nodeTraits, ImmutableList.of(inTraits.get(0).replace(correlation))); + return Pair.of(nodeTraits, List.of(inTraits.get(0).replace(correlation))); return null; } @@ -120,7 +119,7 @@ public IgniteFilter(RelInput input) { corrIds.addAll(TraitUtils.correlation(inTraits.get(0)).correlationIds()); - return ImmutableList.of(Pair.of(nodeTraits.replace(CorrelationTrait.correlations(corrIds)), inTraits)); + return List.of(Pair.of(nodeTraits.replace(CorrelationTrait.correlations(corrIds)), inTraits)); } /** {@inheritDoc} */ diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteIndexScan.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteIndexScan.java index d2dbe0c3ae3b..484c2ef6a8ba 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteIndexScan.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteIndexScan.java @@ -19,7 +19,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptTable; import org.apache.calcite.plan.RelTraitSet; @@ -113,7 +112,7 @@ private IgniteIndexScan( @Nullable IndexConditions idxCond, @Nullable ImmutableBitSet requiredCols ) { - super(cluster, traits, ImmutableList.of(), tbl, idxName, proj, cond, idxCond, requiredCols); + super(cluster, traits, List.of(), tbl, idxName, proj, cond, idxCond, requiredCols); this.sourceId = sourceId; } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteLimit.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteLimit.java index bef81a92dcf6..cb9e095f5854 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteLimit.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteLimit.java @@ -19,7 +19,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptCost; import org.apache.calcite.plan.RelOptPlanner; @@ -105,7 +104,7 @@ public IgniteLimit(RelInput input) { if (required.getConvention() != IgniteConvention.INSTANCE) return null; - return Pair.of(required, ImmutableList.of(required)); + return Pair.of(required, List.of(required)); } /** {@inheritDoc} */ @@ -115,7 +114,7 @@ public IgniteLimit(RelInput input) { if (childTraits.getConvention() != IgniteConvention.INSTANCE) return null; - return Pair.of(childTraits, ImmutableList.of(childTraits)); + return Pair.of(childTraits, List.of(childTraits)); } /** {@inheritDoc} */ diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteMergeJoin.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteMergeJoin.java index c5432b6abe6a..fbcde09f4aa3 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteMergeJoin.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteMergeJoin.java @@ -24,8 +24,6 @@ import java.util.Set; import java.util.stream.Collectors; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptCost; import org.apache.calcite.plan.RelOptPlanner; @@ -85,7 +83,7 @@ public IgniteMergeJoin(RelInput input) { input.getInputs().get(0), input.getInputs().get(1), input.getExpression("condition"), - ImmutableSet.copyOf(Commons.transform(input.getIntegerList("variablesSet"), CorrelationId::new)), + Set.copyOf(Commons.transform(input.getIntegerList("variablesSet"), CorrelationId::new)), input.getEnum("joinType", JoinRelType.class), ((RelInputEx)input).getCollation("leftCollation"), ((RelInputEx)input).getCollation("rightCollation") @@ -147,10 +145,10 @@ else if (isPrefix(rightCollation.getKeys(), joinInfo.rightKeys))// preserve righ rightCollation = RelCollations.of(joinInfo.rightKeys); } - return ImmutableList.of( + return List.of( Pair.of( nodeTraits.replace(leftCollation), - ImmutableList.of( + List.of( left.replace(leftCollation), right.replace(rightCollation) ) @@ -228,7 +226,7 @@ else if (isPrefix(rightCollation.getKeys(), joinInfo.rightKeys))// preserve righ return Pair.of( nodeTraits.replace(preserveNodeCollation ? collation : leftCollation), - ImmutableList.of( + List.of( left.replace(leftCollation), right.replace(rightCollation) ) diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteNestedLoopJoin.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteNestedLoopJoin.java index 17c3024e2553..8c535061d5ac 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteNestedLoopJoin.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteNestedLoopJoin.java @@ -20,7 +20,6 @@ import java.util.List; import java.util.Set; -import com.google.common.collect.ImmutableSet; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptCost; import org.apache.calcite.plan.RelOptPlanner; @@ -69,7 +68,7 @@ public IgniteNestedLoopJoin(RelInput input) { input.getInputs().get(0), input.getInputs().get(1), input.getExpression("condition"), - ImmutableSet.copyOf(Commons.transform(input.getIntegerList("variablesSet"), CorrelationId::new)), + Set.copyOf(Commons.transform(input.getIntegerList("variablesSet"), CorrelationId::new)), input.getEnum("joinType", JoinRelType.class)); } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteProject.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteProject.java index 0bc33bc54cf7..a7f54de37a05 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteProject.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteProject.java @@ -23,7 +23,6 @@ import java.util.Map; import java.util.Set; -import com.google.common.collect.ImmutableList; import org.apache.calcite.linq4j.Ord; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptCost; @@ -101,7 +100,7 @@ public IgniteProject(RelInput input) { IgniteDistribution distribution = TraitUtils.distribution(nodeTraits); if (distribution.getType() != HASH_DISTRIBUTED) - return Pair.of(nodeTraits, ImmutableList.of(in.replace(distribution))); + return Pair.of(nodeTraits, List.of(in.replace(distribution))); Mappings.TargetMapping mapping = getPartialMapping( input.getRowType().getFieldCount(), getProjects()); @@ -119,9 +118,9 @@ public IgniteProject(RelInput input) { } if (srcKeys.size() == keys.size()) - return Pair.of(nodeTraits, ImmutableList.of(in.replace(hash(srcKeys, distribution.function())))); + return Pair.of(nodeTraits, List.of(in.replace(hash(srcKeys, distribution.function())))); - return Pair.of(nodeTraits.replace(single()), ImmutableList.of(in.replace(single()))); + return Pair.of(nodeTraits.replace(single()), List.of(in.replace(single()))); } /** {@inheritDoc} */ @@ -134,7 +133,7 @@ public IgniteProject(RelInput input) { List fieldCollations = TraitUtils.collation(nodeTraits).getFieldCollations(); if (fieldCollations.isEmpty()) - return Pair.of(nodeTraits, ImmutableList.of(in.replace(RelCollations.EMPTY))); + return Pair.of(nodeTraits, List.of(in.replace(RelCollations.EMPTY))); Map targets = new HashMap<>(); for (Ord project : Ord.zip(getProjects())) { @@ -152,9 +151,9 @@ public IgniteProject(RelInput input) { } if (inFieldCollations.size() == fieldCollations.size()) - return Pair.of(nodeTraits, ImmutableList.of(in.replace(RelCollations.of(inFieldCollations)))); + return Pair.of(nodeTraits, List.of(in.replace(RelCollations.of(inFieldCollations)))); - return Pair.of(nodeTraits.replace(RelCollations.EMPTY), ImmutableList.of(in.replace(RelCollations.EMPTY))); + return Pair.of(nodeTraits.replace(RelCollations.EMPTY), List.of(in.replace(RelCollations.EMPTY))); } /** {@inheritDoc} */ @@ -164,7 +163,7 @@ public IgniteProject(RelInput input) { RelTraitSet in = inputTraits.get(0); RewindabilityTrait rewindability = TraitUtils.rewindability(in); - return ImmutableList.of(Pair.of(nodeTraits.replace(rewindability), ImmutableList.of(in))); + return List.of(Pair.of(nodeTraits.replace(rewindability), List.of(in))); } /** {@inheritDoc} */ @@ -174,7 +173,7 @@ public IgniteProject(RelInput input) { IgniteDistribution distribution = TraitUtils.projectDistribution( TraitUtils.distribution(in), getProjects(), getInput().getRowType()); - return ImmutableList.of(Pair.of(nodeTraits.replace(distribution), ImmutableList.of(in))); + return List.of(Pair.of(nodeTraits.replace(distribution), List.of(in))); } /** {@inheritDoc} */ @@ -184,7 +183,7 @@ public IgniteProject(RelInput input) { RelCollation collation = TraitUtils.projectCollation( TraitUtils.collation(in), getProjects(), getInput().getRowType()); - return ImmutableList.of(Pair.of(nodeTraits.replace(collation), ImmutableList.of(in))); + return List.of(Pair.of(nodeTraits.replace(collation), List.of(in))); } /** */ @@ -196,7 +195,7 @@ public IgniteProject(RelInput input) { if (!traitCorrIds.containsAll(corrIds)) return null; - return Pair.of(nodeTraits, ImmutableList.of(inTraits.get(0).replace(TraitUtils.correlation(nodeTraits)))); + return Pair.of(nodeTraits, List.of(inTraits.get(0).replace(TraitUtils.correlation(nodeTraits)))); } /** */ @@ -206,7 +205,7 @@ public IgniteProject(RelInput input) { corrIds.addAll(TraitUtils.correlation(inTraits.get(0)).correlationIds()); - return ImmutableList.of(Pair.of(nodeTraits.replace(CorrelationTrait.correlations(corrIds)), inTraits)); + return List.of(Pair.of(nodeTraits.replace(CorrelationTrait.correlations(corrIds)), inTraits)); } /** {@inheritDoc} */ diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteSort.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteSort.java index b0cf10e6cbd0..e79f2f532cf3 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteSort.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteSort.java @@ -18,7 +18,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptCost; import org.apache.calcite.plan.RelOptPlanner; @@ -93,7 +92,7 @@ public IgniteSort(RelInput input) { RelCollation collation = TraitUtils.collation(required); - return Pair.of(required.replace(collation), ImmutableList.of(required.replace(RelCollations.EMPTY))); + return Pair.of(required.replace(collation), List.of(required.replace(RelCollations.EMPTY))); } /** {@inheritDoc} */ @@ -103,7 +102,7 @@ public IgniteSort(RelInput input) { if (isEnforcer() || childTraits.getConvention() != IgniteConvention.INSTANCE) return null; - return Pair.of(childTraits.replace(collation()), ImmutableList.of(childTraits)); + return Pair.of(childTraits.replace(collation()), List.of(childTraits)); } /** {@inheritDoc} */ diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteTableFunctionScan.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteTableFunctionScan.java index 031fdebe84a4..f6cf4445b56a 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteTableFunctionScan.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteTableFunctionScan.java @@ -21,7 +21,6 @@ import java.util.List; import java.util.Set; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelInput; @@ -51,7 +50,7 @@ public IgniteTableFunctionScan( RexNode call, RelDataType rowType ) { - super(cluster, traits, ImmutableList.of(), call, null, rowType, null); + super(cluster, traits, List.of(), call, null, rowType, null); } /** diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteTableScan.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteTableScan.java index 0668173e39cf..0a1cca45760a 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteTableScan.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteTableScan.java @@ -18,7 +18,7 @@ package org.apache.ignite.internal.processors.query.calcite.rel; import java.util.List; -import com.google.common.collect.ImmutableList; + import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptTable; import org.apache.calcite.plan.RelTraitSet; @@ -104,7 +104,7 @@ public IgniteTableScan( @Nullable RexNode cond, @Nullable ImmutableBitSet requiredColunms ) { - super(cluster, traits, ImmutableList.of(), tbl, proj, cond, requiredColunms); + super(cluster, traits, List.of(), tbl, proj, cond, requiredColunms); this.sourceId = sourceId; } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteUnionAll.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteUnionAll.java index 36e5b2da33fd..d5b544631cae 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteUnionAll.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/IgniteUnionAll.java @@ -17,11 +17,11 @@ package org.apache.ignite.internal.processors.query.calcite.rel; +import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.stream.Collectors; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptCost; import org.apache.calcite.plan.RelOptPlanner; @@ -88,9 +88,9 @@ public IgniteUnionAll(RelInput input) { .allMatch(RewindabilityTrait::rewindable); if (rewindable) - return ImmutableList.of(Pair.of(nodeTraits.replace(RewindabilityTrait.REWINDABLE), inputTraits)); + return List.of(Pair.of(nodeTraits.replace(RewindabilityTrait.REWINDABLE), inputTraits)); - return ImmutableList.of(Pair.of(nodeTraits.replace(RewindabilityTrait.ONE_WAY), + return List.of(Pair.of(nodeTraits.replace(RewindabilityTrait.ONE_WAY), Commons.transform(inputTraits, t -> t.replace(RewindabilityTrait.ONE_WAY)))); } @@ -102,20 +102,20 @@ public IgniteUnionAll(RelInput input) { .map(TraitUtils::distribution) .collect(Collectors.toSet()); - ImmutableList.Builder>> b = ImmutableList.builder(); + List>> deriveTraits = new ArrayList<>(); for (IgniteDistribution distribution : distributions) - b.add(Pair.of(nodeTraits.replace(distribution), + deriveTraits.add(Pair.of(nodeTraits.replace(distribution), Commons.transform(inputTraits, t -> t.replace(distribution)))); - return b.build(); + return List.copyOf(deriveTraits); } /** {@inheritDoc} */ @Override public List>> deriveCollation(RelTraitSet nodeTraits, List inputTraits) { // Union node erases collation. TODO union all using merge sort algorythm - return ImmutableList.of(Pair.of(nodeTraits.replace(RelCollations.EMPTY), + return List.of(Pair.of(nodeTraits.replace(RelCollations.EMPTY), Commons.transform(inputTraits, t -> t.replace(RelCollations.EMPTY)))); } @@ -128,7 +128,7 @@ public IgniteUnionAll(RelInput input) { .flatMap(corrTr -> corrTr.correlationIds().stream()) .collect(Collectors.toSet()); - return ImmutableList.of(Pair.of(nodeTraits.replace(CorrelationTrait.correlations(correlationIds)), + return List.of(Pair.of(nodeTraits.replace(CorrelationTrait.correlations(correlationIds)), inTraits)); } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteHashAggregateBase.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteHashAggregateBase.java index d4b1f44c747d..a8271412bf11 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteHashAggregateBase.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteHashAggregateBase.java @@ -19,7 +19,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelCollations; import org.apache.calcite.util.Pair; @@ -33,14 +32,14 @@ interface IgniteHashAggregateBase extends TraitsAwareIgniteRel { @Override default Pair> passThroughCollation(RelTraitSet nodeTraits, List inputTraits) { // Since it's a hash aggregate it erases collation. return Pair.of(nodeTraits.replace(RelCollations.EMPTY), - ImmutableList.of(inputTraits.get(0).replace(RelCollations.EMPTY))); + List.of(inputTraits.get(0).replace(RelCollations.EMPTY))); } /** {@inheritDoc} */ @Override default List>> deriveCollation(RelTraitSet nodeTraits, List inputTraits) { // Since it's a hash aggregate it erases collation. - return ImmutableList.of(Pair.of(nodeTraits.replace(RelCollations.EMPTY), - ImmutableList.of(inputTraits.get(0).replace(RelCollations.EMPTY)))); + return List.of(Pair.of(nodeTraits.replace(RelCollations.EMPTY), + List.of(inputTraits.get(0).replace(RelCollations.EMPTY)))); } } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteMapAggregateBase.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteMapAggregateBase.java index fdc09719c2d2..cfc227dc3452 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteMapAggregateBase.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteMapAggregateBase.java @@ -18,7 +18,7 @@ package org.apache.ignite.internal.processors.query.calcite.rel.agg; import java.util.List; -import com.google.common.collect.ImmutableList; + import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelInput; @@ -67,7 +67,7 @@ protected IgniteMapAggregateBase(RelInput input) { RelTraitSet nodeTraits, List inputTraits ) { - return ImmutableList.of(Pair.of(nodeTraits, ImmutableList.of(inputTraits.get(0)))); + return List.of(Pair.of(nodeTraits, List.of(inputTraits.get(0)))); } /** {@inheritDoc} */ @@ -78,9 +78,9 @@ protected IgniteMapAggregateBase(RelInput input) { RelTraitSet in = inputTraits.get(0); if (TraitUtils.distribution(in).satisfies(IgniteDistributions.single())) - return ImmutableList.of(); + return List.of(); - return ImmutableList.of(Pair.of(nodeTraits.replace(TraitUtils.distribution(in)), ImmutableList.of(in))); + return List.of(Pair.of(nodeTraits.replace(TraitUtils.distribution(in)), List.of(in))); } /** {@inheritDoc} */ @@ -88,7 +88,7 @@ protected IgniteMapAggregateBase(RelInput input) { RelTraitSet nodeTraits, List inTraits ) { - return ImmutableList.of(Pair.of(nodeTraits.replace(TraitUtils.correlation(inTraits.get(0))), + return List.of(Pair.of(nodeTraits.replace(TraitUtils.correlation(inTraits.get(0))), inTraits)); } } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteReduceAggregateBase.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteReduceAggregateBase.java index 17310cc8aad6..9bf927ee287c 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteReduceAggregateBase.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteReduceAggregateBase.java @@ -18,7 +18,7 @@ package org.apache.ignite.internal.processors.query.calcite.rel.agg; import java.util.List; -import com.google.common.collect.ImmutableList; + import org.apache.calcite.linq4j.Ord; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelTraitSet; @@ -69,7 +69,7 @@ protected IgniteReduceAggregateBase( assert rowType != null; this.groupSet = groupSet; if (groupSets == null) - groupSets = ImmutableList.of(groupSet); + groupSets = List.of(groupSet); this.groupSets = groupSets; this.aggCalls = aggCalls; this.rowType = rowType; @@ -137,8 +137,8 @@ public List getAggregateCalls() { RelTraitSet nodeTraits, List inputTraits ) { - return ImmutableList.of( - Pair.of(nodeTraits.replace(RewindabilityTrait.ONE_WAY), ImmutableList.of(inputTraits.get(0)))); + return List.of( + Pair.of(nodeTraits.replace(RewindabilityTrait.ONE_WAY), List.of(inputTraits.get(0)))); } /** {@inheritDoc} */ @@ -148,10 +148,10 @@ public List getAggregateCalls() { ) { RelTraitSet in = inputTraits.get(0); - return ImmutableList.of( + return List.of( Pair.of( nodeTraits.replace(IgniteDistributions.single()), - ImmutableList.of(in.replace(IgniteDistributions.single())) + List.of(in.replace(IgniteDistributions.single())) ) ); } @@ -161,7 +161,7 @@ public List getAggregateCalls() { RelTraitSet nodeTraits, List inTraits ) { - return ImmutableList.of(Pair.of(nodeTraits.replace(TraitUtils.correlation(inTraits.get(0))), + return List.of(Pair.of(nodeTraits.replace(TraitUtils.correlation(inTraits.get(0))), inTraits)); } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteReduceHashAggregate.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteReduceHashAggregate.java index 39623cfab55a..479c02c73215 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteReduceHashAggregate.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteReduceHashAggregate.java @@ -19,7 +19,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptCost; import org.apache.calcite.plan.RelOptPlanner; @@ -110,7 +109,7 @@ public IgniteReduceHashAggregate(RelInput input) { /** {@inheritDoc} */ @Override public List>> deriveCollation(RelTraitSet nodeTraits, List inTraits) { - return ImmutableList.of(Pair.of(nodeTraits.replace(RelCollations.EMPTY), - ImmutableList.of(inTraits.get(0).replace(RelCollations.EMPTY)))); + return List.of(Pair.of(nodeTraits.replace(RelCollations.EMPTY), + List.of(inTraits.get(0).replace(RelCollations.EMPTY)))); } } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteSingleAggregateBase.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteSingleAggregateBase.java index aa2cb956efea..372a9e0c7143 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteSingleAggregateBase.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteSingleAggregateBase.java @@ -18,7 +18,7 @@ package org.apache.ignite.internal.processors.query.calcite.rel.agg; import java.util.List; -import com.google.common.collect.ImmutableList; + import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelInput; @@ -68,7 +68,7 @@ protected IgniteSingleAggregateBase(RelInput input) { RelTraitSet nodeTraits, List inputTraits ) { - return ImmutableList.of(Pair.of(nodeTraits, ImmutableList.of(inputTraits.get(0)))); + return List.of(Pair.of(nodeTraits, List.of(inputTraits.get(0)))); } /** {@inheritDoc} */ @@ -79,9 +79,9 @@ protected IgniteSingleAggregateBase(RelInput input) { RelTraitSet in = inputTraits.get(0); if (!TraitUtils.distribution(in).satisfies(IgniteDistributions.single())) - return ImmutableList.of(); + return List.of(); - return ImmutableList.of(Pair.of(nodeTraits.replace(IgniteDistributions.single()), ImmutableList.of(in))); + return List.of(Pair.of(nodeTraits.replace(IgniteDistributions.single()), List.of(in))); } /** {@inheritDoc} */ @@ -89,7 +89,7 @@ protected IgniteSingleAggregateBase(RelInput input) { RelTraitSet nodeTraits, List inTraits ) { - return ImmutableList.of(Pair.of(nodeTraits.replace(TraitUtils.correlation(inTraits.get(0))), + return List.of(Pair.of(nodeTraits.replace(TraitUtils.correlation(inTraits.get(0))), inTraits)); } } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteSortAggregateBase.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteSortAggregateBase.java index 8f50c4d669f4..16c3c86bfaf4 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteSortAggregateBase.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/agg/IgniteSortAggregateBase.java @@ -19,7 +19,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelCollation; import org.apache.calcite.rel.RelCollations; @@ -49,7 +48,7 @@ interface IgniteSortAggregateBase extends TraitsAwareIgniteRel { RelCollation collation = RelCollations.of(ImmutableIntList.copyOf(getGroupSet().asList())); return Pair.of(nodeTraits.replace(collation), - ImmutableList.of(inputTraits.get(0).replace(collation))); + List.of(inputTraits.get(0).replace(collation))); } /** {@inheritDoc} */ @@ -61,9 +60,9 @@ interface IgniteSortAggregateBase extends TraitsAwareIgniteRel { List newCollation = maxPrefix(inputCollation.getKeys(), getGroupSet().asSet()); if (newCollation.size() < getGroupSet().cardinality()) - return ImmutableList.of(); + return List.of(); - return ImmutableList.of(Pair.of( + return List.of(Pair.of( nodeTraits.replace(RelCollations.of(ImmutableIntList.copyOf(newCollation))), inputTraits )); diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/logical/IgniteLogicalIndexScan.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/logical/IgniteLogicalIndexScan.java index a28c59bccf02..99804f183ebf 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/logical/IgniteLogicalIndexScan.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/logical/IgniteLogicalIndexScan.java @@ -19,7 +19,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptTable; import org.apache.calcite.plan.RelTraitSet; @@ -105,6 +104,6 @@ private IgniteLogicalIndexScan( @Nullable IndexConditions idxCond, @Nullable ImmutableBitSet requiredCols ) { - super(cluster, traits, ImmutableList.of(), tbl, idxName, proj, cond, idxCond, requiredCols); + super(cluster, traits, List.of(), tbl, idxName, proj, cond, idxCond, requiredCols); } } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/logical/IgniteLogicalTableScan.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/logical/IgniteLogicalTableScan.java index 3414a8cbcccc..adb0c4ae040d 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/logical/IgniteLogicalTableScan.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/logical/IgniteLogicalTableScan.java @@ -19,7 +19,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptTable; import org.apache.calcite.plan.RelTraitSet; @@ -59,6 +58,6 @@ private IgniteLogicalTableScan( @Nullable RexNode cond, @Nullable ImmutableBitSet requiredColunms ) { - super(cluster, traits, ImmutableList.of(), tbl, proj, cond, requiredColunms); + super(cluster, traits, List.of(), tbl, proj, cond, requiredColunms); } } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteMapSetOp.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteMapSetOp.java index 22502ad4bc9b..0e1769c76df1 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteMapSetOp.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteMapSetOp.java @@ -21,7 +21,6 @@ import java.util.Set; import java.util.stream.Collectors; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.core.CorrelationId; import org.apache.calcite.rel.type.RelDataType; @@ -50,9 +49,9 @@ public interface IgniteMapSetOp extends IgniteSetOp { .allMatch(RewindabilityTrait::rewindable); if (rewindable) - return ImmutableList.of(Pair.of(nodeTraits.replace(RewindabilityTrait.REWINDABLE), inputTraits)); + return List.of(Pair.of(nodeTraits.replace(RewindabilityTrait.REWINDABLE), inputTraits)); - return ImmutableList.of(Pair.of(nodeTraits.replace(RewindabilityTrait.ONE_WAY), + return List.of(Pair.of(nodeTraits.replace(RewindabilityTrait.ONE_WAY), Commons.transform(inputTraits, t -> t.replace(RewindabilityTrait.ONE_WAY)))); } @@ -62,13 +61,13 @@ public interface IgniteMapSetOp extends IgniteSetOp { List inputTraits ) { if (inputTraits.stream().allMatch(t -> TraitUtils.distribution(t).satisfies(IgniteDistributions.single()))) - return ImmutableList.of(); // If all distributions are single or broadcast IgniteSingleMinus should be used. + return List.of(); // If all distributions are single or broadcast IgniteSingleMinus should be used. - return ImmutableList.of( + return List.of( Pair.of(nodeTraits.replace(IgniteDistributions.random()), Commons.transform(inputTraits, t -> TraitUtils.distribution(t) == IgniteDistributions.broadcast() ? // Allow broadcast with trim-exchange to be used in map-reduce set-op. - t.replace(IgniteDistributions.hash(ImmutableList.of(0))) : + t.replace(IgniteDistributions.hash(List.of(0))) : t.replace(IgniteDistributions.random()))) ); } @@ -83,7 +82,7 @@ public interface IgniteMapSetOp extends IgniteSetOp { .flatMap(corrTr -> corrTr.correlationIds().stream()) .collect(Collectors.toSet()); - return ImmutableList.of(Pair.of(nodeTraits.replace(CorrelationTrait.correlations(correlationIds)), + return List.of(Pair.of(nodeTraits.replace(CorrelationTrait.correlations(correlationIds)), inTraits)); } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteMinusBase.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteMinusBase.java index b2cf77bc2c2d..29df78fb0d4f 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteMinusBase.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteMinusBase.java @@ -18,7 +18,7 @@ package org.apache.ignite.internal.processors.query.calcite.rel.set; import java.util.List; -import com.google.common.collect.ImmutableList; + import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptCost; import org.apache.calcite.plan.RelOptPlanner; @@ -63,7 +63,7 @@ protected IgniteMinusBase(RelInput input) { /** {@inheritDoc} */ @Override public List>> deriveCollation(RelTraitSet nodeTraits, List inputTraits) { // Operation erases collation. - return ImmutableList.of(Pair.of(nodeTraits.replace(RelCollations.EMPTY), + return List.of(Pair.of(nodeTraits.replace(RelCollations.EMPTY), Commons.transform(inputTraits, t -> t.replace(RelCollations.EMPTY)))); } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteReduceIntersect.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteReduceIntersect.java index 18c4e49f2afb..6c55c5d7ddb2 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteReduceIntersect.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteReduceIntersect.java @@ -19,7 +19,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelInput; @@ -44,7 +43,7 @@ public IgniteReduceIntersect( boolean all, RelDataType rowType ) { - super(cluster, traitSet, ImmutableList.of(input), all); + super(cluster, traitSet, List.of(input), all); this.rowType = rowType; } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteReduceMinus.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteReduceMinus.java index f86646ff0373..d2c6bc350fa4 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteReduceMinus.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteReduceMinus.java @@ -19,7 +19,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelInput; @@ -44,7 +43,7 @@ public IgniteReduceMinus( boolean all, RelDataType rowType ) { - super(cluster, traitSet, ImmutableList.of(input), all); + super(cluster, traitSet, List.of(input), all); this.rowType = rowType; } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteReduceSetOp.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteReduceSetOp.java index 06669c256dbe..4dfcb9f1053a 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteReduceSetOp.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteReduceSetOp.java @@ -19,7 +19,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.util.Pair; import org.apache.ignite.internal.processors.query.calcite.exec.exp.agg.AggregateType; @@ -37,8 +36,8 @@ public interface IgniteReduceSetOp extends IgniteSetOp { RelTraitSet nodeTraits, List inputTraits ) { - return ImmutableList.of( - Pair.of(nodeTraits.replace(RewindabilityTrait.ONE_WAY), ImmutableList.of(inputTraits.get(0)))); + return List.of( + Pair.of(nodeTraits.replace(RewindabilityTrait.ONE_WAY), List.of(inputTraits.get(0)))); } /** {@inheritDoc} */ @@ -55,8 +54,8 @@ public interface IgniteReduceSetOp extends IgniteSetOp { RelTraitSet nodeTraits, List inputTraits ) { - return ImmutableList.of(Pair.of(nodeTraits.replace(IgniteDistributions.single()), - ImmutableList.of(inputTraits.get(0).replace(IgniteDistributions.single())))); + return List.of(Pair.of(nodeTraits.replace(IgniteDistributions.single()), + List.of(inputTraits.get(0).replace(IgniteDistributions.single())))); } /** {@inheritDoc} */ @@ -64,7 +63,7 @@ public interface IgniteReduceSetOp extends IgniteSetOp { RelTraitSet nodeTraits, List inTraits ) { - return ImmutableList.of(Pair.of(nodeTraits.replace(TraitUtils.correlation(inTraits.get(0))), + return List.of(Pair.of(nodeTraits.replace(TraitUtils.correlation(inTraits.get(0))), inTraits)); } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteSetOp.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteSetOp.java index 127aa0987e1e..0ec78c562b07 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteSetOp.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteSetOp.java @@ -19,7 +19,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelOptCost; import org.apache.calcite.plan.RelOptPlanner; import org.apache.calcite.plan.RelTraitSet; @@ -52,7 +51,7 @@ public interface IgniteSetOp extends TraitsAwareIgniteRel { @Override public default List>> deriveCollation(RelTraitSet nodeTraits, List inputTraits) { // Operation erases collation. - return ImmutableList.of(Pair.of(nodeTraits.replace(RelCollations.EMPTY), + return List.of(Pair.of(nodeTraits.replace(RelCollations.EMPTY), Commons.transform(inputTraits, t -> t.replace(RelCollations.EMPTY)))); } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteSingleSetOp.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteSingleSetOp.java index 3dd524928db4..ed3021dfad52 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteSingleSetOp.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rel/set/IgniteSingleSetOp.java @@ -21,7 +21,6 @@ import java.util.Set; import java.util.stream.Collectors; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.core.CorrelationId; import org.apache.calcite.util.Pair; @@ -46,9 +45,9 @@ public interface IgniteSingleSetOp extends IgniteSetOp { .allMatch(RewindabilityTrait::rewindable); if (rewindable) - return ImmutableList.of(Pair.of(nodeTraits.replace(RewindabilityTrait.REWINDABLE), inputTraits)); + return List.of(Pair.of(nodeTraits.replace(RewindabilityTrait.REWINDABLE), inputTraits)); - return ImmutableList.of(Pair.of(nodeTraits.replace(RewindabilityTrait.ONE_WAY), + return List.of(Pair.of(nodeTraits.replace(RewindabilityTrait.ONE_WAY), Commons.transform(inputTraits, t -> t.replace(RewindabilityTrait.ONE_WAY)))); } @@ -71,9 +70,9 @@ public interface IgniteSingleSetOp extends IgniteSetOp { .allMatch(d -> d.satisfies(IgniteDistributions.single())); if (!single) - return ImmutableList.of(); + return List.of(); - return ImmutableList.of(Pair.of(nodeTraits.replace(IgniteDistributions.single()), inputTraits)); + return List.of(Pair.of(nodeTraits.replace(IgniteDistributions.single()), inputTraits)); } /** {@inheritDoc} */ @@ -86,7 +85,7 @@ public interface IgniteSingleSetOp extends IgniteSetOp { .flatMap(corrTr -> corrTr.correlationIds().stream()) .collect(Collectors.toSet()); - return ImmutableList.of(Pair.of(nodeTraits.replace(CorrelationTrait.correlations(correlationIds)), + return List.of(Pair.of(nodeTraits.replace(CorrelationTrait.correlations(correlationIds)), inTraits)); } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/FilterSpoolMergeToSortedIndexSpoolRule.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/FilterSpoolMergeToSortedIndexSpoolRule.java index 5b34ca8e4734..8b29da86f89b 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/FilterSpoolMergeToSortedIndexSpoolRule.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/FilterSpoolMergeToSortedIndexSpoolRule.java @@ -16,7 +16,8 @@ */ package org.apache.ignite.internal.processors.query.calcite.rule; -import com.google.common.collect.ImmutableList; +import java.util.List; + import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptRule; import org.apache.calcite.plan.RelOptRuleCall; @@ -75,7 +76,7 @@ private FilterSpoolMergeToSortedIndexSpoolRule(Config cfg) { if (nullOrEmpty(idxCond.lowerCondition()) && nullOrEmpty(idxCond.upperCondition())) return; - RelCollation collation = TraitUtils.createCollation(ImmutableList.copyOf(idxCond.keys())); + RelCollation collation = TraitUtils.createCollation(List.copyOf(idxCond.keys())); RelNode res = new IgniteSortedIndexSpool( cluster, diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/logical/LogicalOrToUnionRule.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/logical/LogicalOrToUnionRule.java index e91d148ddbf4..df4a90d7ac86 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/logical/LogicalOrToUnionRule.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/rule/logical/LogicalOrToUnionRule.java @@ -18,7 +18,8 @@ package org.apache.ignite.internal.processors.query.calcite.rule.logical; import java.util.List; -import com.google.common.collect.ImmutableMap; +import java.util.Map; + import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptRule; import org.apache.calcite.plan.RelOptRuleCall; @@ -68,7 +69,7 @@ private LogicalOrToUnionRule(Config config) { RelNode rel0 = createUnionAll(cluster, input, operands.get(0), operands.get(1)); - call.transformTo(rel0, ImmutableMap.of( + call.transformTo(rel0, Map.of( createUnionAll(cluster, input, operands.get(1), operands.get(0)), rel0 )); } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteTableImpl.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteTableImpl.java index 93e2582c63b7..04edd7e03ff4 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteTableImpl.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/schema/IgniteTableImpl.java @@ -22,7 +22,6 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import com.google.common.collect.ImmutableList; import org.apache.calcite.plan.Convention; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptTable; @@ -154,12 +153,12 @@ private class StatisticsImpl implements Statistic { /** {@inheritDoc} */ @Override public List getReferentialConstraints() { - return ImmutableList.of(); + return List.of(); } /** {@inheritDoc} */ @Override public List getCollations() { - return ImmutableList.of(); // The method isn't used + return List.of(); // The method isn't used } /** {@inheritDoc} */ diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/sql/IgniteSqlCreateTableOption.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/sql/IgniteSqlCreateTableOption.java index f4015ec30b34..d260d94f002b 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/sql/IgniteSqlCreateTableOption.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/sql/IgniteSqlCreateTableOption.java @@ -18,7 +18,6 @@ import java.util.List; -import com.google.common.collect.ImmutableList; import org.apache.calcite.sql.SqlCall; import org.apache.calcite.sql.SqlKind; import org.apache.calcite.sql.SqlLiteral; @@ -60,7 +59,7 @@ public IgniteSqlCreateTableOption(SqlLiteral key, SqlNode value, SqlParserPos po /** {@inheritDoc} */ @NotNull @Override public List getOperandList() { - return ImmutableList.of(key, value); + return List.of(key, value); } /** {@inheritDoc} */ diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/CorrelationTrait.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/CorrelationTrait.java index d93b833a2e63..b14bae5abeb2 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/CorrelationTrait.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/CorrelationTrait.java @@ -21,7 +21,6 @@ import java.util.Collections; import java.util.Set; -import com.google.common.collect.ImmutableSet; import org.apache.calcite.plan.RelOptPlanner; import org.apache.calcite.plan.RelTrait; import org.apache.calcite.plan.RelTraitDef; @@ -49,11 +48,11 @@ public class CorrelationTrait implements RelTrait { public static final CorrelationTrait UNCORRELATED = canonize(new CorrelationTrait(Collections.emptyList())); /** */ - private final ImmutableSet correlations; + private final Set correlations; /** */ public CorrelationTrait(Collection correlationIds) { - correlations = ImmutableSet.copyOf(correlationIds); + correlations = Set.copyOf(correlationIds); } /** */ diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/DistributionTrait.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/DistributionTrait.java index 6ef5cbf12f90..7b314b3c8a6c 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/DistributionTrait.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/DistributionTrait.java @@ -17,10 +17,11 @@ package org.apache.ignite.internal.processors.query.calcite.trait; +import java.util.Comparator; +import java.util.Iterator; import java.util.List; import java.util.Objects; -import com.google.common.collect.Ordering; import org.apache.calcite.plan.RelMultipleTrait; import org.apache.calcite.plan.RelOptPlanner; import org.apache.calcite.plan.RelTrait; @@ -42,8 +43,28 @@ */ public final class DistributionTrait implements IgniteDistribution { /** */ - private static final Ordering> ORDERING = - Ordering.natural().lexicographical(); + private static final Comparator> ORDERING = (iterable0, iterable1) -> { + Iterator it0 = iterable0.iterator(); + Iterator it1 = iterable1.iterator(); + + while (it0.hasNext()) { + if (!it1.hasNext()) { + return 1; + } + + int result = Integer.compare(it0.next(), it1.next()); + + if (result != 0) { + return result; + } + } + + if (it1.hasNext()) { + return -1; + } + + return 0; + }; /** */ private final DistributionFunction function; diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/TraitUtils.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/TraitUtils.java index 667d3a9d3730..f1158c577b23 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/TraitUtils.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/TraitUtils.java @@ -17,6 +17,7 @@ package org.apache.ignite.internal.processors.query.calcite.trait; +import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -26,7 +27,6 @@ import java.util.stream.Collectors; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; import org.apache.calcite.linq4j.Ord; import org.apache.calcite.plan.RelOptCluster; import org.apache.calcite.plan.RelOptPlanner; @@ -387,7 +387,7 @@ public static Pair> passThrough(TraitsAwareIgnite List inTraits = Collections.nCopies(rel.getInputs().size(), rel.getCluster().traitSetOf(IgniteConvention.INSTANCE)); - List>> traits = new PropagationContext(ImmutableSet.of(Pair.of(requiredTraits, inTraits))) + List>> traits = new PropagationContext(Set.of(Pair.of(requiredTraits, inTraits))) .propagate((in, outs) -> singletonListFromNullable(rel.passThroughCollation(in, outs))) .propagate((in, outs) -> singletonListFromNullable(rel.passThroughDistribution(in, outs))) .propagate((in, outs) -> singletonListFromNullable(rel.passThroughRewindability(in, outs))) @@ -407,7 +407,7 @@ public static List derive(TraitsAwareIgniteRel rel, List>> combinations = combinations(outTraits, inTraits); if (combinations.isEmpty()) - return ImmutableList.of(); + return List.of(); return new PropagationContext(combinations) .propagate(rel::deriveCollation) @@ -443,7 +443,7 @@ private static boolean fillRecursive(RelTraitSet outTraits, List>> b = ImmutableSet.builder(); + Set>> b = new HashSet<>(); + for (Pair> variant : combinations) b.addAll(processor.propagate(variant.left, variant.right)); - return new PropagationContext(b.build()); + + return new PropagationContext(Set.copyOf(b)); } /** @@ -508,17 +510,19 @@ public PropagationContext propagate(TraitsPropagator processor) { */ public List nodes(RelFactory nodesCreator) { if (combinations.isEmpty()) - return ImmutableList.of(); + return List.of(); + + List nodes = new ArrayList<>(); - ImmutableList.Builder b = ImmutableList.builder(); for (Pair> variant : combinations) - b.add(nodesCreator.create(variant.left, variant.right)); - return b.build(); + nodes.add(nodesCreator.create(variant.left, variant.right)); + + return List.copyOf(nodes); } /** */ public List>> combinations() { - return ImmutableList.copyOf(combinations); + return List.copyOf(combinations); } } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/Commons.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/Commons.java index d27319fd2457..559c50507b1d 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/Commons.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/Commons.java @@ -24,6 +24,7 @@ import java.util.BitSet; import java.util.Collection; import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -548,4 +549,19 @@ public static Class nativeTypeToClass(NativeType type) { throw new IllegalArgumentException("Unsupported type " + type.spec()); } } + + /** */ + public static Comparator compoundComparator(Iterable> cmps) { + return (r1, r2) -> { + for (Comparator cmp : cmps) { + int result = cmp.compare(r1, r2); + + if (result != 0) { + return result; + } + } + + return 0; + }; + } } diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/HintUtils.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/HintUtils.java index 7947760a62e0..e718c23aba64 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/HintUtils.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/HintUtils.java @@ -18,10 +18,10 @@ package org.apache.ignite.internal.processors.query.calcite.util; import java.util.Collections; +import java.util.List; import java.util.Set; import java.util.stream.Collectors; -import com.google.common.collect.ImmutableList; import org.apache.calcite.rel.core.AggregateCall; import org.apache.calcite.rel.hint.RelHint; import org.apache.calcite.rel.logical.LogicalAggregate; @@ -36,13 +36,13 @@ private HintUtils() { } /** */ - public static boolean containsDisabledRules(ImmutableList hints) { + public static boolean containsDisabledRules(List hints) { return hints.stream() .anyMatch(h -> "DISABLE_RULE".equals(h.hintName) && !h.listOptions.isEmpty()); } /** */ - public static Set disabledRules(ImmutableList hints) { + public static Set disabledRules(List hints) { if (nullOrEmpty(hints)) return Collections.emptySet(); diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/LocalCache.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/LocalCache.java new file mode 100644 index 000000000000..5071ad7d1cc1 --- /dev/null +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/LocalCache.java @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.query.calcite.util; + +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; +import java.util.function.Function; + +/** */ +public class LocalCache { + /** */ + private final ConcurrentMap map = new ConcurrentHashMap<>(); + + /** */ + private final Function builder; + + /** */ + public LocalCache() { + this(null); + } + + /** */ + public LocalCache(Function builder) { + this.builder = builder; + } + + /** */ + public V get(K key) { + if (builder != null) + return map.computeIfAbsent(key, builder); + else + return map.get(key); + } + + /** */ + public void put(K key, V val) { + map.put(key, val); + } + + /** */ + public void clear() { + map.clear(); + } +} diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/Primitives.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/Primitives.java new file mode 100644 index 000000000000..afa1f8deb8f2 --- /dev/null +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/Primitives.java @@ -0,0 +1,105 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.query.calcite.util; + +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Objects; + +public final class Primitives { + private Primitives() {} + + /** A map from primitive types to their corresponding wrapper types. */ + private static final Map, Class> PRIMITIVE_TO_WRAPPER_TYPE; + + /** A map from wrapper types to their corresponding primitive types. */ + private static final Map, Class> WRAPPER_TO_PRIMITIVE_TYPE; + + static { + Map, Class> primToWrap = new LinkedHashMap<>(16); + Map, Class> wrapToPrim = new LinkedHashMap<>(16); + + add(primToWrap, wrapToPrim, boolean.class, Boolean.class); + add(primToWrap, wrapToPrim, byte.class, Byte.class); + add(primToWrap, wrapToPrim, char.class, Character.class); + add(primToWrap, wrapToPrim, double.class, Double.class); + add(primToWrap, wrapToPrim, float.class, Float.class); + add(primToWrap, wrapToPrim, int.class, Integer.class); + add(primToWrap, wrapToPrim, long.class, Long.class); + add(primToWrap, wrapToPrim, short.class, Short.class); + add(primToWrap, wrapToPrim, void.class, Void.class); + + PRIMITIVE_TO_WRAPPER_TYPE = Collections.unmodifiableMap(primToWrap); + WRAPPER_TO_PRIMITIVE_TYPE = Collections.unmodifiableMap(wrapToPrim); + } + + private static void add( + Map, Class> forward, + Map, Class> backward, + Class key, + Class value) { + forward.put(key, value); + backward.put(value, key); + } + + /** + * Returns {@code true} if {@code type} is one of the nine primitive-wrapper types, + * such as {@link Integer}. + * + * @see Class#isPrimitive + */ + public static boolean isWrapperType(Class type) { + return WRAPPER_TO_PRIMITIVE_TYPE.containsKey(Objects.requireNonNull(type)); + } + + /** + * Returns the corresponding wrapper type of {@code type} if it is a primitive type; + * otherwise returns {@code type} itself. + * + *
+   *     wrap(int.class) == Integer.class
+   *     wrap(Integer.class) == Integer.class
+   *     wrap(String.class) == String.class
+   * 
+ */ + public static Class wrap(Class type) { + Objects.requireNonNull(type); + + Class wrapped = (Class) PRIMITIVE_TO_WRAPPER_TYPE.get(type); + return (wrapped == null) ? type : wrapped; + } + + /** + * Returns the corresponding primitive type of {@code type} if it is a wrapper type; + * otherwise returns {@code type} itself. + * + *
+   *     unwrap(Integer.class) == int.class
+   *     unwrap(int.class) == int.class
+   *     unwrap(String.class) == String.class
+   * 
+ */ + public static Class unwrap(Class type) { + Objects.requireNonNull(type); + + Class unwrapped = (Class) WRAPPER_TO_PRIMITIVE_TYPE.get(type); + + return (unwrapped == null) ? type : unwrapped; + } +} diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/TypeUtils.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/TypeUtils.java index a99760525665..8d693d910332 100644 --- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/TypeUtils.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/util/TypeUtils.java @@ -29,7 +29,6 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; -import com.google.common.collect.ImmutableSet; import org.apache.calcite.DataContext; import org.apache.calcite.avatica.util.DateTimeUtils; import org.apache.calcite.plan.RelOptSchema; @@ -65,7 +64,7 @@ public class TypeUtils { ); /** */ - private static final Set CONVERTABLE_TYPES = ImmutableSet.of( + private static final Set CONVERTABLE_TYPES = Set.of( java.util.Date.class, java.sql.Date.class, java.sql.Time.class, diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/AbstractExecutionTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/AbstractExecutionTest.java index 986e944d01be..54b431ac86c5 100644 --- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/AbstractExecutionTest.java +++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/AbstractExecutionTest.java @@ -18,11 +18,11 @@ package org.apache.ignite.internal.processors.query.calcite.exec.rel; import java.util.Iterator; +import java.util.Map; import java.util.UUID; import java.util.function.Function; import java.util.stream.Collectors; -import com.google.common.collect.ImmutableMap; import org.apache.calcite.rel.type.RelDataType; import org.apache.calcite.rel.type.RelDataTypeField; import org.apache.ignite.internal.processors.query.calcite.exec.ArrayRowHandler; @@ -74,7 +74,7 @@ protected ExecutionContext executionContext() { UUID.randomUUID(), fragmentDesc, ArrayRowHandler.INSTANCE, - ImmutableMap.of() + Map.of() ); } diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/BaseAggregateTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/BaseAggregateTest.java index 59fef55f1f66..cc53e83be71b 100644 --- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/BaseAggregateTest.java +++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/BaseAggregateTest.java @@ -24,7 +24,6 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; -import com.google.common.collect.ImmutableList; import org.apache.calcite.rel.RelCollations; import org.apache.calcite.rel.core.AggregateCall; import org.apache.calcite.rel.type.RelDataType; @@ -78,7 +77,7 @@ public void count(TestAggregateType testAgg) { tf.createJavaType(int.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of(0)); + List grpSets = List.of(ImmutableBitSet.of(0)); RelDataType aggRowType = TypeUtils.createRowType(tf, int.class); @@ -129,7 +128,7 @@ public void min(TestAggregateType testAgg) { tf.createJavaType(int.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of(0)); + List grpSets = List.of(ImmutableBitSet.of(0)); RelDataType aggRowType = TypeUtils.createRowType(tf, int.class); @@ -180,7 +179,7 @@ public void max(TestAggregateType testAgg) { tf.createJavaType(int.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of(0)); + List grpSets = List.of(ImmutableBitSet.of(0)); RelDataType aggRowType = TypeUtils.createRowType(tf, int.class); @@ -231,7 +230,7 @@ public void avg(TestAggregateType testAgg) { tf.createJavaType(int.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of(0)); + List grpSets = List.of(ImmutableBitSet.of(0)); RelDataType aggRowType = TypeUtils.createRowType(tf, int.class); @@ -323,7 +322,7 @@ public void singleAggr(TestAggregateType testAgg, List scanInput, Obje tf.createJavaType(Integer.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of(0)); + List grpSets = List.of(ImmutableBitSet.of(0)); RelDataType aggRowType = TypeUtils.createRowType(tf, int.class); @@ -386,7 +385,7 @@ public void distinctSum(TestAggregateType testAgg) { tf.createJavaType(int.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of(0)); + List grpSets = List.of(ImmutableBitSet.of(0)); RelDataType aggRowType = TypeUtils.createRowType(tf, int.class); @@ -451,7 +450,7 @@ public void sumOnDifferentRowsCount(TestAggregateType testAgg) { tf.createJavaType(int.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of(0)); + List grpSets = List.of(ImmutableBitSet.of(0)); RelDataType aggRowType = TypeUtils.createRowType(tf, int.class); @@ -488,7 +487,7 @@ public void sumOnDifferentRowsCount(TestAggregateType testAgg) { private SingleNode createAggregateNodesChain( TestAggregateType testAgg, ExecutionContext ctx, - ImmutableList grpSets, + List grpSets, AggregateCall aggCall, RelDataType inRowType, RelDataType aggRowType, @@ -512,7 +511,7 @@ private SingleNode createAggregateNodesChain( /** */ protected abstract SingleNode createSingleAggregateNodesChain( ExecutionContext ctx, - ImmutableList grpSets, + List grpSets, AggregateCall aggCall, RelDataType inRowType, RelDataType aggRowType, @@ -523,7 +522,7 @@ protected abstract SingleNode createSingleAggregateNodesChain( /** */ protected abstract SingleNode createMapReduceAggregateNodesChain( ExecutionContext ctx, - ImmutableList grpSets, + List grpSets, AggregateCall call, RelDataType inRowType, RelDataType aggRowType, diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/ExecutionTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/ExecutionTest.java index 2f6cbe5f7f51..c3f5fd3f4622 100644 --- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/ExecutionTest.java +++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/ExecutionTest.java @@ -20,9 +20,9 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Set; import java.util.stream.Stream; -import com.google.common.collect.ImmutableSet; import org.apache.calcite.rel.core.CorrelationId; import org.apache.calcite.rel.core.JoinRelType; import org.apache.calcite.rel.type.RelDataType; @@ -462,7 +462,7 @@ public void testCorrelatedNestedLoopJoin(int leftSize, int rightSize, int rightB ctx, joinRowType, r -> r[0].equals(r[3]), - ImmutableSet.of(new CorrelationId(0)), + Set.of(new CorrelationId(0)), joinType ); diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/HashAggregateExecutionTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/HashAggregateExecutionTest.java index fb169d713efa..4504583fb1e3 100644 --- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/HashAggregateExecutionTest.java +++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/HashAggregateExecutionTest.java @@ -18,10 +18,10 @@ package org.apache.ignite.internal.processors.query.calcite.exec.rel; import java.util.Comparator; +import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; -import com.google.common.collect.ImmutableList; import org.apache.calcite.rel.RelCollation; import org.apache.calcite.rel.RelCollations; import org.apache.calcite.rel.core.AggregateCall; @@ -43,7 +43,7 @@ public class HashAggregateExecutionTest extends BaseAggregateTest { /** {@inheritDoc} */ @Override protected SingleNode createSingleAggregateNodesChain( ExecutionContext ctx, - ImmutableList grpSets, + List grpSets, AggregateCall call, RelDataType inRowType, RelDataType aggRowType, @@ -84,7 +84,7 @@ public class HashAggregateExecutionTest extends BaseAggregateTest { /** {@inheritDoc} */ @Override protected SingleNode createMapReduceAggregateNodesChain( ExecutionContext ctx, - ImmutableList grpSets, + List grpSets, AggregateCall call, RelDataType inRowType, RelDataType aggRowType, diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/HashAggregateSingleGroupExecutionTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/HashAggregateSingleGroupExecutionTest.java index edb2c1f03a98..4a3b2ba4ee46 100644 --- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/HashAggregateSingleGroupExecutionTest.java +++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/HashAggregateSingleGroupExecutionTest.java @@ -21,7 +21,6 @@ import java.util.List; import java.util.function.Supplier; -import com.google.common.collect.ImmutableList; import org.apache.calcite.rel.RelCollations; import org.apache.calcite.rel.core.AggregateCall; import org.apache.calcite.rel.type.RelDataType; @@ -72,7 +71,7 @@ public void mapReduceAvg() { tf.createJavaType(double.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of()); + List grpSets = List.of(ImmutableBitSet.of()); RelDataType mapType = IgniteMapHashAggregate.rowType(tf, true); HashAggregateNode map = new HashAggregateNode<>( @@ -130,7 +129,7 @@ public void mapReduceSum() { tf.createJavaType(int.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of()); + List grpSets = List.of(ImmutableBitSet.of()); RelDataType mapType = IgniteMapHashAggregate.rowType(tf, true); HashAggregateNode map = new HashAggregateNode<>(ctx, mapType, MAP, grpSets, @@ -174,7 +173,7 @@ public void mapReduceMin() { tf.createJavaType(int.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of()); + List grpSets = List.of(ImmutableBitSet.of()); RelDataType mapType = IgniteMapHashAggregate.rowType(tf, true); HashAggregateNode map = new HashAggregateNode<>(ctx, mapType, MAP, grpSets, @@ -218,7 +217,7 @@ public void mapReduceMax() { tf.createJavaType(int.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of()); + List grpSets = List.of(ImmutableBitSet.of()); RelDataType mapType = IgniteMapHashAggregate.rowType(tf, true); HashAggregateNode map = new HashAggregateNode<>(ctx, mapType, MAP, grpSets, @@ -262,7 +261,7 @@ public void mapReduceCount() { tf.createJavaType(int.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of()); + List grpSets = List.of(ImmutableBitSet.of()); RelDataType mapType = IgniteMapHashAggregate.rowType(tf, true); HashAggregateNode map = new HashAggregateNode<>(ctx, mapType, MAP, grpSets, @@ -306,7 +305,7 @@ public void singleAvg() { tf.createJavaType(double.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of()); + List grpSets = List.of(ImmutableBitSet.of()); RelDataType aggType = TypeUtils.createRowType(tf, int.class); HashAggregateNode agg = new HashAggregateNode<>(ctx, aggType, SINGLE, grpSets, @@ -345,7 +344,7 @@ public void singleSum() { tf.createJavaType(int.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of()); + List grpSets = List.of(ImmutableBitSet.of()); RelDataType aggType = TypeUtils.createRowType(tf, int.class); HashAggregateNode agg = new HashAggregateNode<>(ctx, aggType, SINGLE, grpSets, @@ -384,7 +383,7 @@ public void singleMin() { tf.createJavaType(int.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of()); + List grpSets = List.of(ImmutableBitSet.of()); RelDataType aggType = TypeUtils.createRowType(tf, int.class); HashAggregateNode agg = new HashAggregateNode<>(ctx, aggType, SINGLE, grpSets, @@ -423,7 +422,7 @@ public void singleMax() { tf.createJavaType(int.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of()); + List grpSets = List.of(ImmutableBitSet.of()); RelDataType aggType = TypeUtils.createRowType(tf, int.class); HashAggregateNode agg = new HashAggregateNode<>(ctx, aggType, SINGLE, grpSets, @@ -463,7 +462,7 @@ public void singleCount() { tf.createJavaType(int.class), null); - ImmutableList grpSets = ImmutableList.of(ImmutableBitSet.of()); + List grpSets = List.of(ImmutableBitSet.of()); RelDataType aggType = TypeUtils.createRowType(tf, int.class); HashAggregateNode agg = new HashAggregateNode<>( diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/SortAggregateExecutionTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/SortAggregateExecutionTest.java index 92c19e38bcc8..6593224ad803 100644 --- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/SortAggregateExecutionTest.java +++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/exec/rel/SortAggregateExecutionTest.java @@ -18,10 +18,10 @@ package org.apache.ignite.internal.processors.query.calcite.exec.rel; import java.util.Comparator; +import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; -import com.google.common.collect.ImmutableList; import org.apache.calcite.rel.RelCollation; import org.apache.calcite.rel.RelCollations; import org.apache.calcite.rel.core.AggregateCall; @@ -41,7 +41,7 @@ public class SortAggregateExecutionTest extends BaseAggregateTest { /** {@inheritDoc} */ @Override protected SingleNode createSingleAggregateNodesChain( ExecutionContext ctx, - ImmutableList grpSets, + List grpSets, AggregateCall call, RelDataType inRowType, RelDataType aggRowType, @@ -80,7 +80,7 @@ public class SortAggregateExecutionTest extends BaseAggregateTest { /** {@inheritDoc} */ @Override protected SingleNode createMapReduceAggregateNodesChain( ExecutionContext ctx, - ImmutableList grpSets, + List grpSets, AggregateCall call, RelDataType inRowType, RelDataType aggRowType, diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/planner/AbstractPlannerTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/planner/AbstractPlannerTest.java index 4bb1716fa1e1..009bc2a44271 100644 --- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/planner/AbstractPlannerTest.java +++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/planner/AbstractPlannerTest.java @@ -18,8 +18,10 @@ package org.apache.ignite.internal.processors.query.calcite.planner; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.UUID; @@ -28,7 +30,6 @@ import java.util.function.Supplier; import java.util.stream.Collectors; -import com.google.common.collect.ImmutableSet; import org.apache.calcite.config.CalciteConnectionConfig; import org.apache.calcite.plan.Contexts; import org.apache.calcite.plan.Convention; @@ -210,7 +211,7 @@ protected IgniteRel physicalPlan(String sql, IgniteSchema publicSchema, String.. try (IgnitePlanner planner = ctx.planner()) { assertNotNull(planner); - planner.setDisabledRules(ImmutableSet.copyOf(disabledRules)); + planner.setDisabledRules(new HashSet<>(Arrays.asList(disabledRules))); String qry = ctx.query(); diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/planner/PlannerTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/planner/PlannerTest.java index 10014466ec2b..12c984ed600d 100644 --- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/planner/PlannerTest.java +++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/planner/PlannerTest.java @@ -20,12 +20,12 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Set; import java.util.UUID; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; -import com.google.common.collect.ImmutableSet; import org.apache.calcite.plan.Contexts; import org.apache.calcite.plan.ConventionTraitDef; import org.apache.calcite.plan.RelOptUtil; @@ -1230,7 +1230,7 @@ public void testSplitterNonColocated() throws Exception { RelRoot relRoot; try (IgnitePlanner planner = ctx.planner()) { - planner.setDisabledRules(ImmutableSet.of("CorrelatedNestedLoopJoin")); + planner.setDisabledRules(Set.of("CorrelatedNestedLoopJoin")); assertNotNull(planner); diff --git a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/sql/SqlDdlParserTest.java b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/sql/SqlDdlParserTest.java index 32d1f8df1b13..ae1b9fb5a2a3 100644 --- a/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/sql/SqlDdlParserTest.java +++ b/modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/sql/SqlDdlParserTest.java @@ -20,7 +20,6 @@ import java.util.Objects; import java.util.function.Predicate; -import com.google.common.collect.ImmutableList; import org.apache.calcite.sql.SqlIdentifier; import org.apache.calcite.sql.SqlKind; import org.apache.calcite.sql.SqlLiteral; @@ -58,7 +57,7 @@ public void createTableSimpleCase() throws SqlParseException { IgniteSqlCreateTable createTable = (IgniteSqlCreateTable)node; - assertThat(createTable.name().names, is(ImmutableList.of("MY_TABLE"))); + assertThat(createTable.name().names, is(List.of("MY_TABLE"))); assertThat(createTable.ifNotExists, is(false)); assertThat(createTable.columnList(), hasItem(columnWithName("ID"))); assertThat(createTable.columnList(), hasItem(columnWithName("VAL"))); @@ -77,7 +76,7 @@ public void createTableQuotedIdentifiers() throws SqlParseException { IgniteSqlCreateTable createTable = (IgniteSqlCreateTable)node; - assertThat(createTable.name().names, is(ImmutableList.of("My_Table"))); + assertThat(createTable.name().names, is(List.of("My_Table"))); assertThat(createTable.ifNotExists, is(false)); assertThat(createTable.columnList(), hasItem(columnWithName("Id"))); assertThat(createTable.columnList(), hasItem(columnWithName("Val"))); @@ -96,7 +95,7 @@ public void createTableIfNotExists() throws SqlParseException { IgniteSqlCreateTable createTable = (IgniteSqlCreateTable)node; - assertThat(createTable.name().names, is(ImmutableList.of("MY_TABLE"))); + assertThat(createTable.name().names, is(List.of("MY_TABLE"))); assertThat(createTable.ifNotExists, is(true)); assertThat(createTable.columnList(), hasItem(columnWithName("ID"))); assertThat(createTable.columnList(), hasItem(columnWithName("VAL"))); @@ -116,7 +115,7 @@ public void createTableWithPkCase1() throws SqlParseException { IgniteSqlCreateTable createTable = (IgniteSqlCreateTable)node; - assertThat(createTable.name().names, is(ImmutableList.of("MY_TABLE"))); + assertThat(createTable.name().names, is(List.of("MY_TABLE"))); assertThat(createTable.ifNotExists, is(false)); assertThat(createTable.columnList(), hasItem(ofTypeMatching( "PK constraint with name \"ID\"", SqlKeyConstraint.class, @@ -140,7 +139,7 @@ public void createTableWithPkCase2() throws SqlParseException { IgniteSqlCreateTable createTable = (IgniteSqlCreateTable)node; - assertThat(createTable.name().names, is(ImmutableList.of("MY_TABLE"))); + assertThat(createTable.name().names, is(List.of("MY_TABLE"))); assertThat(createTable.ifNotExists, is(false)); assertThat(createTable.columnList(), hasItem(ofTypeMatching( "PK constraint without name containing column \"ID\"", SqlKeyConstraint.class, @@ -164,7 +163,7 @@ public void createTableWithPkCase3() throws SqlParseException { IgniteSqlCreateTable createTable = (IgniteSqlCreateTable)node; - assertThat(createTable.name().names, is(ImmutableList.of("MY_TABLE"))); + assertThat(createTable.name().names, is(List.of("MY_TABLE"))); assertThat(createTable.ifNotExists, is(false)); assertThat(createTable.columnList(), hasItem(ofTypeMatching( "PK constraint with name \"PK_KEY\" containing column \"ID\"", SqlKeyConstraint.class, @@ -188,7 +187,7 @@ public void createTableWithPkCase4() throws SqlParseException { IgniteSqlCreateTable createTable = (IgniteSqlCreateTable)node; - assertThat(createTable.name().names, is(ImmutableList.of("MY_TABLE"))); + assertThat(createTable.name().names, is(List.of("MY_TABLE"))); assertThat(createTable.ifNotExists, is(false)); assertThat(createTable.columnList(), hasItem(ofTypeMatching( "PK constraint with two columns", SqlKeyConstraint.class, diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/ITUtils.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/ITUtils.java new file mode 100644 index 000000000000..98b057c7c7e3 --- /dev/null +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/ITUtils.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * Utilities methods for integration tests. + */ +public class ITUtils { + private ITUtils() { + // No-op; + } + + /** + * Returns a reversed list of the specified list. + */ + public static List reverse(List lst) { + List res = new ArrayList<>(lst); + + Collections.reverse(res); + + return res; + } +} diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/AbstractBasicIntegrationTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/AbstractBasicIntegrationTest.java index 4f188fbd8bec..d8957d34f2be 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/AbstractBasicIntegrationTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/AbstractBasicIntegrationTest.java @@ -23,9 +23,10 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import com.google.common.collect.Lists; + import org.apache.ignite.Ignite; import org.apache.ignite.IgnitionManager; +import org.apache.ignite.internal.ITUtils; import org.apache.ignite.internal.app.IgniteImpl; import org.apache.ignite.internal.calcite.util.QueryChecker; import org.apache.ignite.internal.processors.query.calcite.QueryProcessor; @@ -123,7 +124,7 @@ static void tearDown() throws Exception { if (LOG.isInfoEnabled()) LOG.info("Start tearDown()"); - IgniteUtils.closeAll(Lists.reverse(CLUSTER_NODES)); + IgniteUtils.closeAll(ITUtils.reverse(CLUSTER_NODES)); CLUSTER_NODES.clear(); diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/ITDataTypesTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/ITDataTypesTest.java index f4ed6607f7ed..f4181b110783 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/ITDataTypesTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/ITDataTypesTest.java @@ -18,9 +18,9 @@ package org.apache.ignite.internal.calcite; import java.util.List; +import java.util.Set; import java.util.stream.Collectors; -import com.google.common.collect.ImmutableSet; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -47,7 +47,7 @@ public void testUnicodeStrings() { List> rows = sql("SELECT val FROM string_table"); - assertEquals(ImmutableSet.copyOf(values), rows.stream().map(r -> r.get(0)).collect(Collectors.toSet())); + assertEquals(Set.of(values), rows.stream().map(r -> r.get(0)).collect(Collectors.toSet())); sql("DELETE FROM string_table"); @@ -57,11 +57,11 @@ public void testUnicodeStrings() { rows = sql("SELECT val FROM string_table"); - assertEquals(ImmutableSet.copyOf(values), rows.stream().map(r -> r.get(0)).collect(Collectors.toSet())); + assertEquals(Set.of(values), rows.stream().map(r -> r.get(0)).collect(Collectors.toSet())); rows = sql("SELECT substring(val, 1, 2) FROM string_table"); - assertEquals(ImmutableSet.of("Ки", "Mü", "我是", "AS"), + assertEquals(Set.of("Ки", "Mü", "我是", "AS"), rows.stream().map(r -> r.get(0)).collect(Collectors.toSet())); for (String val : values) { diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/ITSetOpTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/ITSetOpTest.java index 69f2d85db71a..45d27f011ba1 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/ITSetOpTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/ITSetOpTest.java @@ -19,8 +19,8 @@ import java.util.List; import java.util.function.Predicate; +import java.util.stream.StreamSupport; -import com.google.common.collect.Streams; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; import org.apache.ignite.schema.SchemaBuilders; import org.apache.ignite.schema.definition.ColumnType; @@ -277,6 +277,6 @@ private Table createTable(String tableName) { } private long countIf(Iterable it, Predicate pred) { - return Streams.stream(it).filter(pred).count(); + return StreamSupport.stream(it.spliterator(), false).filter(pred).count(); } } diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/util/Commons.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/util/Commons.java index 3ecbc8c49654..9f256d2bef48 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/util/Commons.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/calcite/util/Commons.java @@ -18,12 +18,12 @@ import java.util.List; import java.util.stream.Collectors; +import java.util.stream.StreamSupport; -import com.google.common.collect.Streams; import org.apache.ignite.internal.util.Cursor; public class Commons { public static List> getAllFromCursor(Cursor> cur) { - return Streams.stream((Iterable>)cur).collect(Collectors.toList()); + return StreamSupport.stream(cur.spliterator(), false).collect(Collectors.toList()); } } diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/AbstractSchemaChangeTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/AbstractSchemaChangeTest.java index e7ad7b9974a1..f719aeb1a27b 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/AbstractSchemaChangeTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/AbstractSchemaChangeTest.java @@ -23,9 +23,10 @@ import java.util.List; import java.util.Map; import java.util.function.Supplier; -import com.google.common.collect.Lists; + import org.apache.ignite.Ignite; import org.apache.ignite.IgnitionManager; +import org.apache.ignite.internal.ITUtils; import org.apache.ignite.internal.schema.InvalidTypeException; import org.apache.ignite.internal.testframework.WorkDirectory; import org.apache.ignite.internal.testframework.WorkDirectoryExtension; @@ -117,7 +118,7 @@ void setUp(TestInfo testInfo) { /** */ @AfterEach void afterEach() throws Exception { - IgniteUtils.closeAll(Lists.reverse(clusterNodes)); + IgniteUtils.closeAll(ITUtils.reverse(clusterNodes)); } /** diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITBaselineChangesTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITBaselineChangesTest.java index 444aee54d7ab..8724150207b4 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITBaselineChangesTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITBaselineChangesTest.java @@ -23,9 +23,10 @@ import java.util.List; import java.util.Map; import java.util.Set; -import com.google.common.collect.Lists; + import org.apache.ignite.Ignite; import org.apache.ignite.IgnitionManager; +import org.apache.ignite.internal.ITUtils; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; import org.apache.ignite.internal.testframework.WorkDirectory; import org.apache.ignite.internal.testframework.WorkDirectoryExtension; @@ -89,7 +90,7 @@ void setUp(TestInfo testInfo) { /** */ @AfterEach void tearDown() throws Exception { - IgniteUtils.closeAll(Lists.reverse(clusterNodes)); + IgniteUtils.closeAll(ITUtils.reverse(clusterNodes)); } /** diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITDynamicTableCreationTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITDynamicTableCreationTest.java index 9b92c18f8039..d4f3d1b3b9aa 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITDynamicTableCreationTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITDynamicTableCreationTest.java @@ -23,9 +23,10 @@ import java.util.List; import java.util.Map; import java.util.UUID; -import com.google.common.collect.Lists; + import org.apache.ignite.Ignite; import org.apache.ignite.IgnitionManager; +import org.apache.ignite.internal.ITUtils; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; import org.apache.ignite.internal.testframework.WorkDirectory; import org.apache.ignite.internal.testframework.WorkDirectoryExtension; @@ -116,7 +117,7 @@ void setUp(TestInfo testInfo) { /** */ @AfterEach void tearDown() throws Exception { - IgniteUtils.closeAll(Lists.reverse(clusterNodes)); + IgniteUtils.closeAll(ITUtils.reverse(clusterNodes)); } /** diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITIgnitionTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITIgnitionTest.java index 3d9f3ef5b3f4..0ad156fd93a7 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITIgnitionTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITIgnitionTest.java @@ -22,9 +22,10 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import com.google.common.collect.Lists; + import org.apache.ignite.Ignite; import org.apache.ignite.IgnitionManager; +import org.apache.ignite.internal.ITUtils; import org.apache.ignite.internal.testframework.IgniteTestUtils; import org.apache.ignite.internal.testframework.WorkDirectory; import org.apache.ignite.internal.testframework.WorkDirectoryExtension; @@ -109,7 +110,7 @@ void setUp(TestInfo testInfo) { /** */ @AfterEach void tearDown() throws Exception { - IgniteUtils.closeAll(Lists.reverse(startedNodes)); + IgniteUtils.closeAll(ITUtils.reverse(startedNodes)); } /** diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITTablesApiTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITTablesApiTest.java index dde154641df1..928d50bfeb2e 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITTablesApiTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITTablesApiTest.java @@ -25,9 +25,10 @@ import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.IntStream; -import com.google.common.collect.Lists; + import org.apache.ignite.Ignite; import org.apache.ignite.IgnitionManager; +import org.apache.ignite.internal.ITUtils; import org.apache.ignite.internal.app.IgniteImpl; import org.apache.ignite.internal.metastorage.MetaStorageManager; import org.apache.ignite.internal.metastorage.client.WatchEvent; @@ -137,7 +138,7 @@ void beforeEach(TestInfo testInfo) throws Exception { */ @AfterEach void afterEach() throws Exception { - IgniteUtils.closeAll(Lists.reverse(clusterNodes)); + IgniteUtils.closeAll(ITUtils.reverse(clusterNodes)); } /** diff --git a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITThinClientConnectionTest.java b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITThinClientConnectionTest.java index 40aa5b4246b8..d1778eb4f795 100644 --- a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITThinClientConnectionTest.java +++ b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/runner/app/ITThinClientConnectionTest.java @@ -22,10 +22,11 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import com.google.common.collect.Lists; + import org.apache.ignite.Ignite; import org.apache.ignite.IgnitionManager; import org.apache.ignite.client.IgniteClient; +import org.apache.ignite.internal.ITUtils; import org.apache.ignite.internal.app.IgniteImpl; import org.apache.ignite.internal.schema.configuration.SchemaConfigurationConverter; import org.apache.ignite.internal.testframework.IgniteAbstractTest; @@ -100,7 +101,7 @@ void setup(TestInfo testInfo) { /** */ @AfterEach void tearDown() throws Exception { - IgniteUtils.closeAll(Lists.reverse(startedNodes)); + IgniteUtils.closeAll(ITUtils.reverse(startedNodes)); } /**