Apply small refactorings to Calcite codebase (Java 5, Java 7, Java 8) Use Objects.equals when possible Replace for with foreach in Mappings Use Java 7 diamond operator to reduce code verbosity Collapse identical catch blocks to multi-catch Use Double/Float/Long/Boolean hashCode from Java 8 Remove unnecessary substring call arguments Fix sqlTypeName -> SqlTypeName typo Make floorKey/ceilingKey non-static so their use in NameMap makes more sense NameMap uses COMPARATOR.floorKey(name) which is a bit weird when floorKey is static Add @SafeVarargs to methods that are obviously safe Replace anonymous types with Java 8 lambdas Use Collection#removeIf when possible Use Integer.compare when possible Suppress AssertWithSideEffects warnings Add missing check to Permutation#isValid Permutation#isValid had occurCount[target] != 0 check, however the array was never updated, so the check was useless. Remove duplicate keys from Strong#MAP Replace remove+add with set in ReduceExpressionsRule Remove redundant initializers Move dead code inside if (false) branch in org.apache.calcite.plan.volcano.RelSubset#add Revert removal of UtilTest#testHash
closes #834 Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/295ab13e Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/295ab13e Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/295ab13e Branch: refs/heads/master Commit: 295ab13e8338bdd0e0c29e051907371c9b2929aa Parents: 8f202e9 Author: Vladimir Sitnikov <[email protected]> Authored: Sun Sep 16 15:24:07 2018 +0300 Committer: Vladimir Sitnikov <[email protected]> Committed: Thu Sep 20 11:51:04 2018 +0300 ---------------------------------------------------------------------- .../adapter/cassandra/CassandraFilter.java | 8 ++-- .../adapter/cassandra/CassandraProject.java | 2 +- .../calcite/adapter/cassandra/CassandraRel.java | 6 +-- .../adapter/cassandra/CassandraRules.java | 2 +- .../adapter/cassandra/CassandraSort.java | 2 +- .../CassandraToEnumerableConverter.java | 2 +- core/src/main/java/org/apache/calcite/Demo.java | 2 +- .../enumerable/EnumerableRelImplementor.java | 2 +- .../enumerable/EnumerableTableModify.java | 2 +- .../adapter/enumerable/EnumerableValues.java | 4 +- .../adapter/enumerable/EnumerableWindow.java | 12 +++--- .../enumerable/NestedBlockBuilderImpl.java | 6 +-- .../adapter/jdbc/JdbcToEnumerableConverter.java | 2 +- .../apache/calcite/interpreter/Interpreter.java | 2 +- .../calcite/interpreter/JaninoRexCompiler.java | 4 +- .../calcite/plan/MulticastRelOptListener.java | 2 +- .../apache/calcite/plan/RelCompositeTrait.java | 6 +-- .../org/apache/calcite/plan/RelOptCluster.java | 2 +- .../org/apache/calcite/plan/RelOptCostImpl.java | 4 +- .../org/apache/calcite/plan/RelOptQuery.java | 2 +- .../org/apache/calcite/plan/RelTraitSet.java | 3 +- .../java/org/apache/calcite/plan/Strong.java | 4 -- .../org/apache/calcite/plan/TableAccessMap.java | 4 +- .../apache/calcite/plan/hep/HepInstruction.java | 2 +- .../calcite/plan/hep/HepProgramBuilder.java | 3 +- .../apache/calcite/plan/hep/HepRuleCall.java | 2 +- .../apache/calcite/plan/volcano/RelSubset.java | 4 +- .../apache/calcite/plan/volcano/RuleQueue.java | 10 ++--- .../calcite/plan/volcano/VolcanoPlanner.java | 13 ++---- .../calcite/prepare/LixToRelTranslator.java | 8 ++-- .../org/apache/calcite/rel/core/JoinInfo.java | 6 +-- .../java/org/apache/calcite/rel/core/SetOp.java | 2 +- .../apache/calcite/rel/externalize/RelJson.java | 22 +++------- .../calcite/rel/externalize/RelXmlWriter.java | 2 +- .../rel/metadata/JaninoRelMetadataProvider.java | 2 +- .../rel/metadata/RelMdExpressionLineage.java | 2 +- .../rel/rules/AbstractMaterializedViewRule.java | 2 +- .../rules/FilterTableFunctionTransposeRule.java | 2 +- .../rel/rules/JoinUnionTransposeRule.java | 2 +- .../org/apache/calcite/rel/rules/MultiJoin.java | 8 ++-- .../apache/calcite/rel/rules/PushProjector.java | 2 +- .../calcite/rel/rules/ReduceDecimalsRule.java | 6 +-- .../rel/rules/ReduceExpressionsRule.java | 3 +- .../rel/rules/SemiJoinJoinTransposeRule.java | 2 +- .../java/org/apache/calcite/rex/RexLiteral.java | 2 +- .../apache/calcite/rex/RexProgramBuilder.java | 1 + .../rex/RexSqlReflectiveConvertletTable.java | 2 +- .../rex/RexSqlStandardConvertletTable.java | 2 +- .../org/apache/calcite/rex/RexTransformer.java | 5 +-- .../org/apache/calcite/runtime/FlatLists.java | 22 +++++----- .../calcite/runtime/ResultSetEnumerable.java | 8 ++-- .../apache/calcite/runtime/SortedMultiMap.java | 4 +- .../apache/calcite/runtime/SqlFunctions.java | 4 +- .../org/apache/calcite/runtime/Utilities.java | 44 ++++++++++---------- .../apache/calcite/schema/impl/StarTable.java | 4 +- .../apache/calcite/sql/advise/SqlAdvisor.java | 12 +++--- .../calcite/sql/advise/SqlSimpleParser.java | 17 ++++---- .../apache/calcite/sql/fun/SqlCaseOperator.java | 6 +-- .../sql/fun/SqlTimestampDiffFunction.java | 24 +++++------ .../sql/parser/SqlAbstractParserImpl.java | 14 +++---- .../calcite/sql/parser/SqlParseException.java | 2 +- .../apache/calcite/sql/type/SqlTypeUtil.java | 8 ++-- .../type/TableFunctionReturnTypeInference.java | 8 ++-- .../calcite/sql/util/ListSqlOperatorTable.java | 2 +- .../org/apache/calcite/sql/util/SqlShuttle.java | 2 +- .../calcite/sql/validate/AliasNamespace.java | 4 +- .../calcite/sql/validate/SqlNameMatchers.java | 2 +- .../calcite/sql/validate/SqlValidatorImpl.java | 2 +- .../apache/calcite/sql2rel/RelDecorrelator.java | 2 + .../calcite/sql2rel/SqlToRelConverter.java | 4 +- .../calcite/util/BarfingInvocationHandler.java | 6 +-- .../java/org/apache/calcite/util/Benchmark.java | 2 +- .../calcite/util/CaseInsensitiveComparator.java | 8 ++-- .../org/apache/calcite/util/CompositeList.java | 2 +- .../org/apache/calcite/util/CompositeMap.java | 9 ++-- .../util/CompoundClosableAllocation.java | 2 +- .../util/DelegatingInvocationHandler.java | 4 +- .../java/org/apache/calcite/util/Holder.java | 2 +- .../calcite/util/ImmutableNullableList.java | 8 ++-- .../org/apache/calcite/util/JsonBuilder.java | 4 +- .../org/apache/calcite/util/Permutation.java | 1 + .../calcite/util/UnmodifiableArrayList.java | 2 +- .../main/java/org/apache/calcite/util/Util.java | 2 +- .../java/org/apache/calcite/util/XmlOutput.java | 6 +-- .../util/graph/BreadthFirstIterator.java | 8 ++-- .../calcite/util/graph/CycleDetector.java | 2 +- .../util/graph/DefaultDirectedGraph.java | 23 ++++------ .../calcite/util/graph/DepthFirstIterator.java | 2 +- .../org/apache/calcite/util/graph/Graphs.java | 2 +- .../util/graph/TopologicalOrderIterator.java | 6 +-- .../calcite/util/javac/JaninoCompiler.java | 3 +- .../calcite/util/javac/JavaCompilerArgs.java | 6 +-- .../apache/calcite/util/mapping/Mappings.java | 10 ++--- .../java/org/apache/calcite/util/UtilTest.java | 1 + .../adapter/druid/DruidSqlCastConverter.java | 2 +- .../calcite/adapter/druid/DruidTable.java | 2 +- .../adapter/druid/DruidTableFactory.java | 2 +- .../elasticsearch/ElasticsearchEnumerators.java | 30 +++++-------- .../calcite/adapter/csv/CsvEnumerator.java | 14 +------ .../calcite/adapter/csv/CsvFilterableTable.java | 8 +--- .../calcite/adapter/geode/rel/GeodeFilter.java | 4 +- .../calcite/adapter/geode/rel/GeodeSort.java | 2 +- .../calcite/linq4j/AbstractEnumerable2.java | 2 +- .../calcite/linq4j/DefaultEnumerable.java | 5 +-- .../calcite/linq4j/EnumerableDefaults.java | 29 +++++-------- .../java/org/apache/calcite/linq4j/Linq4j.java | 7 ++-- .../org/apache/calcite/linq4j/LookupImpl.java | 4 +- .../calcite/linq4j/QueryProviderImpl.java | 4 +- .../calcite/linq4j/QueryableDefaults.java | 6 +-- .../linq4j/tree/ClassDeclarationFinder.java | 11 +---- .../apache/calcite/linq4j/tree/Evaluator.java | 5 +-- .../apache/calcite/linq4j/tree/Expressions.java | 28 ++++++------- .../calcite/linq4j/tree/FunctionExpression.java | 10 ++--- .../org/apache/calcite/linq4j/tree/Types.java | 4 +- .../calcite/adapter/mongodb/MongoAggregate.java | 6 +-- .../calcite/adapter/mongodb/MongoFilter.java | 4 +- .../calcite/adapter/mongodb/MongoProject.java | 2 +- .../calcite/adapter/mongodb/MongoRel.java | 3 +- .../calcite/adapter/mongodb/MongoRules.java | 4 +- .../calcite/adapter/mongodb/MongoSort.java | 2 +- .../org/apache/calcite/adapter/pig/PigJoin.java | 3 +- .../calcite/adapter/os/VmstatTableFunction.java | 2 +- .../adapter/spark/JdbcToSparkConverter.java | 2 +- .../calcite/adapter/spark/SparkMethod.java | 3 +- .../calcite/adapter/spark/SparkRules.java | 4 +- .../adapter/splunk/SplunkPushDownRule.java | 8 ++-- .../calcite/adapter/splunk/SplunkQuery.java | 2 +- .../calcite/adapter/splunk/SplunkTable.java | 4 +- .../splunk/search/SplunkConnectionImpl.java | 8 ++-- .../adapter/splunk/util/StringUtils.java | 4 +- 130 files changed, 329 insertions(+), 429 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraFilter.java ---------------------------------------------------------------------- diff --git a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraFilter.java b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraFilter.java index 0bdc7f6..8aab55e 100644 --- a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraFilter.java +++ b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraFilter.java @@ -65,7 +65,7 @@ public class CassandraFilter extends Filter implements CassandraRel { this.partitionKeys = partitionKeys; this.singlePartition = false; - this.clusteringKeys = new ArrayList<String>(clusteringKeys); + this.clusteringKeys = new ArrayList<>(clusteringKeys); this.implicitFieldCollations = implicitFieldCollations; Translator translator = @@ -124,7 +124,7 @@ public class CassandraFilter extends Filter implements CassandraRel { List<RelFieldCollation> implicitFieldCollations) { this.rowType = rowType; this.fieldNames = CassandraRules.cassandraFieldNames(rowType); - this.partitionKeys = new HashSet<String>(partitionKeys); + this.partitionKeys = new HashSet<>(partitionKeys); this.clusteringKeys = clusteringKeys; this.restrictedClusteringKeys = 0; this.implicitFieldCollations = implicitFieldCollations; @@ -149,7 +149,7 @@ public class CassandraFilter extends Filter implements CassandraRel { } // Pull out the correct fields along with their original collations - List<RelFieldCollation> fieldCollations = new ArrayList<RelFieldCollation>(); + List<RelFieldCollation> fieldCollations = new ArrayList<>(); for (int i = restrictedClusteringKeys; i < clusteringKeys.size(); i++) { int fieldIndex = fieldNames.indexOf(clusteringKeys.get(i)); RelFieldCollation.Direction direction = implicitFieldCollations.get(i).getDirection(); @@ -192,7 +192,7 @@ public class CassandraFilter extends Filter implements CassandraRel { * @return CQL string for the predicate */ private String translateAnd(RexNode condition) { - List<String> predicates = new ArrayList<String>(); + List<String> predicates = new ArrayList<>(); for (RexNode node : RelOptUtil.conjunctions(condition)) { predicates.add(translateMatch2(node)); } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraProject.java ---------------------------------------------------------------------- diff --git a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraProject.java b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraProject.java index 5e55e46..44dbfba 100644 --- a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraProject.java +++ b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraProject.java @@ -61,7 +61,7 @@ public class CassandraProject extends Project implements CassandraRel { new CassandraRules.RexToCassandraTranslator( (JavaTypeFactory) getCluster().getTypeFactory(), CassandraRules.cassandraFieldNames(getInput().getRowType())); - final Map<String, String> fields = new LinkedHashMap<String, String>(); + final Map<String, String> fields = new LinkedHashMap<>(); for (Pair<RexNode, String> pair : getNamedProjects()) { final String name = pair.right; final String originalName = pair.left.accept(translator); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraRel.java ---------------------------------------------------------------------- diff --git a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraRel.java b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraRel.java index b74919d..998334d 100644 --- a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraRel.java +++ b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraRel.java @@ -37,11 +37,11 @@ public interface CassandraRel extends RelNode { /** Callback for the implementation process that converts a tree of * {@link CassandraRel} nodes into a CQL query. */ class Implementor { - final Map<String, String> selectFields = new LinkedHashMap<String, String>(); - final List<String> whereClause = new ArrayList<String>(); + final Map<String, String> selectFields = new LinkedHashMap<>(); + final List<String> whereClause = new ArrayList<>(); int offset = 0; int fetch = -1; - final List<String> order = new ArrayList<String>(); + final List<String> order = new ArrayList<>(); RelOptTable table; CassandraTable cassandraTable; http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraRules.java ---------------------------------------------------------------------- diff --git a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraRules.java b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraRules.java index cdf86dc..90112aa 100644 --- a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraRules.java +++ b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraRules.java @@ -129,7 +129,7 @@ public class CassandraRules { // Get field names from the scan operation CassandraTableScan scan = call.rel(1); Pair<List<String>, List<String>> keyFields = scan.cassandraTable.getKeyFields(); - Set<String> partitionKeys = new HashSet<String>(keyFields.left); + Set<String> partitionKeys = new HashSet<>(keyFields.left); List<String> fieldNames = CassandraRules.cassandraFieldNames(filter.getInput().getRowType()); List<RexNode> disjunctions = RelOptUtil.disjunctions(condition); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSort.java ---------------------------------------------------------------------- diff --git a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSort.java b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSort.java index 7baff99..aa3b0a3 100644 --- a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSort.java +++ b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraSort.java @@ -63,7 +63,7 @@ public class CassandraSort extends Sort implements CassandraRel { implementor.visitChild(0, getInput()); List<RelFieldCollation> sortCollations = collation.getFieldCollations(); - List<String> fieldOrder = new ArrayList<String>(); + List<String> fieldOrder = new ArrayList<>(); if (!sortCollations.isEmpty()) { // Construct a series of order clauses from the desired collation final List<RelDataTypeField> fields = getRowType().getFieldList(); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraToEnumerableConverter.java ---------------------------------------------------------------------- diff --git a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraToEnumerableConverter.java b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraToEnumerableConverter.java index 5961aed..a0c0be9 100644 --- a/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraToEnumerableConverter.java +++ b/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraToEnumerableConverter.java @@ -93,7 +93,7 @@ public class CassandraToEnumerableConverter } }), Pair.class)); - List<Map.Entry<String, String>> selectList = new ArrayList<Map.Entry<String, String>>(); + List<Map.Entry<String, String>> selectList = new ArrayList<>(); for (Map.Entry<String, String> entry : Pair.zip(cassandraImplementor.selectFields.keySet(), cassandraImplementor.selectFields.values())) { http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/Demo.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/Demo.java b/core/src/main/java/org/apache/calcite/Demo.java index 27f65fe..7e0bde4 100644 --- a/core/src/main/java/org/apache/calcite/Demo.java +++ b/core/src/main/java/org/apache/calcite/Demo.java @@ -26,7 +26,7 @@ public class Demo { } public static void main(String[] args) { - ArrayList<String> names = new ArrayList<String>(); + ArrayList<String> names = new ArrayList<>(); names.add("John"); names.add("Paul"); names.add("George"); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableRelImplementor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableRelImplementor.java b/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableRelImplementor.java index 58f26e7..548a891 100644 --- a/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableRelImplementor.java +++ b/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableRelImplementor.java @@ -180,7 +180,7 @@ public class EnumerableRelImplementor extends JavaRelImplementor { type.getName(), null, ImmutableList.of(Serializable.class), - new ArrayList<MemberDeclaration>()); + new ArrayList<>()); // For each field: // public T0 f0; http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableTableModify.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableTableModify.java b/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableTableModify.java index 14ac0de..ba1a208 100644 --- a/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableTableModify.java +++ b/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableTableModify.java @@ -104,7 +104,7 @@ public class EnumerableTableModify extends TableModify final JavaRowFormat format = EnumerableTableScan.deduceFormat(table); PhysType physType = PhysTypeImpl.of(typeFactory, table.getRowType(), format); - List<Expression> expressionList = new ArrayList<Expression>(); + List<Expression> expressionList = new ArrayList<>(); final PhysType childPhysType = result.physType; final ParameterExpression o_ = Expressions.parameter(childPhysType.getJavaRowType(), "o"); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableValues.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableValues.java b/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableValues.java index ebf6ffd..82b2f87 100644 --- a/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableValues.java +++ b/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableValues.java @@ -88,10 +88,10 @@ public class EnumerableValues extends Values implements EnumerableRel { pref.preferCustom()); final Type rowClass = physType.getJavaRowType(); - final List<Expression> expressions = new ArrayList<Expression>(); + final List<Expression> expressions = new ArrayList<>(); final List<RelDataTypeField> fields = rowType.getFieldList(); for (List<RexLiteral> tuple : tuples) { - final List<Expression> literals = new ArrayList<Expression>(); + final List<Expression> literals = new ArrayList<>(); for (Pair<RelDataTypeField, RexLiteral> pair : Pair.zip(fields, tuple)) { literals.add( http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableWindow.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableWindow.java b/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableWindow.java index 6b55983..bcce732 100644 --- a/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableWindow.java +++ b/core/src/main/java/org/apache/calcite/adapter/enumerable/EnumerableWindow.java @@ -166,7 +166,7 @@ public class EnumerableWindow extends Window implements EnumerableRel { Expression source_ = builder.append("source", result.block); final List<Expression> translatedConstants = - new ArrayList<Expression>(constants.size()); + new ArrayList<>(constants.size()); for (RexLiteral constant : constants) { translatedConstants.add( RexToLixTranslator.translateLiteral(constant, constant.getType(), @@ -205,7 +205,7 @@ public class EnumerableWindow extends Window implements EnumerableRel { final Expression collectionExpr = partitionIterator.left; final Expression iterator_ = partitionIterator.right; - List<AggImpState> aggs = new ArrayList<AggImpState>(); + List<AggImpState> aggs = new ArrayList<>(); List<AggregateCall> aggregateCalls = group.getAggregateCalls(this); for (int aggIdx = 0; aggIdx < aggregateCalls.size(); aggIdx++) { AggregateCall call = aggregateCalls.get(aggIdx); @@ -275,7 +275,7 @@ public class EnumerableWindow extends Window implements EnumerableRel { RexToLixTranslator.forAggregation(typeFactory, builder4, inputGetter); - final List<Expression> outputRow = new ArrayList<Expression>(); + final List<Expression> outputRow = new ArrayList<>(); int fieldCountWithAggResults = inputPhysType.getRowType().getFieldCount(); for (int i = 0; i < fieldCountWithAggResults; i++) { @@ -435,8 +435,7 @@ public class EnumerableWindow extends Window implements EnumerableRel { result.physType.getRowType(), constants, argList); - List<RexNode> args = new ArrayList<RexNode>( - inputTypes.size()); + List<RexNode> args = new ArrayList<>(inputTypes.size()); for (int i = 0; i < argList.size(); i++) { Integer idx = argList.get(i); args.add(new RexInputRef(idx, inputTypes.get(i))); @@ -803,8 +802,7 @@ public class EnumerableWindow extends Window implements EnumerableRel { .substring("ID$0$".length()) + aggName; } List<Type> state = agg.implementor.getStateType(agg.context); - final List<Expression> decls = - new ArrayList<Expression>(state.size()); + final List<Expression> decls = new ArrayList<>(state.size()); for (int i = 0; i < state.size(); i++) { Type type = state.get(i); ParameterExpression pe = http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/adapter/enumerable/NestedBlockBuilderImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/adapter/enumerable/NestedBlockBuilderImpl.java b/core/src/main/java/org/apache/calcite/adapter/enumerable/NestedBlockBuilderImpl.java index d0fadf3..f932fec 100644 --- a/core/src/main/java/org/apache/calcite/adapter/enumerable/NestedBlockBuilderImpl.java +++ b/core/src/main/java/org/apache/calcite/adapter/enumerable/NestedBlockBuilderImpl.java @@ -32,9 +32,9 @@ import java.util.Map; * @see org.apache.calcite.adapter.enumerable.StrictAggImplementor#implementAdd(AggContext, AggAddContext) */ public class NestedBlockBuilderImpl implements NestedBlockBuilder { - private final List<BlockBuilder> blocks = new ArrayList<BlockBuilder>(); + private final List<BlockBuilder> blocks = new ArrayList<>(); private final List<Map<RexNode, Boolean>> nullables = - new ArrayList<Map<RexNode, Boolean>>(); + new ArrayList<>(); /** * Constructs nested block builders starting of a given code block. @@ -83,7 +83,7 @@ public class NestedBlockBuilderImpl implements NestedBlockBuilder { if (nullables == null || nullables.isEmpty()) { next = prev; } else { - next = new HashMap<RexNode, Boolean>(nullables); + next = new HashMap<>(nullables); next.putAll(prev); next = Collections.unmodifiableMap(next); } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/adapter/jdbc/JdbcToEnumerableConverter.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/adapter/jdbc/JdbcToEnumerableConverter.java b/core/src/main/java/org/apache/calcite/adapter/jdbc/JdbcToEnumerableConverter.java index 61bf750..b018132 100644 --- a/core/src/main/java/org/apache/calcite/adapter/jdbc/JdbcToEnumerableConverter.java +++ b/core/src/main/java/org/apache/calcite/adapter/jdbc/JdbcToEnumerableConverter.java @@ -184,7 +184,7 @@ public class JdbcToEnumerableConverter final Primitive primitive = Primitive.ofBoxOr(physType.fieldClass(i)); final RelDataType fieldType = physType.getRowType().getFieldList().get(i).getType(); - final List<Expression> dateTimeArgs = new ArrayList<Expression>(); + final List<Expression> dateTimeArgs = new ArrayList<>(); dateTimeArgs.add(Expressions.constant(i + 1)); SqlTypeName sqlTypeName = fieldType.getSqlTypeName(); boolean offset = false; http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/interpreter/Interpreter.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/interpreter/Interpreter.java b/core/src/main/java/org/apache/calcite/interpreter/Interpreter.java index 2bff11c..0a85351 100644 --- a/core/src/main/java/org/apache/calcite/interpreter/Interpreter.java +++ b/core/src/main/java/org/apache/calcite/interpreter/Interpreter.java @@ -534,7 +534,7 @@ public class Interpreter extends AbstractEnumerable<Object[]> nodeInfo = new NodeInfo(rel, null); nodes.put(rel, nodeInfo); for (Edge edge : edges2) { - nodeInfo.sinks.put(edge, new ListSink(new ArrayDeque<Row>())); + nodeInfo.sinks.put(edge, new ListSink(new ArrayDeque<>())); } } if (edges.size() == 1) { http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/interpreter/JaninoRexCompiler.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/interpreter/JaninoRexCompiler.java b/core/src/main/java/org/apache/calcite/interpreter/JaninoRexCompiler.java index 7b2ddca..2020636 100644 --- a/core/src/main/java/org/apache/calcite/interpreter/JaninoRexCompiler.java +++ b/core/src/main/java/org/apache/calcite/interpreter/JaninoRexCompiler.java @@ -147,9 +147,7 @@ public class JaninoRexCompiler implements Interpreter.ScalarCompiler { } try { return getScalar(classDeclaration, s); - } catch (CompileException e) { - throw new RuntimeException(e); - } catch (IOException e) { + } catch (CompileException | IOException e) { throw new RuntimeException(e); } } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/plan/MulticastRelOptListener.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/plan/MulticastRelOptListener.java b/core/src/main/java/org/apache/calcite/plan/MulticastRelOptListener.java index 9b2bcc0..1cba6a5 100644 --- a/core/src/main/java/org/apache/calcite/plan/MulticastRelOptListener.java +++ b/core/src/main/java/org/apache/calcite/plan/MulticastRelOptListener.java @@ -34,7 +34,7 @@ public class MulticastRelOptListener implements RelOptListener { * Creates a new empty multicast listener. */ public MulticastRelOptListener() { - listeners = new ArrayList<RelOptListener>(); + listeners = new ArrayList<>(); } //~ Methods ---------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/plan/RelCompositeTrait.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/plan/RelCompositeTrait.java b/core/src/main/java/org/apache/calcite/plan/RelCompositeTrait.java index b2a4ffc..a66bf7b 100644 --- a/core/src/main/java/org/apache/calcite/plan/RelCompositeTrait.java +++ b/core/src/main/java/org/apache/calcite/plan/RelCompositeTrait.java @@ -56,14 +56,14 @@ class RelCompositeTrait<T extends RelMultipleTrait> implements RelTrait { List<T> traitList) { final RelCompositeTrait<T> compositeTrait; if (traitList.isEmpty()) { - compositeTrait = new EmptyCompositeTrait<T>(def); + compositeTrait = new EmptyCompositeTrait<>(def); } else { final RelMultipleTrait[] traits = traitList.toArray(new RelMultipleTrait[0]); for (int i = 0; i < traits.length; i++) { traits[i] = (T) def.canonize(traits[i]); } - compositeTrait = new RelCompositeTrait<T>(def, (T[]) traits); + compositeTrait = new RelCompositeTrait<>(def, (T[]) traits); } return def.canonizeComposite(compositeTrait); } @@ -120,7 +120,7 @@ class RelCompositeTrait<T extends RelMultipleTrait> implements RelTrait { } assert false; // TODO: cache duplicate composites - return new RelCompositeTrait<T>(traitDef, newTraits); + return new RelCompositeTrait<>(traitDef, newTraits); } public T trait(int i) { http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/plan/RelOptCluster.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/plan/RelOptCluster.java b/core/src/main/java/org/apache/calcite/plan/RelOptCluster.java index c853eb8..da6b8eb 100644 --- a/core/src/main/java/org/apache/calcite/plan/RelOptCluster.java +++ b/core/src/main/java/org/apache/calcite/plan/RelOptCluster.java @@ -91,7 +91,7 @@ public class RelOptCluster { public static RelOptCluster create(RelOptPlanner planner, RexBuilder rexBuilder) { return new RelOptCluster(planner, rexBuilder.getTypeFactory(), - rexBuilder, new AtomicInteger(0), new HashMap<String, RelNode>()); + rexBuilder, new AtomicInteger(0), new HashMap<>()); } //~ Methods ---------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/plan/RelOptCostImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/plan/RelOptCostImpl.java b/core/src/main/java/org/apache/calcite/plan/RelOptCostImpl.java index 4a29cd6..0c46353 100644 --- a/core/src/main/java/org/apache/calcite/plan/RelOptCostImpl.java +++ b/core/src/main/java/org/apache/calcite/plan/RelOptCostImpl.java @@ -16,8 +16,6 @@ */ package org.apache.calcite.plan; -import org.apache.calcite.runtime.Utilities; - /** * RelOptCostImpl provides a default implementation for the {@link RelOptCost} * interface. It it defined in terms of a single scalar quantity; somewhat @@ -70,7 +68,7 @@ public class RelOptCostImpl implements RelOptCost { } @Override public int hashCode() { - return Utilities.hashCode(getRows()); + return Double.hashCode(getRows()); } // implement RelOptCost http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/plan/RelOptQuery.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/plan/RelOptQuery.java b/core/src/main/java/org/apache/calcite/plan/RelOptQuery.java index 34f5c5f..e4814d3 100644 --- a/core/src/main/java/org/apache/calcite/plan/RelOptQuery.java +++ b/core/src/main/java/org/apache/calcite/plan/RelOptQuery.java @@ -58,7 +58,7 @@ public class RelOptQuery { */ @Deprecated // to be removed before 2.0 public RelOptQuery(RelOptPlanner planner) { - this(planner, new AtomicInteger(0), new HashMap<String, RelNode>()); + this(planner, new AtomicInteger(0), new HashMap<>()); } /** For use by RelOptCluster only. */ http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/plan/RelTraitSet.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/plan/RelTraitSet.java b/core/src/main/java/org/apache/calcite/plan/RelTraitSet.java index 717ef07..fa11142 100644 --- a/core/src/main/java/org/apache/calcite/plan/RelTraitSet.java +++ b/core/src/main/java/org/apache/calcite/plan/RelTraitSet.java @@ -539,8 +539,7 @@ public final class RelTraitSet extends AbstractList<RelTrait> { /** Cache of trait sets. */ private static class Cache { - final Map<List<RelTrait>, RelTraitSet> map = - new HashMap<List<RelTrait>, RelTraitSet>(); + final Map<List<RelTrait>, RelTraitSet> map = new HashMap<>(); Cache() { } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/plan/Strong.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/plan/Strong.java b/core/src/main/java/org/apache/calcite/plan/Strong.java index 0c2bb9e..3b2b8d8 100644 --- a/core/src/main/java/org/apache/calcite/plan/Strong.java +++ b/core/src/main/java/org/apache/calcite/plan/Strong.java @@ -204,8 +204,6 @@ public class Strong { map.put(SqlKind.IS_NOT_TRUE, Policy.NOT_NULL); map.put(SqlKind.IS_FALSE, Policy.NOT_NULL); map.put(SqlKind.IS_NOT_FALSE, Policy.NOT_NULL); - map.put(SqlKind.IS_DISTINCT_FROM, Policy.NOT_NULL); - map.put(SqlKind.IS_NOT_DISTINCT_FROM, Policy.NOT_NULL); map.put(SqlKind.NOT, Policy.ANY); map.put(SqlKind.EQUALS, Policy.ANY); @@ -216,8 +214,6 @@ public class Strong { map.put(SqlKind.GREATER_THAN_OR_EQUAL, Policy.ANY); map.put(SqlKind.LIKE, Policy.ANY); map.put(SqlKind.SIMILAR, Policy.ANY); - map.put(SqlKind.PLUS_PREFIX, Policy.ANY); - map.put(SqlKind.MINUS_PREFIX, Policy.ANY); map.put(SqlKind.PLUS, Policy.ANY); map.put(SqlKind.PLUS_PREFIX, Policy.ANY); map.put(SqlKind.MINUS, Policy.ANY); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/plan/TableAccessMap.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/plan/TableAccessMap.java b/core/src/main/java/org/apache/calcite/plan/TableAccessMap.java index 3e2843d..259cdf9 100644 --- a/core/src/main/java/org/apache/calcite/plan/TableAccessMap.java +++ b/core/src/main/java/org/apache/calcite/plan/TableAccessMap.java @@ -84,7 +84,7 @@ public class TableAccessMap { // input rel, because we use it for cached statements, and we don't // want to retain any rel references after preparation completes. - accessMap = new HashMap<List<String>, Mode>(); + accessMap = new HashMap<>(); RelOptUtil.go( new TableRelVisitor(), rel); @@ -97,7 +97,7 @@ public class TableAccessMap { * @param mode access mode for the table */ public TableAccessMap(List<String> table, Mode mode) { - accessMap = new HashMap<List<String>, Mode>(); + accessMap = new HashMap<>(); accessMap.put(table, mode); } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/plan/hep/HepInstruction.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/plan/hep/HepInstruction.java b/core/src/main/java/org/apache/calcite/plan/hep/HepInstruction.java index 2529372..d89e58f 100644 --- a/core/src/main/java/org/apache/calcite/plan/hep/HepInstruction.java +++ b/core/src/main/java/org/apache/calcite/plan/hep/HepInstruction.java @@ -186,7 +186,7 @@ abstract class HepInstruction { return; } - ruleSet = new HashSet<RelOptRule>(); + ruleSet = new HashSet<>(); collecting = true; } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/plan/hep/HepProgramBuilder.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/plan/hep/HepProgramBuilder.java b/core/src/main/java/org/apache/calcite/plan/hep/HepProgramBuilder.java index b698090..2a4ca27 100644 --- a/core/src/main/java/org/apache/calcite/plan/hep/HepProgramBuilder.java +++ b/core/src/main/java/org/apache/calcite/plan/hep/HepProgramBuilder.java @@ -30,8 +30,7 @@ import java.util.List; public class HepProgramBuilder { //~ Instance fields -------------------------------------------------------- - private final List<HepInstruction> instructions = - new ArrayList<HepInstruction>(); + private final List<HepInstruction> instructions = new ArrayList<>(); private HepInstruction.BeginGroup group; http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/plan/hep/HepRuleCall.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/plan/hep/HepRuleCall.java b/core/src/main/java/org/apache/calcite/plan/hep/HepRuleCall.java index 8a280f8..3a40ec0 100644 --- a/core/src/main/java/org/apache/calcite/plan/hep/HepRuleCall.java +++ b/core/src/main/java/org/apache/calcite/plan/hep/HepRuleCall.java @@ -46,7 +46,7 @@ public class HepRuleCall extends RelOptRuleCall { List<RelNode> parents) { super(planner, operand, rels, nodeChildren, parents); - results = new ArrayList<RelNode>(); + results = new ArrayList<>(); } //~ Methods ---------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/plan/volcano/RelSubset.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/plan/volcano/RelSubset.java b/core/src/main/java/org/apache/calcite/plan/volcano/RelSubset.java index 8352ffe..a2b185e 100644 --- a/core/src/main/java/org/apache/calcite/plan/volcano/RelSubset.java +++ b/core/src/main/java/org/apache/calcite/plan/volcano/RelSubset.java @@ -277,9 +277,9 @@ public class RelSubset extends AbstractRelNode { "rowtype of set", getRowType(), Litmus.THROW); } set.addInternal(rel); - Set<CorrelationId> variablesSet = RelOptUtil.getVariablesSet(rel); - Set<CorrelationId> variablesStopped = rel.getVariablesSet(); if (false) { + Set<CorrelationId> variablesSet = RelOptUtil.getVariablesSet(rel); + Set<CorrelationId> variablesStopped = rel.getVariablesSet(); Set<CorrelationId> variablesPropagated = Util.minus(variablesSet, variablesStopped); assert set.variablesPropagated.containsAll(variablesPropagated); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/plan/volcano/RuleQueue.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/plan/volcano/RuleQueue.java b/core/src/main/java/org/apache/calcite/plan/volcano/RuleQueue.java index 10b9553..13dd779 100644 --- a/core/src/main/java/org/apache/calcite/plan/volcano/RuleQueue.java +++ b/core/src/main/java/org/apache/calcite/plan/volcano/RuleQueue.java @@ -117,7 +117,7 @@ class RuleQueue { // init empty sets for all phases for (VolcanoPlannerPhase phase : VolcanoPlannerPhase.values()) { - phaseRuleMapping.put(phase, new HashSet<String>()); + phaseRuleMapping.put(phase, new HashSet<>()); } // configure phases @@ -238,18 +238,14 @@ class RuleQueue { public int compare(RelSubset o1, RelSubset o2) { int o1children = countChildren(o1); int o2children = countChildren(o2); - int c = compare(o1children, o2children); + int c = Integer.compare(o1children, o2children); if (c == 0) { // for determinism - c = compare(o1.getId(), o2.getId()); + c = Integer.compare(o1.getId(), o2.getId()); } return c; } - private int compare(int i1, int i2) { - return (i1 < i2) ? -1 : ((i1 == i2) ? 0 : 1); - } - private int countChildren(RelSubset subset) { int count = 0; for (RelNode rel : subset.getRels()) { http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlanner.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlanner.java b/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlanner.java index 20eadfa..834fe5e 100644 --- a/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlanner.java +++ b/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoPlanner.java @@ -79,6 +79,7 @@ import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.Comparator; import java.util.Deque; import java.util.HashMap; import java.util.HashSet; @@ -501,13 +502,7 @@ public class VolcanoPlanner extends AbstractRelOptPlanner { unmapRuleDescription(rule); // Remove operands. - for (Iterator<RelOptRuleOperand> iter = classOperands.values().iterator(); - iter.hasNext();) { - RelOptRuleOperand entry = iter.next(); - if (entry.getRule().equals(rule)) { - iter.remove(); - } - } + classOperands.values().removeIf(entry -> entry.getRule().equals(rule)); // Remove trait mappings. (In particular, entries from conversion // graph.) @@ -1165,7 +1160,7 @@ public class VolcanoPlanner extends AbstractRelOptPlanner { pw.println("Original rel:"); pw.println(originalRootString); pw.println("Sets:"); - Ordering<RelSet> ordering = Ordering.from((o1, o2) -> o1.id - o2.id); + Ordering<RelSet> ordering = Ordering.from(Comparator.comparingInt(o -> o.id)); for (RelSet set : ordering.immutableSortedCopy(allSets)) { pw.println("Set#" + set.id + ", type: " + set.subsets.get(0).getRowType()); @@ -1637,7 +1632,7 @@ public class VolcanoPlanner extends AbstractRelOptPlanner { // not established. So, give the subset another change to figure out // its cost. final RelMetadataQuery mq = rel.getCluster().getMetadataQuery(); - subset.propagateCostImprovements(this, mq, rel, new HashSet<RelSubset>()); + subset.propagateCostImprovements(this, mq, rel, new HashSet<>()); return subset; } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/prepare/LixToRelTranslator.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/prepare/LixToRelTranslator.java b/core/src/main/java/org/apache/calcite/prepare/LixToRelTranslator.java index 460e2ca..6994550 100644 --- a/core/src/main/java/org/apache/calcite/prepare/LixToRelTranslator.java +++ b/core/src/main/java/org/apache/calcite/prepare/LixToRelTranslator.java @@ -71,7 +71,7 @@ class LixToRelTranslator implements RelOptTable.ToRelContext { public <T> RelNode translate(Queryable<T> queryable) { QueryableRelBuilder<T> translatorQueryable = - new QueryableRelBuilder<T>(this); + new QueryableRelBuilder<>(this); return translatorQueryable.toRel(queryable); } @@ -132,7 +132,7 @@ class LixToRelTranslator implements RelOptTable.ToRelContext { CalcitePrepareImpl.EmptyScalarTranslator .empty(rexBuilder) .bind(expression.parameterList, list); - final List<RexNode> rexList = new ArrayList<RexNode>(); + final List<RexNode> rexList = new ArrayList<>(); final Expression simple = Blocks.simple(expression.body); for (Expression expression1 : fieldExpressions(simple)) { rexList.add(translator.toRex(expression1)); @@ -153,7 +153,7 @@ class LixToRelTranslator implements RelOptTable.ToRelContext { List<RexNode> toRexList( FunctionExpression expression, RelNode... inputs) { - List<RexNode> list = new ArrayList<RexNode>(); + List<RexNode> list = new ArrayList<>(); RexBuilder rexBuilder = cluster.getRexBuilder(); for (RelNode input : inputs) { list.add(rexBuilder.makeRangeReference(input)); @@ -166,7 +166,7 @@ class LixToRelTranslator implements RelOptTable.ToRelContext { RexNode toRex( FunctionExpression expression, RelNode... inputs) { - List<RexNode> list = new ArrayList<RexNode>(); + List<RexNode> list = new ArrayList<>(); RexBuilder rexBuilder = cluster.getRexBuilder(); for (RelNode input : inputs) { list.add(rexBuilder.makeRangeReference(input)); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rel/core/JoinInfo.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/core/JoinInfo.java b/core/src/main/java/org/apache/calcite/rel/core/JoinInfo.java index 973734c..6588ffa 100644 --- a/core/src/main/java/org/apache/calcite/rel/core/JoinInfo.java +++ b/core/src/main/java/org/apache/calcite/rel/core/JoinInfo.java @@ -53,9 +53,9 @@ public abstract class JoinInfo { /** Creates a {@code JoinInfo} by analyzing a condition. */ public static JoinInfo of(RelNode left, RelNode right, RexNode condition) { - final List<Integer> leftKeys = new ArrayList<Integer>(); - final List<Integer> rightKeys = new ArrayList<Integer>(); - final List<Boolean> filterNulls = new ArrayList<Boolean>(); + final List<Integer> leftKeys = new ArrayList<>(); + final List<Integer> rightKeys = new ArrayList<>(); + final List<Boolean> filterNulls = new ArrayList<>(); RexNode remaining = RelOptUtil.splitJoinCondition(left, right, condition, leftKeys, rightKeys, filterNulls); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rel/core/SetOp.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/core/SetOp.java b/core/src/main/java/org/apache/calcite/rel/core/SetOp.java index eef57c3..6596b61 100644 --- a/core/src/main/java/org/apache/calcite/rel/core/SetOp.java +++ b/core/src/main/java/org/apache/calcite/rel/core/SetOp.java @@ -82,7 +82,7 @@ public abstract class SetOp extends AbstractRelNode { } @Override public void replaceInput(int ordinalInParent, RelNode p) { - final List<RelNode> newInputs = new ArrayList<RelNode>(inputs); + final List<RelNode> newInputs = new ArrayList<>(inputs); newInputs.set(ordinalInParent, p); inputs = ImmutableList.copyOf(newInputs); recomputeDigest(); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rel/externalize/RelJson.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/externalize/RelJson.java b/core/src/main/java/org/apache/calcite/rel/externalize/RelJson.java index d8db9c3..422be42 100644 --- a/core/src/main/java/org/apache/calcite/rel/externalize/RelJson.java +++ b/core/src/main/java/org/apache/calcite/rel/externalize/RelJson.java @@ -62,8 +62,7 @@ import java.util.Map; * into JSON format. */ public class RelJson { - private final Map<String, Constructor> constructorMap = - new HashMap<String, Constructor>(); + private final Map<String, Constructor> constructorMap = new HashMap<>(); private final JsonBuilder jsonBuilder; public static final List<String> PACKAGES = @@ -83,16 +82,8 @@ public class RelJson { Constructor constructor = getConstructor(type); try { return (RelNode) constructor.newInstance(map); - } catch (InstantiationException e) { - throw new RuntimeException( - "while invoking constructor for type '" + type + "'", e); - } catch (IllegalAccessException e) { - throw new RuntimeException( - "while invoking constructor for type '" + type + "'", e); - } catch (InvocationTargetException e) { - throw new RuntimeException( - "while invoking constructor for type '" + type + "'", e); - } catch (ClassCastException e) { + } catch (InstantiationException | ClassCastException | InvocationTargetException + | IllegalAccessException e) { throw new RuntimeException( "while invoking constructor for type '" + type + "'", e); } @@ -152,7 +143,7 @@ public class RelJson { } public Object toJson(RelCollationImpl node) { - final List<Object> list = new ArrayList<Object>(); + final List<Object> list = new ArrayList<>(); for (RelFieldCollation fieldCollation : node.getFieldCollations()) { final Map<String, Object> map = jsonBuilder.map(); map.put("field", fieldCollation.getFieldIndex()); @@ -165,8 +156,7 @@ public class RelJson { public RelCollation toCollation( List<Map<String, Object>> jsonFieldCollations) { - final List<RelFieldCollation> fieldCollations = - new ArrayList<RelFieldCollation>(); + final List<RelFieldCollation> fieldCollations = new ArrayList<>(); for (Map<String, Object> map : jsonFieldCollations) { fieldCollations.add(toFieldCollation(map)); } @@ -429,7 +419,7 @@ public class RelJson { } private List<RexNode> toRexList(RelInput relInput, List operands) { - final List<RexNode> list = new ArrayList<RexNode>(); + final List<RexNode> list = new ArrayList<>(); for (Object operand : operands) { list.add(toRex(relInput, operand)); } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rel/externalize/RelXmlWriter.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/externalize/RelXmlWriter.java b/core/src/main/java/org/apache/calcite/rel/externalize/RelXmlWriter.java index 908eb99..92c96ee 100644 --- a/core/src/main/java/org/apache/calcite/rel/externalize/RelXmlWriter.java +++ b/core/src/main/java/org/apache/calcite/rel/externalize/RelXmlWriter.java @@ -95,7 +95,7 @@ public class RelXmlWriter extends RelWriterImpl { xmlOutput.endBeginTag("RelNode"); - final List<RelNode> inputs = new ArrayList<RelNode>(); + final List<RelNode> inputs = new ArrayList<>(); for (Pair<String, Object> pair : values) { if (pair.right instanceof RelNode) { inputs.add((RelNode) pair.right); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rel/metadata/JaninoRelMetadataProvider.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/JaninoRelMetadataProvider.java b/core/src/main/java/org/apache/calcite/rel/metadata/JaninoRelMetadataProvider.java index e3e4407..e206ff3 100644 --- a/core/src/main/java/org/apache/calcite/rel/metadata/JaninoRelMetadataProvider.java +++ b/core/src/main/java/org/apache/calcite/rel/metadata/JaninoRelMetadataProvider.java @@ -370,7 +370,7 @@ public class JaninoRelMetadataProvider implements RelMetadataProvider { buff.append(pair.getKey()); } } - final List<Object> argList = new ArrayList<Object>(Pair.right(providerList)); + final List<Object> argList = new ArrayList<>(Pair.right(providerList)); argList.add(0, ImmutableList.copyOf(relClasses)); try { return compile(name, buff.toString(), def, argList); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rel/metadata/RelMdExpressionLineage.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdExpressionLineage.java b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdExpressionLineage.java index 1afadc3..d456c81 100644 --- a/core/src/main/java/org/apache/calcite/rel/metadata/RelMdExpressionLineage.java +++ b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdExpressionLineage.java @@ -388,7 +388,7 @@ public class RelMdExpressionLineage } return createAllPossibleExpressions(rexBuilder, expr, predFieldsUsed, mapping, - new HashMap<RexInputRef, RexNode>()); + new HashMap<>()); } private static Set<RexNode> createAllPossibleExpressions(RexBuilder rexBuilder, http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java b/core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java index 54da1e4..d52ea47 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/AbstractMaterializedViewRule.java @@ -1252,7 +1252,7 @@ public abstract class AbstractMaterializedViewRule extends RelOptRule { if (topProject != null && !unionRewriting) { // We have a Project on top, gather only what is needed final RelOptUtil.InputFinder inputFinder = - new RelOptUtil.InputFinder(new LinkedHashSet<RelDataTypeField>()); + new RelOptUtil.InputFinder(new LinkedHashSet<>()); for (RexNode e : topProject.getChildExps()) { e.accept(inputFinder); } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rel/rules/FilterTableFunctionTransposeRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/FilterTableFunctionTransposeRule.java b/core/src/main/java/org/apache/calcite/rel/rules/FilterTableFunctionTransposeRule.java index a151487..743a9d0 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/FilterTableFunctionTransposeRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/FilterTableFunctionTransposeRule.java @@ -87,7 +87,7 @@ public class FilterTableFunctionTransposeRule extends RelOptRule { return; } } - final List<RelNode> newFuncInputs = new ArrayList<RelNode>(); + final List<RelNode> newFuncInputs = new ArrayList<>(); final RelOptCluster cluster = funcRel.getCluster(); final RexNode condition = filter.getCondition(); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rel/rules/JoinUnionTransposeRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/JoinUnionTransposeRule.java b/core/src/main/java/org/apache/calcite/rel/rules/JoinUnionTransposeRule.java index acd4577..72be74a 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/JoinUnionTransposeRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/JoinUnionTransposeRule.java @@ -96,7 +96,7 @@ public class JoinUnionTransposeRule extends RelOptRule { return; } } - List<RelNode> newUnionInputs = new ArrayList<RelNode>(); + List<RelNode> newUnionInputs = new ArrayList<>(); for (RelNode input : unionRel.getInputs()) { RelNode joinLeft; RelNode joinRight; http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rel/rules/MultiJoin.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/MultiJoin.java b/core/src/main/java/org/apache/calcite/rel/rules/MultiJoin.java index 153f31b..a362409 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/MultiJoin.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/MultiJoin.java @@ -134,7 +134,7 @@ public final class MultiJoin extends AbstractRelNode { * Returns a deep copy of {@link #joinFieldRefCountsMap}. */ private Map<Integer, int[]> cloneJoinFieldRefCountsMap() { - Map<Integer, int[]> clonedMap = new HashMap<Integer, int[]>(); + Map<Integer, int[]> clonedMap = new HashMap<>(); for (int i = 0; i < inputs.size(); i++) { clonedMap.put(i, joinFieldRefCountsMap.get(i).toIntArray()); } @@ -142,9 +142,9 @@ public final class MultiJoin extends AbstractRelNode { } public RelWriter explainTerms(RelWriter pw) { - List<String> joinTypeNames = new ArrayList<String>(); - List<String> outerJoinConds = new ArrayList<String>(); - List<String> projFieldObjects = new ArrayList<String>(); + List<String> joinTypeNames = new ArrayList<>(); + List<String> outerJoinConds = new ArrayList<>(); + List<String> projFieldObjects = new ArrayList<>(); for (int i = 0; i < inputs.size(); i++) { joinTypeNames.add(joinTypes.get(i).name()); if (outerJoinConditions.get(i) == null) { http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rel/rules/PushProjector.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/PushProjector.java b/core/src/main/java/org/apache/calcite/rel/rules/PushProjector.java index 22b8d63..e0d6b71 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/PushProjector.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/PushProjector.java @@ -503,7 +503,7 @@ public class PushProjector { } int refIdx = offset - 1; List<Pair<RexNode, String>> newProjects = - new ArrayList<Pair<RexNode, String>>(); + new ArrayList<>(); List<RelDataTypeField> destFields = projChild.getRowType().getFieldList(); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rel/rules/ReduceDecimalsRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/ReduceDecimalsRule.java b/core/src/main/java/org/apache/calcite/rel/rules/ReduceDecimalsRule.java index 7af2264..1242d51 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/ReduceDecimalsRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/ReduceDecimalsRule.java @@ -127,8 +127,8 @@ public class ReduceDecimalsRule extends RelOptRule { private final ExpanderMap expanderMap; public DecimalShuttle(RexBuilder rexBuilder) { - irreducible = new HashMap<Pair<String, String>, RexNode>(); - results = new HashMap<Pair<String, String>, RexNode>(); + irreducible = new HashMap<>(); + results = new HashMap<>(); expanderMap = new ExpanderMap(rexBuilder); } @@ -224,7 +224,7 @@ public class ReduceDecimalsRule extends RelOptRule { private RexExpander defaultExpander; private ExpanderMap(RexBuilder rexBuilder) { - map = new HashMap<SqlOperator, RexExpander>(); + map = new HashMap<>(); registerExpanders(rexBuilder); } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rel/rules/ReduceExpressionsRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/ReduceExpressionsRule.java b/core/src/main/java/org/apache/calcite/rel/rules/ReduceExpressionsRule.java index a3ae9d9..09fdeaa 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/ReduceExpressionsRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/ReduceExpressionsRule.java @@ -546,8 +546,7 @@ public abstract class ReduceExpressionsRule extends RelOptRule { for (int i = 0; i < expList.size(); i++) { RexNode expr2 = simplifier.apply(expList.get(i)); if (!expr2.toString().equals(expList.get(i).toString())) { - expList.remove(i); - expList.add(i, expr2); + expList.set(i, expr2); simplified = true; } } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rel/rules/SemiJoinJoinTransposeRule.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rel/rules/SemiJoinJoinTransposeRule.java b/core/src/main/java/org/apache/calcite/rel/rules/SemiJoinJoinTransposeRule.java index f7e4f48..7fa1a35 100644 --- a/core/src/main/java/org/apache/calcite/rel/rules/SemiJoinJoinTransposeRule.java +++ b/core/src/main/java/org/apache/calcite/rel/rules/SemiJoinJoinTransposeRule.java @@ -80,7 +80,7 @@ public class SemiJoinJoinTransposeRule extends RelOptRule { int nFieldsY = join.getRight().getRowType().getFieldList().size(); int nFieldsZ = semiJoin.getRight().getRowType().getFieldList().size(); int nTotalFields = nFieldsX + nFieldsY + nFieldsZ; - List<RelDataTypeField> fields = new ArrayList<RelDataTypeField>(); + List<RelDataTypeField> fields = new ArrayList<>(); // create a list of fields for the full join result; note that // we can't simply use the fields from the semi-join because the http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rex/RexLiteral.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rex/RexLiteral.java b/core/src/main/java/org/apache/calcite/rex/RexLiteral.java index ade5556..2fd97ad 100644 --- a/core/src/main/java/org/apache/calcite/rex/RexLiteral.java +++ b/core/src/main/java/org/apache/calcite/rex/RexLiteral.java @@ -993,7 +993,7 @@ public class RexLiteral extends RexNode { } private static boolean equals(Object o1, Object o2) { - return (o1 == null) ? (o2 == null) : o1.equals(o2); + return Objects.equals(o1, o2); } public <R> R accept(RexVisitor<R> visitor) { http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rex/RexProgramBuilder.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rex/RexProgramBuilder.java b/core/src/main/java/org/apache/calcite/rex/RexProgramBuilder.java index a4a62d9..a7aacd8 100644 --- a/core/src/main/java/org/apache/calcite/rex/RexProgramBuilder.java +++ b/core/src/main/java/org/apache/calcite/rex/RexProgramBuilder.java @@ -158,6 +158,7 @@ public class RexProgramBuilder { */ private static boolean assertionsAreEnabled() { boolean assertionsEnabled = false; + //noinspection AssertWithSideEffects assert assertionsEnabled = true; return assertionsEnabled; } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rex/RexSqlReflectiveConvertletTable.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rex/RexSqlReflectiveConvertletTable.java b/core/src/main/java/org/apache/calcite/rex/RexSqlReflectiveConvertletTable.java index 596ebd5..a571331 100644 --- a/core/src/main/java/org/apache/calcite/rex/RexSqlReflectiveConvertletTable.java +++ b/core/src/main/java/org/apache/calcite/rex/RexSqlReflectiveConvertletTable.java @@ -27,7 +27,7 @@ import java.util.Map; public class RexSqlReflectiveConvertletTable implements RexSqlConvertletTable { //~ Instance fields -------------------------------------------------------- - private final Map<Object, Object> map = new HashMap<Object, Object>(); + private final Map<Object, Object> map = new HashMap<>(); //~ Constructors ----------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rex/RexSqlStandardConvertletTable.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rex/RexSqlStandardConvertletTable.java b/core/src/main/java/org/apache/calcite/rex/RexSqlStandardConvertletTable.java index e93df95..159b281 100644 --- a/core/src/main/java/org/apache/calcite/rex/RexSqlStandardConvertletTable.java +++ b/core/src/main/java/org/apache/calcite/rex/RexSqlStandardConvertletTable.java @@ -196,7 +196,7 @@ public class RexSqlStandardConvertletTable return null; } List<SqlNode> operandList = - new ArrayList<SqlNode>(Arrays.asList(operands)); + new ArrayList<>(Arrays.asList(operands)); SqlDataTypeSpec typeSpec = SqlTypeUtil.convertTypeToSpec(call.getType()); operandList.add(typeSpec); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/rex/RexTransformer.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/rex/RexTransformer.java b/core/src/main/java/org/apache/calcite/rex/RexTransformer.java index 307b466..13e3199 100644 --- a/core/src/main/java/org/apache/calcite/rex/RexTransformer.java +++ b/core/src/main/java/org/apache/calcite/rex/RexTransformer.java @@ -39,8 +39,7 @@ public class RexTransformer { private RexNode root; private final RexBuilder rexBuilder; private int isParentsCount; - private final Set<SqlOperator> transformableOperators = - new HashSet<SqlOperator>(); + private final Set<SqlOperator> transformableOperators = new HashSet<>(); //~ Constructors ----------------------------------------------------------- @@ -159,7 +158,7 @@ public class RexTransformer { RexCall call = (RexCall) node; // Transform children (if any) before transforming node itself. - final ArrayList<RexNode> operands = new ArrayList<RexNode>(); + final ArrayList<RexNode> operands = new ArrayList<>(); for (RexNode operand : call.operands) { operands.add(transformNullSemantics(operand)); } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/runtime/FlatLists.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/runtime/FlatLists.java b/core/src/main/java/org/apache/calcite/runtime/FlatLists.java index d07014a..2dce103 100644 --- a/core/src/main/java/org/apache/calcite/runtime/FlatLists.java +++ b/core/src/main/java/org/apache/calcite/runtime/FlatLists.java @@ -49,32 +49,32 @@ public class FlatLists { /** Creates a flat list with 1 element. */ public static <T> List<T> of(T t0) { - return new Flat1List<T>(t0); + return new Flat1List<>(t0); } /** Creates a flat list with 2 elements. */ public static <T> List<T> of(T t0, T t1) { - return new Flat2List<T>(t0, t1); + return new Flat2List<>(t0, t1); } /** Creates a flat list with 3 elements. */ public static <T> List<T> of(T t0, T t1, T t2) { - return new Flat3List<T>(t0, t1, t2); + return new Flat3List<>(t0, t1, t2); } /** Creates a flat list with 4 elements. */ public static <T> List<T> of(T t0, T t1, T t2, T t3) { - return new Flat4List<T>(t0, t1, t2, t3); + return new Flat4List<>(t0, t1, t2, t3); } /** Creates a flat list with 6 elements. */ public static <T> List<T> of(T t0, T t1, T t2, T t3, T t4) { - return new Flat5List<T>(t0, t1, t2, t3, t4); + return new Flat5List<>(t0, t1, t2, t3, t4); } /** Creates a flat list with 6 elements. */ public static <T> List<T> of(T t0, T t1, T t2, T t3, T t4, T t5) { - return new Flat6List<T>(t0, t1, t2, t3, t4, t5); + return new Flat6List<>(t0, t1, t2, t3, t4, t5); } /** @@ -389,7 +389,7 @@ public class FlatLists { } public List<T> append(T e) { - return new Flat2List<T>(t0, e); + return new Flat2List<>(t0, e); } } @@ -522,7 +522,7 @@ public class FlatLists { } public List<T> append(T e) { - return new Flat3List<T>(t0, t1, e); + return new Flat3List<>(t0, t1, e); } } @@ -672,7 +672,7 @@ public class FlatLists { } public List<T> append(T e) { - return new Flat4List<T>(t0, t1, t2, e); + return new Flat4List<>(t0, t1, t2, e); } } @@ -841,7 +841,7 @@ public class FlatLists { } public List<T> append(T e) { - return new Flat5List<T>(t0, t1, t2, t3, e); + return new Flat5List<>(t0, t1, t2, t3, e); } } @@ -1029,7 +1029,7 @@ public class FlatLists { } public List<T> append(T e) { - return new Flat6List<T>(t0, t1, t2, t3, t4, e); + return new Flat6List<>(t0, t1, t2, t3, t4, e); } } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/runtime/ResultSetEnumerable.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/runtime/ResultSetEnumerable.java b/core/src/main/java/org/apache/calcite/runtime/ResultSetEnumerable.java index 4724d8c..771772f 100644 --- a/core/src/main/java/org/apache/calcite/runtime/ResultSetEnumerable.java +++ b/core/src/main/java/org/apache/calcite/runtime/ResultSetEnumerable.java @@ -72,7 +72,7 @@ public class ResultSetEnumerable<T> extends AbstractEnumerable<T> { //noinspection unchecked return (Function0) () -> { try { - final List<Object> list = new ArrayList<Object>(); + final List<Object> list = new ArrayList<>(); for (int i = 0; i < columnCount; i++) { if (metaData.getColumnType(i + 1) == Types.TIMESTAMP) { long v = resultSet.getLong(i + 1); @@ -120,7 +120,7 @@ public class ResultSetEnumerable<T> extends AbstractEnumerable<T> { DataSource dataSource, String sql, Function1<ResultSet, Function0<T>> rowBuilderFactory) { - return new ResultSetEnumerable<T>(dataSource, sql, rowBuilderFactory); + return new ResultSetEnumerable<>(dataSource, sql, rowBuilderFactory); } public Enumerator<T> enumerator() { @@ -138,7 +138,7 @@ public class ResultSetEnumerable<T> extends AbstractEnumerable<T> { final ResultSet resultSet = statement.getResultSet(); statement = null; connection = null; - return new ResultSetEnumerator<T>(resultSet, rowBuilderFactory); + return new ResultSetEnumerator<>(resultSet, rowBuilderFactory); } else { Integer updateCount = statement.getUpdateCount(); return Linq4j.singletonEnumerator((T) updateCount); @@ -243,7 +243,7 @@ public class ResultSetEnumerable<T> extends AbstractEnumerable<T> { //noinspection unchecked return (Function0) () -> { try { - final List<Object> list = new ArrayList<Object>(); + final List<Object> list = new ArrayList<>(); for (int i = 0; i < columnCount; i++) { list.add(primitives[i].jdbcGet(resultSet, i + 1)); } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/runtime/SortedMultiMap.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/runtime/SortedMultiMap.java b/core/src/main/java/org/apache/calcite/runtime/SortedMultiMap.java index d4fa04e..c1dd446 100644 --- a/core/src/main/java/org/apache/calcite/runtime/SortedMultiMap.java +++ b/core/src/main/java/org/apache/calcite/runtime/SortedMultiMap.java @@ -38,7 +38,7 @@ public class SortedMultiMap<K, V> extends HashMap<K, List<V>> { return; } if (list.size() == 1) { - list = new ArrayList<V>(list); + list = new ArrayList<>(list); } list.add(value); put(key, list); @@ -71,7 +71,7 @@ public class SortedMultiMap<K, V> extends HashMap<K, List<V>> { public static <V> Iterator<V[]> singletonArrayIterator( Comparator<V> comparator, List<V> list) { final SortedMultiMap<Object, V> multiMap = - new SortedMultiMap<Object, V>(); + new SortedMultiMap<>(); multiMap.put("x", list); return multiMap.arrays(comparator); } http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java b/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java index c7c3875..8062afe 100644 --- a/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java +++ b/core/src/main/java/org/apache/calcite/runtime/SqlFunctions.java @@ -2137,9 +2137,9 @@ public class SqlFunctions { /** Support the MULTISET INTERSECT DISTINCT function. */ public static <E> Collection<E> multisetIntersectDistinct(Collection<E> c1, Collection<E> c2) { - final Set<E> result = new HashSet<E>(c1); + final Set<E> result = new HashSet<>(c1); result.retainAll(c2); - return new ArrayList<E>(result); + return new ArrayList<>(result); } /** Support the MULTISET INTERSECT ALL function. */ http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/runtime/Utilities.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/runtime/Utilities.java b/core/src/main/java/org/apache/calcite/runtime/Utilities.java index a97a038..1923b72 100644 --- a/core/src/main/java/org/apache/calcite/runtime/Utilities.java +++ b/core/src/main/java/org/apache/calcite/runtime/Utilities.java @@ -18,6 +18,7 @@ package org.apache.calcite.runtime; import java.util.Iterator; import java.util.List; +import java.util.Objects; /** * Utility methods called by generated code. @@ -34,7 +35,7 @@ public class Utilities { public static boolean equal(Object o0, Object o1) { // Same as java.lang.Objects.equals (JDK 1.7 and later) // and com.google.common.base.Objects.equal - return o0 == o1 || o0 != null && o0.equals(o1); + return Objects.equals(o0, o1); } public static int hash(Object v) { @@ -47,10 +48,11 @@ public class Utilities { * * @param v Value * @return Hash code + * @deprecated Use {@link Double#hashCode(double)} */ + @Deprecated // to be removed before 2.0 public static int hashCode(double v) { - long bits = Double.doubleToLongBits(v); - return hashCode(bits); + return Double.hashCode(v); } /** Computes the hash code of a {@code float} value. Equivalent to @@ -59,9 +61,11 @@ public class Utilities { * * @param v Value * @return Hash code + * @deprecated Use {@link Float#hashCode(float)} */ + @Deprecated // to be removed before 2.0 public static int hashCode(float v) { - return Float.floatToIntBits(v); + return Float.hashCode(v); } /** Computes the hash code of a {@code long} value. Equivalent to @@ -70,9 +74,11 @@ public class Utilities { * * @param v Value * @return Hash code + * @deprecated Use {@link Long#hashCode(long)} */ + @Deprecated // to be removed before 2.0 public static int hashCode(long v) { - return (int) (v ^ (v >>> 32)); + return Long.hashCode(v); } /** Computes the hash code of a {@code boolean} value. Equivalent to @@ -81,9 +87,11 @@ public class Utilities { * * @param v Value * @return Hash code + * @deprecated Use {@link Boolean#hashCode(boolean)} */ + @Deprecated // to be removed before 2.0 public static int hashCode(boolean v) { - return v ? 1231 : 1237; + return Boolean.hashCode(v); } public static int hash(int h, boolean v) { @@ -107,15 +115,15 @@ public class Utilities { } public static int hash(int h, long v) { - return h * 31 + hashCode(v); + return h * 31 + Long.hashCode(v); } public static int hash(int h, float v) { - return hash(h, hashCode(v)); + return hash(h, Float.hashCode(v)); } public static int hash(int h, double v) { - return hash(h, hashCode(v)); + return hash(h, Double.hashCode(v)); } public static int hash(int h, Object v) { @@ -123,33 +131,27 @@ public class Utilities { } public static int compare(boolean v0, boolean v1) { - // Same as Boolean.compare (introduced in JDK 1.7) - return (v0 == v1) ? 0 : (v0 ? 1 : -1); + return Boolean.compare(v0, v1); } public static int compare(byte v0, byte v1) { - // Same as Byte.compare (introduced in JDK 1.7) - return v0 - v1; + return Byte.compare(v0, v1); } public static int compare(char v0, char v1) { - // Same as Character.compare (introduced in JDK 1.7) - return v0 - v1; + return Character.compare(v0, v1); } public static int compare(short v0, short v1) { - // Same as Short.compare (introduced in JDK 1.7) - return v0 - v1; + return Short.compare(v0, v1); } public static int compare(int v0, int v1) { - // Same as Integer.compare (introduced in JDK 1.7) - return (v0 < v1) ? -1 : ((v0 == v1) ? 0 : 1); + return Integer.compare(v0, v1); } public static int compare(long v0, long v1) { - // Same as Long.compare (introduced in JDK 1.7) - return (v0 < v1) ? -1 : ((v0 == v1) ? 0 : 1); + return Long.compare(v0, v1); } public static int compare(float v0, float v1) { http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/schema/impl/StarTable.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/schema/impl/StarTable.java b/core/src/main/java/org/apache/calcite/schema/impl/StarTable.java index b0a62a5..b1d89da 100644 --- a/core/src/main/java/org/apache/calcite/schema/impl/StarTable.java +++ b/core/src/main/java/org/apache/calcite/schema/impl/StarTable.java @@ -77,8 +77,8 @@ public class StarTable extends AbstractTable implements TranslatableTable { } public RelDataType getRowType(RelDataTypeFactory typeFactory) { - final List<RelDataType> typeList = new ArrayList<RelDataType>(); - final List<Integer> fieldCounts = new ArrayList<Integer>(); + final List<RelDataType> typeList = new ArrayList<>(); + final List<Integer> fieldCounts = new ArrayList<>(); for (Table table : tables) { final RelDataType rowType = table.getRowType(typeFactory); typeList.addAll(RelOptUtil.getFieldTypeList(rowType)); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/sql/advise/SqlAdvisor.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/sql/advise/SqlAdvisor.java b/core/src/main/java/org/apache/calcite/sql/advise/SqlAdvisor.java index 25949ab..9b90343 100644 --- a/core/src/main/java/org/apache/calcite/sql/advise/SqlAdvisor.java +++ b/core/src/main/java/org/apache/calcite/sql/advise/SqlAdvisor.java @@ -172,7 +172,7 @@ public class SqlAdvisor { if (wordStart < wordEnd) { sql = sql.substring(0, wordStart) - + sql.substring(wordEnd, sql.length()); + + sql.substring(wordEnd); } final List<SqlMoniker> completionHints = @@ -324,7 +324,7 @@ public class SqlAdvisor { public List<SqlMoniker> getCompletionHints(String sql, SqlParserPos pos) { // First try the statement they gave us. If this fails, just return // the tokens which were expected at the failure point. - List<SqlMoniker> hintList = new ArrayList<SqlMoniker>(); + List<SqlMoniker> hintList = new ArrayList<>(); SqlNode sqlNode = tryParse(sql, hintList); if (sqlNode == null) { return hintList; @@ -433,9 +433,7 @@ public class SqlAdvisor { SqlParserPos pos = new SqlParserPos(1, cursor + 1); try { return validator.lookupQualifiedName(sqlNode, pos); - } catch (CalciteContextException e) { - return null; - } catch (java.lang.AssertionError e) { + } catch (CalciteContextException | AssertionError e) { return null; } } @@ -475,7 +473,7 @@ public class SqlAdvisor { */ public List<ValidateErrorInfo> validate(String sql) { SqlNode sqlNode; - List<ValidateErrorInfo> errorList = new ArrayList<ValidateErrorInfo>(); + List<ValidateErrorInfo> errorList = new ArrayList<>(); sqlNode = collectParserError(sql, errorList); if (!errorList.isEmpty()) { @@ -542,7 +540,7 @@ public class SqlAdvisor { List<String> l = Arrays.asList( getParserMetadata().getJdbcKeywords().split(",")); - List<String> al = new ArrayList<String>(); + List<String> al = new ArrayList<>(); al.addAll(c); al.addAll(l); reservedWordsList = al; http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/sql/advise/SqlSimpleParser.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/sql/advise/SqlSimpleParser.java b/core/src/main/java/org/apache/calcite/sql/advise/SqlSimpleParser.java index edafcb4..a71a9ad 100644 --- a/core/src/main/java/org/apache/calcite/sql/advise/SqlSimpleParser.java +++ b/core/src/main/java/org/apache/calcite/sql/advise/SqlSimpleParser.java @@ -150,7 +150,7 @@ public class SqlSimpleParser { */ public String simplifySql(String sql) { Tokenizer tokenizer = new Tokenizer(sql, hintToken, parserConfig.quoting()); - List<Token> list = new ArrayList<Token>(); + List<Token> list = new ArrayList<>(); while (true) { Token token = tokenizer.nextToken(); if (token == null) { @@ -164,7 +164,7 @@ public class SqlSimpleParser { } // Gather consecutive sub-sequences of tokens into sub-queries. - List<Token> outList = new ArrayList<Token>(); + List<Token> outList = new ArrayList<>(); consumeQuery(list.listIterator(), outList); // Simplify. @@ -216,7 +216,7 @@ public class SqlSimpleParser { private void consumeSelect(ListIterator<Token> iter, List<Token> outList) { boolean isQuery = false; int start = outList.size(); - List<Token> subQueryList = new ArrayList<Token>(); + List<Token> subQueryList = new ArrayList<>(); loop: while (iter.hasNext()) { Token token = iter.next(); @@ -261,8 +261,7 @@ public class SqlSimpleParser { //~ Inner Classes ---------------------------------------------------------- public static class Tokenizer { - private static final Map<String, TokenType> map = - new HashMap<String, TokenType>(); + private static final Map<String, TokenType> map = new HashMap<>(); static { for (TokenType type : TokenType.values()) { @@ -483,7 +482,7 @@ public class SqlSimpleParser { public Query(List<Token> tokenList) { super(TokenType.QUERY); - this.tokenList = new ArrayList<Token>(tokenList); + this.tokenList = new ArrayList<>(tokenList); } public void unparse(StringBuilder buf) { @@ -664,7 +663,7 @@ public class SqlSimpleParser { } List<Token> selectItem = - new ArrayList<Token>( + new ArrayList<>( sublist.subList(itemStart, itemEnd)); Token select = sublist.get(0); sublist.clear(); @@ -683,7 +682,7 @@ public class SqlSimpleParser { private void purgeSelectExprsKeepAliases() { List<Token> sublist = findClause(TokenType.SELECT); - List<Token> newSelectClause = new ArrayList<Token>(); + List<Token> newSelectClause = new ArrayList<>(); newSelectClause.add(sublist.get(0)); int itemStart = 1; for (int i = 1; i < sublist.size(); i++) { @@ -749,7 +748,7 @@ public class SqlSimpleParser { itemEnd = sublist.size(); } List<Token> fromItem = - new ArrayList<Token>( + new ArrayList<>( sublist.subList(itemStart, itemEnd)); Token from = sublist.get(0); sublist.clear(); http://git-wip-us.apache.org/repos/asf/calcite/blob/295ab13e/core/src/main/java/org/apache/calcite/sql/fun/SqlCaseOperator.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/calcite/sql/fun/SqlCaseOperator.java b/core/src/main/java/org/apache/calcite/sql/fun/SqlCaseOperator.java index ec92b48..97e1ba0 100644 --- a/core/src/main/java/org/apache/calcite/sql/fun/SqlCaseOperator.java +++ b/core/src/main/java/org/apache/calcite/sql/fun/SqlCaseOperator.java @@ -227,8 +227,8 @@ public class SqlCaseOperator extends SqlOperator { SqlCallBinding callBinding) { SqlCase caseCall = (SqlCase) callBinding.getCall(); SqlNodeList thenList = caseCall.getThenOperands(); - ArrayList<SqlNode> nullList = new ArrayList<SqlNode>(); - List<RelDataType> argTypes = new ArrayList<RelDataType>(); + ArrayList<SqlNode> nullList = new ArrayList<>(); + List<RelDataType> argTypes = new ArrayList<>(); for (SqlNode node : thenList) { argTypes.add( callBinding.getValidator().deriveType( @@ -263,7 +263,7 @@ public class SqlCaseOperator extends SqlOperator { assert (argTypes.size() % 2) == 1 : "odd number of arguments expected: " + argTypes.size(); assert argTypes.size() > 1 : argTypes.size(); - List<RelDataType> thenTypes = new ArrayList<RelDataType>(); + List<RelDataType> thenTypes = new ArrayList<>(); for (int j = 1; j < (argTypes.size() - 1); j += 2) { thenTypes.add(argTypes.get(j)); }
