diff --git common/src/java/org/apache/hadoop/hive/ql/log/PerfLogger.java common/src/java/org/apache/hadoop/hive/ql/log/PerfLogger.java index 2707987f0b..f1181fd268 100644 --- common/src/java/org/apache/hadoop/hive/ql/log/PerfLogger.java +++ common/src/java/org/apache/hadoop/hive/ql/log/PerfLogger.java @@ -218,11 +218,11 @@ public Long getDuration(String method) { } - public ImmutableMap getStartTimes() { + public Map getStartTimes() { return ImmutableMap.copyOf(startTimes); } - public ImmutableMap getEndTimes() { + public Map getEndTimes() { return ImmutableMap.copyOf(endTimes); } diff --git itests/hive-blobstore/pom.xml itests/hive-blobstore/pom.xml index efc6b37644..09955c55f3 100644 --- itests/hive-blobstore/pom.xml +++ itests/hive-blobstore/pom.xml @@ -48,10 +48,6 @@ com.google.protobuf protobuf-java - - org.apache.calcite - calcite-core - org.apache.hive hive-common @@ -62,6 +58,11 @@ hive-contrib test + + org.apache.hive + hive-exec + test + org.apache.hive hive-standalone-metastore-common @@ -94,17 +95,18 @@ org.apache.hive hive-it-util test + + + org.apache.calcite + calcite-core + + org.apache.hive hive-serde test - - org.apache.hive - hive-exec - test - org.apache.hadoop hadoop-common diff --git itests/hive-minikdc/pom.xml itests/hive-minikdc/pom.xml index f1328aa5f6..22cf244c19 100644 --- itests/hive-minikdc/pom.xml +++ itests/hive-minikdc/pom.xml @@ -41,14 +41,6 @@ com.google.protobuf protobuf-java - - org.apache.calcite - calcite-core - - - org.apache.calcite - calcite-linq4j - org.apache.hive hive-common diff --git itests/hive-unit/pom.xml itests/hive-unit/pom.xml index bc20cd6168..103975fd85 100644 --- itests/hive-unit/pom.xml +++ itests/hive-unit/pom.xml @@ -40,19 +40,24 @@ org.apache.hive - hive-jdbc + hive-exec org.apache.hive - hive-jdbc-handler + hive-exec + tests org.apache.hive - hive-service + hive-jdbc org.apache.hive - hive-exec + hive-jdbc-handler + + + org.apache.hive + hive-service org.apache.hive @@ -173,11 +178,6 @@ hive-service tests - - org.apache.hive - hive-exec - tests - org.apache.hive hive-common diff --git itests/qtest-accumulo/pom.xml itests/qtest-accumulo/pom.xml index b0373d5622..a35d2a8a10 100644 --- itests/qtest-accumulo/pom.xml +++ itests/qtest-accumulo/pom.xml @@ -56,12 +56,18 @@ org.apache.hive hive-contrib test - - - org.apache.hive - hive-exec - - + + + org.apache.hive + hive-exec + test + core + + + org.apache.hive + hive-exec + test + tests org.apache.hive @@ -96,8 +102,8 @@ test - org.apache.hive - hive-exec + org.apache.calcite + calcite-core org.apache.hive @@ -115,24 +121,6 @@ hive-udf test - - org.apache.hive - hive-exec - test - core - - - org.apache.hive - hive-exec - test - tests - - - org.apache.hive - hive-exec - tests - test - junit diff --git itests/qtest-kudu/pom.xml itests/qtest-kudu/pom.xml index 132d22c5d5..f23399fa37 100644 --- itests/qtest-kudu/pom.xml +++ itests/qtest-kudu/pom.xml @@ -45,12 +45,18 @@ org.apache.hive hive-contrib test - - - org.apache.hive - hive-exec - - + + + org.apache.hive + hive-exec + test + core + + + org.apache.hive + hive-exec + test + tests org.apache.hive @@ -85,8 +91,8 @@ test - org.apache.hive - hive-exec + org.apache.calcite + calcite-core org.apache.hive @@ -104,18 +110,6 @@ hive-udf test - - org.apache.hive - hive-exec - test - core - - - org.apache.hive - hive-exec - test - tests - junit diff --git itests/qtest-spark/pom.xml itests/qtest-spark/pom.xml index b6bbeef9e8..60d032d1e4 100644 --- itests/qtest-spark/pom.xml +++ itests/qtest-spark/pom.xml @@ -117,6 +117,11 @@ hive-contrib test + + org.apache.hive + hive-exec + test + org.apache.hive hive-standalone-metastore-common @@ -148,6 +153,10 @@ org.apache.hive hive-it-util + + org.apache.calcite + calcite-core + org.apache.hive hive-it-druid @@ -165,11 +174,6 @@ hive-udf test - - org.apache.hive - hive-exec - test - diff --git pom.xml pom.xml index d804a19e04..af70972c1e 100644 --- pom.xml +++ pom.xml @@ -225,6 +225,9 @@ 2.2.4 1.2 2.0.1 + 2.4.0 + 3.0.11 + 1.23 @@ -1007,6 +1010,26 @@ re2j ${re2j.version} + + com.jayway.jsonpath + json-path + ${json-path.version} + + + org.codehaus.janino + commons-compiler + ${janino.version} + + + org.codehaus.janino + janino + ${janino.version} + + + org.yaml + snakeyaml + ${snakeyaml.version} + diff --git ql/pom.xml ql/pom.xml index d5c83b67ff..161a5273ba 100644 --- ql/pom.xml +++ ql/pom.xml @@ -778,6 +778,22 @@ + + com.jayway.jsonpath + json-path + + + org.codehaus.janino + commons-compiler + + + org.codehaus.janino + janino + + + org.yaml + snakeyaml + @@ -991,6 +1007,8 @@ io.dropwizard.metrics:metrics-jvm io.dropwizard.metrics:metrics-json com.zaxxer:HikariCP + org.apache.calcite:* + org.apache.calcite.avatica:avatica @@ -1015,8 +1033,12 @@ org.apache.hive.com.zaxxer.hikari - com.google.guava - org.apache.hive.com.google.guava + com.google.common + org.apache.hive.com.google.common + + + com.google.thirdparty.publicsuffix + org.apache.hive.com.google.thirdparty.publicsuffix diff --git ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java index ddeb954d9b..1aa5be3472 100644 --- ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java +++ ql/src/java/org/apache/hadoop/hive/ql/QueryDisplay.java @@ -17,7 +17,6 @@ */ package org.apache.hadoop.hive.ql; -import com.google.common.collect.ImmutableMap; import org.apache.hadoop.hive.common.LogUtils; import org.apache.hadoop.hive.ql.exec.Task; import org.apache.hadoop.hive.ql.exec.TaskResult; @@ -303,7 +302,7 @@ public synchronized void setExplainPlan(String explainPlan) { * @param phase phase of query * @param hmsTimings map of HMS Client method-calls and duration in miliseconds, during given phase. */ - public synchronized void setHmsTimings(Phase phase, ImmutableMap hmsTimings) { + public synchronized void setHmsTimings(Phase phase, Map hmsTimings) { hmsTimingMap.put(phase, hmsTimings); } @@ -319,7 +318,7 @@ public synchronized void setHmsTimings(Phase phase, ImmutableMap h * @param phase phase of query * @param perfLogStarts map of PerfLogger call-trace name and start time in miliseconds, during given phase. */ - public synchronized void setPerfLogStarts(Phase phase, ImmutableMap perfLogStarts) { + public synchronized void setPerfLogStarts(Phase phase, Map perfLogStarts) { perfLogStartMap.put(phase, perfLogStarts); } @@ -335,7 +334,7 @@ public synchronized void setPerfLogStarts(Phase phase, ImmutableMap perfLogEnds) { + public synchronized void setPerfLogEnds(Phase phase, Map perfLogEnds) { perfLogEndMap.put(phase, perfLogEnds); } diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveAggregate.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveAggregate.java index 6b841a5a29..5e5e928c91 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveAggregate.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveAggregate.java @@ -77,12 +77,12 @@ public boolean isBucketedInput() { @Override protected RelDataType deriveRowType() { return deriveRowType(getCluster().getTypeFactory(), getInput().getRowType(), - indicator, groupSet, groupSets, aggCalls); + indicator, groupSet, aggCalls); } public static RelDataType deriveRowType(RelDataTypeFactory typeFactory, final RelDataType inputRowType, boolean indicator, - ImmutableBitSet groupSet, List groupSets, + ImmutableBitSet groupSet, final List aggCalls) { final List groupList = groupSet.asList(); assert groupList.size() == groupSet.cardinality(); @@ -100,10 +100,11 @@ public static RelDataType deriveRowType(RelDataTypeFactory typeFactory, typeFactory.createSqlType(SqlTypeName.BOOLEAN), false); String name = "i$" + fieldList.get(groupKey).getName(); int i = 0; + StringBuilder nameBuilder = new StringBuilder(name); while (containedNames.contains(name)) { - name += "_" + i++; + nameBuilder.append('_').append(i++); } - containedNames.add(name); + containedNames.add(nameBuilder.toString()); builder.add(name, booleanType); } } diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelDecorrelator.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelDecorrelator.java index 4526fc6b23..ab56ce8f8f 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelDecorrelator.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveRelDecorrelator.java @@ -2427,7 +2427,7 @@ public void onMatch(RelOptRuleCall call) { operand(LogicalCorrelate.class, operand(RelNode.class, any()), operand(Project.class, - operand(Aggregate.class, null, Aggregate.IS_SIMPLE, + operandJ(Aggregate.class, null, Aggregate::isSimple, operand(Project.class, operand(RelNode.class, any())))))); } diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSubQueryRemoveRule.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSubQueryRemoveRule.java index 04d688c4e8..d2d6f7086f 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSubQueryRemoveRule.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSubQueryRemoveRule.java @@ -46,13 +46,13 @@ import org.apache.calcite.util.Pair; import org.apache.calcite.util.Util; -import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Set; +import java.util.function.Predicate; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.ql.optimizer.calcite.CalciteSubqueryRuntimeException; @@ -79,10 +79,10 @@ */ public class HiveSubQueryRemoveRule extends RelOptRule { - private HiveConf conf; + private final HiveConf conf; public HiveSubQueryRemoveRule(HiveConf conf) { - super(operand(RelNode.class, null, HiveSubQueryFinder.RELNODE_PREDICATE, any()), + super(operandJ(RelNode.class, null, HiveSubQueryFinder.RELNODE_PREDICATE, any()), HiveRelFactories.HIVE_BUILDER, "SubQueryRemoveRule:Filter"); this.conf = conf; } @@ -597,7 +597,7 @@ private RexInputRef field(HiveSubQRemoveRelBuilder builder, int inputCount, int * Returns whether a {@link Project} contains a sub-query. */ public static final Predicate RELNODE_PREDICATE = new Predicate() { - @Override public boolean apply(RelNode relNode) { + @Override public boolean test(RelNode relNode) { if (relNode instanceof Project) { Project project = (Project) relNode; for (RexNode node : project.getProjects()) {