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/HiveTypeSystemImpl.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveTypeSystemImpl.java
index 279d101..1f5b2bc 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveTypeSystemImpl.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/HiveTypeSystemImpl.java
@@ -26,7 +26,7 @@
private static final int MAX_DECIMAL_PRECISION = 38;
private static final int MAX_DECIMAL_SCALE = 38;
private static final int DEFAULT_DECIMAL_PRECISION = 10;
- private static final int MAX_VARCHAR_PRECISION = 65535;
+ public static final int MAX_VARCHAR_PRECISION = 65535;
private static final int MAX_CHAR_PRECISION = 255;
private static final int MAX_BINARY_PRECISION = Integer.MAX_VALUE;
private static final int MAX_TIMESTAMP_PRECISION = 9;
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/optimizer/calcite/translator/TypeConverter.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/TypeConverter.java
index 2df7588..aedb2fd 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/TypeConverter.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/TypeConverter.java
@@ -58,6 +58,7 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMap.Builder;
import com.google.common.collect.Lists;
+import org.apache.hadoop.hive.ql.optimizer.calcite.HiveTypeSystemImpl;
public class TypeConverter {
@@ -376,7 +377,8 @@ public static HiveToken hiveToken(RelDataType calciteType) {
}
break;
case VARCHAR: {
- if (calciteType.getPrecision() == Integer.MAX_VALUE)
+ if (calciteType.getPrecision() == Integer.MAX_VALUE ||
+ calciteType.getPrecision() == HiveTypeSystemImpl.MAX_VARCHAR_PRECISION)
ht = new HiveToken(HiveParser.TOK_STRING, "TOK_STRING", String.valueOf(calciteType
.getPrecision()));
else
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 931e074..6b5ae25 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
@@ -3448,7 +3448,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");