diff --git a/pom.xml b/pom.xml index 85f1222..5187df5 100644 --- a/pom.xml +++ b/pom.xml @@ -115,10 +115,10 @@ 3.5.2 1.5.6 0.1 - 1.9.0 + 1.10.0 1.7.7 0.8.0.RELEASE - 1.12.0 + 1.13.0-SNAPSHOT 4.2.4 4.1.17 4.1.19 @@ -131,7 +131,7 @@ 3.0.1 2.4 2.6 - 3.1 + 3.2 1.5.4 1.4 10.10.2.0 diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveCalciteUtil.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveCalciteUtil.java index e339d0a..5f34e8d 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveCalciteUtil.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveCalciteUtil.java @@ -89,6 +89,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; +import org.apache.calcite.rex.RexTableInputRef; /** * Generic utility functions needed for Calcite based Hive CBO. @@ -1080,6 +1081,11 @@ public Boolean visitSubQuery(RexSubQuery subQuery) { public Boolean visitPatternFieldRef(RexPatternFieldRef fieldRef) { return false; } + + @Override + public Boolean visitTableInputRef(RexTableInputRef fieldRef) { + return false; + } } public static Set getInputRefs(RexNode expr) { diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/RexNodeConverter.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/RexNodeConverter.java index 52ca3b0..92444c4 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/RexNodeConverter.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/RexNodeConverter.java @@ -661,14 +661,14 @@ protected RexNode convert(ExprNodeConstantDesc literal) throws CalciteSemanticEx case DATE: // The Calcite literal is in GMT, this will be converted back to JVM locale // by ASTBuilder.literal during Calcite->Hive plan conversion - final Calendar cal = Calendar.getInstance(DateTimeUtils.GMT_ZONE, Locale.getDefault()); + final Calendar cal = Calendar.getInstance(DateTimeUtils.UTC_ZONE, Locale.getDefault()); cal.setTime((Date) value); calciteLiteral = rexBuilder.makeDateLiteral(cal); break; case TIMESTAMP: // The Calcite literal is in GMT, this will be converted back to JVM locale // by ASTBuilder.literal during Calcite->Hive plan conversion - final Calendar calt = Calendar.getInstance(DateTimeUtils.GMT_ZONE, Locale.getDefault()); + final Calendar calt = Calendar.getInstance(DateTimeUtils.UTC_ZONE, Locale.getDefault()); if (value instanceof Calendar) { final Calendar c = (Calendar) value; long timeMs = c.getTimeInMillis(); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java index 348331e..db5e10d 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java @@ -3446,7 +3446,7 @@ private int getWindowSpecIndx(ASTNode wndAST) { w = cluster.getRexBuilder().makeOver(calciteAggFnRetType, calciteAggFn, calciteAggFnArgs, partitionKeys, ImmutableList. copyOf(orderKeys), lowerBound, - upperBound, isRows, true, false); + upperBound, isRows, true, false, false); } else { // TODO: Convert to Semantic Exception throw new RuntimeException("Unsupported window Spec");