HIVE-13945 : Decimal value is displayed as rounded when selecting where clause with...
authorSergey Shelukhin <sershe@apache.org>
Thu, 7 Jul 2016 19:40:38 +0000 (12:40 -0700)
committerSergey Shelukhin <sershe@apache.org>
Thu, 7 Jul 2016 19:44:46 +0000 (12:44 -0700)
141 files changed:
contrib/src/test/queries/clientpositive/udf_example_format.q
contrib/src/test/results/clientpositive/udf_example_format.q.out
orc/src/java/org/apache/orc/impl/ConvertTreeReaderFactory.java
orc/src/java/org/apache/orc/impl/RecordReaderImpl.java
ql/src/java/org/apache/hadoop/hive/ql/exec/FileSinkOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToLong.java
ql/src/java/org/apache/hadoop/hive/ql/io/sarg/ConvertAstToSearchArg.java
ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConstantPropagateProcFactory.java
ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/ASTBuilder.java
ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
ql/src/java/org/apache/hadoop/hive/ql/parse/ParseUtils.java
ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToInteger.java
ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToLong.java
ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToShort.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFPercentileApprox.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLeadLag.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPDivide.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFPrintf.java
ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/WindowingTableFunction.java
ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFOPDivide.java
ql/src/test/queries/clientnegative/compare_double_bigint.q
ql/src/test/queries/clientpositive/implicit_decimal.q [new file with mode: 0644]
ql/src/test/queries/clientpositive/input_lazyserde.q
ql/src/test/queries/clientpositive/udf_java_method.q
ql/src/test/queries/clientpositive/udf_reflect.q
ql/src/test/queries/clientpositive/vector_struct_in.q
ql/src/test/results/clientnegative/no_matching_udf.q.out
ql/src/test/results/clientnegative/udf_add_months_error_2.q.out
ql/src/test/results/clientnegative/udf_format_number_wrong4.q.out
ql/src/test/results/clientnegative/udf_format_number_wrong5.q.out
ql/src/test/results/clientnegative/udf_trunc_error2.q.out
ql/src/test/results/clientnegative/wrong_column_type.q.out
ql/src/test/results/clientpositive/annotate_stats_select.q.out
ql/src/test/results/clientpositive/ansi_sql_arithmetic.q.out
ql/src/test/results/clientpositive/cast1.q.out
ql/src/test/results/clientpositive/decimal_6.q.out
ql/src/test/results/clientpositive/decimal_precision.q.out
ql/src/test/results/clientpositive/decimal_udf.q.out
ql/src/test/results/clientpositive/implicit_decimal.q.out [new file with mode: 0644]
ql/src/test/results/clientpositive/infer_const_type.q.out
ql/src/test/results/clientpositive/input49.q.out
ql/src/test/results/clientpositive/input_lazyserde.q.out
ql/src/test/results/clientpositive/lineage3.q.out
ql/src/test/results/clientpositive/literal_double.q.out
ql/src/test/results/clientpositive/llap/orc_ppd_basic.q.out
ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out
ql/src/test/results/clientpositive/metadata_only_queries.q.out
ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out
ql/src/test/results/clientpositive/parquet_predicate_pushdown.q.out
ql/src/test/results/clientpositive/perf/query13.q.out
ql/src/test/results/clientpositive/perf/query32.q.out
ql/src/test/results/clientpositive/perf/query48.q.out
ql/src/test/results/clientpositive/perf/query58.q.out
ql/src/test/results/clientpositive/perf/query65.q.out
ql/src/test/results/clientpositive/perf/query75.q.out
ql/src/test/results/clientpositive/perf/query85.q.out
ql/src/test/results/clientpositive/perf/query89.q.out
ql/src/test/results/clientpositive/spark/metadata_only_queries.q.out
ql/src/test/results/clientpositive/spark/vector_between_in.q.out
ql/src/test/results/clientpositive/spark/vectorization_0.q.out
ql/src/test/results/clientpositive/spark/vectorization_1.q.out
ql/src/test/results/clientpositive/spark/vectorization_12.q.out
ql/src/test/results/clientpositive/spark/vectorization_13.q.out
ql/src/test/results/clientpositive/spark/vectorization_14.q.out
ql/src/test/results/clientpositive/spark/vectorization_15.q.out
ql/src/test/results/clientpositive/spark/vectorization_16.q.out
ql/src/test/results/clientpositive/spark/vectorization_17.q.out
ql/src/test/results/clientpositive/spark/vectorization_3.q.out
ql/src/test/results/clientpositive/spark/vectorization_9.q.out
ql/src/test/results/clientpositive/spark/vectorization_div0.q.out
ql/src/test/results/clientpositive/spark/vectorization_short_regress.q.out
ql/src/test/results/clientpositive/spark/vectorized_math_funcs.q.out
ql/src/test/results/clientpositive/tez/explainuser_1.q.out
ql/src/test/results/clientpositive/tez/metadata_only_queries.q.out
ql/src/test/results/clientpositive/tez/orc_ppd_basic.q.out
ql/src/test/results/clientpositive/tez/vector_between_in.q.out
ql/src/test/results/clientpositive/tez/vector_decimal_6.q.out
ql/src/test/results/clientpositive/tez/vector_decimal_expressions.q.out
ql/src/test/results/clientpositive/tez/vector_decimal_math_funcs.q.out
ql/src/test/results/clientpositive/tez/vector_decimal_precision.q.out
ql/src/test/results/clientpositive/tez/vector_decimal_udf.q.out
ql/src/test/results/clientpositive/tez/vector_struct_in.q.out
ql/src/test/results/clientpositive/tez/vectorization_0.q.out
ql/src/test/results/clientpositive/tez/vectorization_1.q.out
ql/src/test/results/clientpositive/tez/vectorization_12.q.out
ql/src/test/results/clientpositive/tez/vectorization_13.q.out
ql/src/test/results/clientpositive/tez/vectorization_14.q.out
ql/src/test/results/clientpositive/tez/vectorization_15.q.out
ql/src/test/results/clientpositive/tez/vectorization_16.q.out
ql/src/test/results/clientpositive/tez/vectorization_17.q.out
ql/src/test/results/clientpositive/tez/vectorization_3.q.out
ql/src/test/results/clientpositive/tez/vectorization_8.q.out
ql/src/test/results/clientpositive/tez/vectorization_9.q.out
ql/src/test/results/clientpositive/tez/vectorization_div0.q.out
ql/src/test/results/clientpositive/tez/vectorization_short_regress.q.out
ql/src/test/results/clientpositive/tez/vectorized_math_funcs.q.out
ql/src/test/results/clientpositive/udf4.q.out
ql/src/test/results/clientpositive/udf6.q.out
ql/src/test/results/clientpositive/udf_abs.q.out
ql/src/test/results/clientpositive/udf_bround.q.out
ql/src/test/results/clientpositive/udf_case.q.out
ql/src/test/results/clientpositive/udf_coalesce.q.out
ql/src/test/results/clientpositive/udf_format_number.q.out
ql/src/test/results/clientpositive/udf_if.q.out
ql/src/test/results/clientpositive/udf_java_method.q.out
ql/src/test/results/clientpositive/udf_least.q.out
ql/src/test/results/clientpositive/udf_reflect.q.out
ql/src/test/results/clientpositive/udf_round.q.out
ql/src/test/results/clientpositive/udf_round_3.q.out
ql/src/test/results/clientpositive/udf_sort_array.q.out
ql/src/test/results/clientpositive/udf_union.q.out
ql/src/test/results/clientpositive/udf_when.q.out
ql/src/test/results/clientpositive/vector_between_in.q.out
ql/src/test/results/clientpositive/vector_decimal_6.q.out
ql/src/test/results/clientpositive/vector_decimal_expressions.q.out
ql/src/test/results/clientpositive/vector_decimal_math_funcs.q.out
ql/src/test/results/clientpositive/vector_decimal_precision.q.out
ql/src/test/results/clientpositive/vector_decimal_udf.q.out
ql/src/test/results/clientpositive/vector_struct_in.q.out
ql/src/test/results/clientpositive/vectorization_0.q.out
ql/src/test/results/clientpositive/vectorization_1.q.out
ql/src/test/results/clientpositive/vectorization_12.q.out
ql/src/test/results/clientpositive/vectorization_13.q.out
ql/src/test/results/clientpositive/vectorization_14.q.out
ql/src/test/results/clientpositive/vectorization_15.q.out
ql/src/test/results/clientpositive/vectorization_16.q.out
ql/src/test/results/clientpositive/vectorization_17.q.out
ql/src/test/results/clientpositive/vectorization_3.q.out
ql/src/test/results/clientpositive/vectorization_8.q.out
ql/src/test/results/clientpositive/vectorization_9.q.out
ql/src/test/results/clientpositive/vectorization_div0.q.out
ql/src/test/results/clientpositive/vectorization_short_regress.q.out
ql/src/test/results/clientpositive/vectorized_math_funcs.q.out
ql/src/test/results/clientpositive/view_cast.q.out
serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorUtils.java
storage-api/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java

index 38069dc..edda00b 100644 (file)
@@ -5,13 +5,13 @@ CREATE TEMPORARY FUNCTION example_format AS 'org.apache.hadoop.hive.contrib.udf.
 EXPLAIN
 SELECT example_format("abc"),
        example_format("%1$s", 1.1),
-       example_format("%1$s %2$e", 1.1, 1.2),
+       example_format("%1$s %2$e", 1.1D, 1.2D),
        example_format("%1$x %2$o %3$d", 10, 10, 10)
 FROM src LIMIT 1;
 
 SELECT example_format("abc"),
        example_format("%1$s", 1.1),
-       example_format("%1$s %2$e", 1.1, 1.2),
+       example_format("%1$s %2$e", 1.1D, 1.2D),
        example_format("%1$x %2$o %3$d", 10, 10, 10)
 FROM src LIMIT 1;
 
index 34b10c4..75c6496 100644 (file)
@@ -7,14 +7,14 @@ POSTHOOK: Output: example_format
 PREHOOK: query: EXPLAIN
 SELECT example_format("abc"),
        example_format("%1$s", 1.1),
-       example_format("%1$s %2$e", 1.1, 1.2),
+       example_format("%1$s %2$e", 1.1D, 1.2D),
        example_format("%1$x %2$o %3$d", 10, 10, 10)
 FROM src LIMIT 1
 PREHOOK: type: QUERY
 POSTHOOK: query: EXPLAIN
 SELECT example_format("abc"),
        example_format("%1$s", 1.1),
-       example_format("%1$s %2$e", 1.1, 1.2),
+       example_format("%1$s %2$e", 1.1D, 1.2D),
        example_format("%1$x %2$o %3$d", 10, 10, 10)
 FROM src LIMIT 1
 POSTHOOK: type: QUERY
@@ -40,7 +40,7 @@ STAGE PLANS:
 
 PREHOOK: query: SELECT example_format("abc"),
        example_format("%1$s", 1.1),
-       example_format("%1$s %2$e", 1.1, 1.2),
+       example_format("%1$s %2$e", 1.1D, 1.2D),
        example_format("%1$x %2$o %3$d", 10, 10, 10)
 FROM src LIMIT 1
 PREHOOK: type: QUERY
@@ -48,7 +48,7 @@ PREHOOK: Input: default@src
 #### A masked pattern was here ####
 POSTHOOK: query: SELECT example_format("abc"),
        example_format("%1$s", 1.1),
-       example_format("%1$s %2$e", 1.1, 1.2),
+       example_format("%1$s %2$e", 1.1D, 1.2D),
        example_format("%1$x %2$o %3$d", 10, 10, 10)
 FROM src LIMIT 1
 POSTHOOK: type: QUERY
index 9e5f5cc..c0c6964 100644 (file)
@@ -619,6 +619,7 @@ public class ConvertTreeReaderFactory extends TreeReaderFactory {
         longColVector.isNull[elementNum] = true;
         longColVector.noNulls = false;
       } else {
+        // TODO: lossy conversion!
         downCastAnyInteger(longColVector, elementNum, decimalValue.longValue(), readerType);
       }
     }
index 36a802e..23f532c 100644 (file)
@@ -655,7 +655,7 @@ public class RecordReaderImpl implements RecordReader {
           // widening conversion
           return ((Number) obj).longValue();
         } else if (obj instanceof HiveDecimal) {
-          return ((HiveDecimal) obj).longValue();
+          return ((HiveDecimal) obj).longValue(); // TODO: lossy conversion!
         } else if (obj instanceof String) {
           return Long.valueOf(obj.toString());
         }
index e154d13..6a0e8c7 100644 (file)
@@ -147,7 +147,7 @@ public class FileSinkOperator extends TerminalOperator<FileSinkDesc> implements
     Path taskOutputTempPath;
     Path[] outPaths;
     Path[] finalPaths;
-    RecordWriter[] outWriters; // TODO# this
+    RecordWriter[] outWriters;
     RecordUpdater[] updaters;
     Stat stat;
     int acidLastBucket = -1;
index 2887395..c0b9a4c 100644 (file)
@@ -1703,7 +1703,7 @@ public class VectorizationContext {
       return ((Number) scalar).longValue();
     case DECIMAL:
       HiveDecimal decimalVal = (HiveDecimal) scalar;
-      return decimalVal.longValue();
+      return decimalVal.longValueExact();
     default:
       throw new HiveException("Unsupported type "+typename+" for cast to Long");
     }
index 045f0ab..2ff6b79 100644 (file)
@@ -37,6 +37,6 @@ public class CastDecimalToLong extends FuncDecimalToLong {
 
   @Override
   protected void func(LongColumnVector outV, DecimalColumnVector inV,  int i) {
-    outV.vector[i] = inV.vector[i].getHiveDecimal().longValue();
+    outV.vector[i] = inV.vector[i].getHiveDecimal().longValue(); // TODO: lossy conversion!
   }
 }
index 1fa94b9..300ed20 100644 (file)
@@ -25,6 +25,7 @@ import java.util.List;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hive.common.type.HiveChar;
+import org.apache.hadoop.hive.common.type.HiveDecimal;
 import org.apache.hadoop.hive.ql.exec.SerializationUtilities;
 import org.apache.hadoop.hive.ql.plan.ExprNodeColumnDesc;
 import org.apache.hadoop.hive.ql.plan.ExprNodeConstantDesc;
@@ -139,6 +140,9 @@ public class ConvertAstToSearchArg {
     }
     switch (type) {
       case LONG:
+        if (lit instanceof HiveDecimal) {
+          return ((HiveDecimal)lit).longValueExact();
+        }
         return ((Number) lit).longValue();
       case STRING:
         if (lit instanceof HiveChar) {
@@ -149,7 +153,7 @@ public class ConvertAstToSearchArg {
           return lit.toString();
         }
       case FLOAT:
-        if (lit instanceof Float) {
+        if (lit instanceof Float || lit instanceof HiveDecimal) {
           // converting a float directly to a double causes annoying conversion
           // problems
           return Double.parseDouble(lit.toString());
@@ -161,7 +165,6 @@ public class ConvertAstToSearchArg {
       case DATE:
         return Date.valueOf(lit.toString());
       case DECIMAL:
-        LOG.warn("boxing " + lit);
         return new HiveDecimalWritable(lit.toString());
       case BOOLEAN:
         return lit;
index 6952ffb..8d7b4ab 100644 (file)
@@ -139,7 +139,6 @@ public final class ConstantPropagateProcFactory {
 
   private static final Set<PrimitiveCategory> unSupportedTypes = ImmutableSet
       .<PrimitiveCategory>builder()
-      .add(PrimitiveCategory.DECIMAL)
       .add(PrimitiveCategory.VARCHAR)
       .add(PrimitiveCategory.CHAR).build();
 
@@ -180,20 +179,26 @@ public final class ConstantPropagateProcFactory {
     PrimitiveTypeInfo priti = (PrimitiveTypeInfo) ti;
     PrimitiveTypeInfo descti = (PrimitiveTypeInfo) desc.getTypeInfo();
 
+
     if (unSupportedTypes.contains(priti.getPrimitiveCategory())
         || unSupportedTypes.contains(descti.getPrimitiveCategory())) {
-      // FIXME: support template types. It currently has conflict with
-      // ExprNodeConstantDesc
+      // FIXME: support template types. It currently has conflict with ExprNodeConstantDesc
+      if (LOG.isDebugEnabled()) {
+        LOG.debug("Unsupported types " + priti + "; " + descti);
+      }
       return null;
     }
 
-    // We shouldn't cast strings to other types because that can broke original data in cases of
+    // We shouldn't cast strings to other types because that can break original data in cases of
     // leading zeros or zeros trailing after decimal point.
     // Example: "000126" => 126 => "126"
-
-    boolean brokingDataTypesCombination = (unsafeConversionTypes.contains(priti.getPrimitiveCategory()) &&
-            !unsafeConversionTypes.contains(descti.getPrimitiveCategory()));
-    if (performSafeTypeCast && brokingDataTypesCombination) {
+    boolean brokenDataTypesCombination = unsafeConversionTypes.contains(
+        priti.getPrimitiveCategory()) && !unsafeConversionTypes.contains(
+            descti.getPrimitiveCategory());
+    if (performSafeTypeCast && brokenDataTypesCombination) {
+      if (LOG.isDebugEnabled()) {
+        LOG.debug("Unsupported cast " + priti + "; " + descti);
+      }
       return null;
     }
 
index 2e1384a..78c76ab 100644 (file)
@@ -190,7 +190,7 @@ class ASTBuilder {
       } else {
         val = literal.getValue3();
       }
-      type = HiveParser.TinyintLiteral;
+      type = HiveParser.IntegralLiteral;
       break;
     case SMALLINT:
       if (useTypeQualInLiteral) {
@@ -198,11 +198,11 @@ class ASTBuilder {
       } else {
         val = literal.getValue3();
       }
-      type = HiveParser.SmallintLiteral;
+      type = HiveParser.IntegralLiteral;
       break;
     case INTEGER:
       val = literal.getValue3();
-      type = HiveParser.BigintLiteral;
+      type = HiveParser.IntegralLiteral;
       break;
     case BIGINT:
       if (useTypeQualInLiteral) {
@@ -210,15 +210,15 @@ class ASTBuilder {
       } else {
         val = literal.getValue3();
       }
-      type = HiveParser.BigintLiteral;
+      type = HiveParser.IntegralLiteral;
       break;
     case DOUBLE:
       val = literal.getValue3() + "D";
-      type = HiveParser.Number;
+      type = HiveParser.NumberLiteral;
       break;
     case DECIMAL:
       val = literal.getValue3() + "BD";
-      type = HiveParser.DecimalLiteral;
+      type = HiveParser.NumberLiteral;
       break;
     case FLOAT:
     case REAL:
index 5b32f56..9355d25 100644 (file)
@@ -3483,37 +3483,18 @@ public class DDLSemanticAnalyzer extends BaseSemanticAnalyzer {
    * @return
    */
   private boolean isConstant(ASTNode node) {
-    boolean result = false;
     switch(node.getToken().getType()) {
       case HiveParser.Number:
-        result = true;
-        break;
       case HiveParser.StringLiteral:
-        result = true;
-        break;
-      case HiveParser.BigintLiteral:
-        result = true;
-        break;
-      case HiveParser.SmallintLiteral:
-        result = true;
-        break;
-      case HiveParser.TinyintLiteral:
-        result = true;
-        break;
-      case HiveParser.DecimalLiteral:
-        result = true;
-        break;
+      case HiveParser.IntegralLiteral:
+      case HiveParser.NumberLiteral:
       case HiveParser.CharSetName:
-        result = true;
-        break;
       case HiveParser.KW_TRUE:
       case HiveParser.KW_FALSE:
-        result = true;
-        break;
+        return true;
       default:
-          break;
+        return false;
     }
-    return result;
   }
 
   private void validateSkewedLocationString(String newLocation) throws SemanticException {
index 67d8b86..665c3bb 100644 (file)
@@ -410,24 +410,14 @@ CharSetLiteral
     | '0' 'X' (HexDigit|Digit)+
     ;
 
-BigintLiteral
+IntegralLiteral
     :
-    (Digit)+ 'L'
+    (Digit)+ ('L' | 'S' | 'Y')
     ;
 
-SmallintLiteral
+NumberLiteral
     :
-    (Digit)+ 'S'
-    ;
-
-TinyintLiteral
-    :
-    (Digit)+ 'Y'
-    ;
-
-DecimalLiteral
-    :
-    Number 'B' 'D'
+    Number ('D' | 'B' 'D')
     ;
 
 ByteLengthLiteral
index a1909a7..16251d3 100644 (file)
@@ -251,10 +251,8 @@ constant
     | intervalLiteral
     | StringLiteral
     | stringLiteralSequence
-    | BigintLiteral
-    | SmallintLiteral
-    | TinyintLiteral
-    | DecimalLiteral
+    | IntegralLiteral
+    | NumberLiteral
     | charSetStringLiteral
     | booleanValue
     ;
index a9e503d..943e6af 100644 (file)
@@ -174,10 +174,8 @@ public final class ParseUtils {
     case HiveParser.Identifier:
     case HiveParser.Number:
     case HiveParser.StringLiteral:
-    case HiveParser.BigintLiteral:
-    case HiveParser.SmallintLiteral:
-    case HiveParser.TinyintLiteral:
-    case HiveParser.DecimalLiteral:
+    case HiveParser.IntegralLiteral:
+    case HiveParser.NumberLiteral:
     case HiveParser.TOK_STRINGLITERALSEQUENCE:
     case HiveParser.TOK_CHARSETLITERAL:
     case HiveParser.TOK_DATELITERAL:
index 20d9649..96ad809 100644 (file)
@@ -2487,15 +2487,13 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
       break;
     case HiveParser.Number:
     case HiveParser.StringLiteral:
-    case HiveParser.BigintLiteral:
-    case HiveParser.SmallintLiteral:
-    case HiveParser.TinyintLiteral:
-    case HiveParser.DecimalLiteral:
+    case HiveParser.IntegralLiteral:
+    case HiveParser.NumberLiteral:
     case HiveParser.TOK_STRINGLITERALSEQUENCE:
     case HiveParser.TOK_CHARSETLITERAL:
     case HiveParser.KW_TRUE:
     case HiveParser.KW_FALSE:
-      break;
+      break;  
 
     case HiveParser.TOK_FUNCTION:
       // check all the arguments
index 239cc61..82080eb 100644 (file)
@@ -174,10 +174,8 @@ public class TypeCheckProcFactory {
     opRules.put(new RuleRegExp("R1", HiveParser.TOK_NULL + "%"),
         tf.getNullExprProcessor());
     opRules.put(new RuleRegExp("R2", HiveParser.Number + "%|" +
-        HiveParser.TinyintLiteral + "%|" +
-        HiveParser.SmallintLiteral + "%|" +
-        HiveParser.BigintLiteral + "%|" +
-        HiveParser.DecimalLiteral + "%"),
+        HiveParser.IntegralLiteral + "%|" +
+        HiveParser.NumberLiteral + "%"),
         tf.getNumExprProcessor());
     opRules
         .put(new RuleRegExp("R3", HiveParser.Identifier + "%|"
@@ -288,6 +286,7 @@ public class TypeCheckProcFactory {
       }
 
       Number v = null;
+      ExprNodeConstantDesc decimalNode = null;
       ASTNode expr = (ASTNode) nd;
       // The expression can be any one of Double, Long and Integer. We
       // try to parse the expression in that order to ensure that the
@@ -295,41 +294,55 @@ public class TypeCheckProcFactory {
       try {
         if (expr.getText().endsWith("L")) {
           // Literal bigint.
-          v = Long.valueOf(expr.getText().substring(
-                0, expr.getText().length() - 1));
+          v = Long.valueOf(expr.getText().substring(0, expr.getText().length() - 1));
         } else if (expr.getText().endsWith("S")) {
           // Literal smallint.
-          v = Short.valueOf(expr.getText().substring(
-                0, expr.getText().length() - 1));
+          v = Short.valueOf(expr.getText().substring(0, expr.getText().length() - 1));
         } else if (expr.getText().endsWith("Y")) {
           // Literal tinyint.
-          v = Byte.valueOf(expr.getText().substring(
-                0, expr.getText().length() - 1));
+          v = Byte.valueOf(expr.getText().substring(0, expr.getText().length() - 1));
         } else if (expr.getText().endsWith("BD")) {
           // Literal decimal
           String strVal = expr.getText().substring(0, expr.getText().length() - 2);
-          HiveDecimal hd = HiveDecimal.create(strVal);
-          int prec = 1;
-          int scale = 0;
-          if (hd != null) {
-            prec = hd.precision();
-            scale = hd.scale();
-          }
-          DecimalTypeInfo typeInfo = TypeInfoFactory.getDecimalTypeInfo(prec, scale);
-          return new ExprNodeConstantDesc(typeInfo, hd);
+          return createDecimal(strVal, false);
+        } else if (expr.getText().endsWith("D")) {
+          // Literal double.
+          v = Double.valueOf(expr.getText().substring(0, expr.getText().length() - 1));
         } else {
           v = Double.valueOf(expr.getText());
+          if (expr.getText() != null && !expr.getText().toLowerCase().contains("e")) {
+            decimalNode = createDecimal(expr.getText(), true);
+            if (decimalNode != null) {
+              v = null; // We will use decimal if all else fails.
+            }
+          }
           v = Long.valueOf(expr.getText());
           v = Integer.valueOf(expr.getText());
         }
       } catch (NumberFormatException e) {
         // do nothing here, we will throw an exception in the following block
       }
-      if (v == null) {
-        throw new SemanticException(ErrorMsg.INVALID_NUMERICAL_CONSTANT
-            .getMsg(expr));
+      if (v == null && decimalNode == null) {
+        throw new SemanticException(ErrorMsg.INVALID_NUMERICAL_CONSTANT.getMsg(expr));
+      }
+      return v != null ? new ExprNodeConstantDesc(v) : decimalNode;
+    }
+
+    public static ExprNodeConstantDesc createDecimal(String strVal, boolean notNull) {
+      // Note: the normalize() call with rounding in HiveDecimal will currently reduce the
+      //       precision and scale of the value by throwing away trailing zeroes. This may or may
+      //       not be desirable for the literals; however, this used to be the default behavior
+      //       for explicit decimal literals (e.g. 1.0BD), so we keep this behavior for now.
+      HiveDecimal hd = HiveDecimal.create(strVal);
+      if (notNull && hd == null) return null;
+      int prec = 1;
+      int scale = 0;
+      if (hd != null) {
+        prec = hd.precision();
+        scale = hd.scale();
       }
-      return new ExprNodeConstantDesc(v);
+      DecimalTypeInfo typeInfo = TypeInfoFactory.getDecimalTypeInfo(prec, scale);
+      return new ExprNodeConstantDesc(typeInfo, hd);
     }
 
   }
index fc6540e..a7551cb 100755 (executable)
@@ -204,7 +204,7 @@ public class UDFToInteger extends UDF {
     if (i == null) {
       return null;
     } else {
-      intWritable.set(i.getHiveDecimal().intValue());
+      intWritable.set(i.getHiveDecimal().intValue());  // TODO: lossy conversion!
       return intWritable;
     }
   }
index 3d85abd..c961d14 100755 (executable)
@@ -207,7 +207,7 @@ public class UDFToLong extends UDF {
     if (i == null) {
       return null;
     } else {
-      longWritable.set(i.getHiveDecimal().longValue());
+      longWritable.set(i.getHiveDecimal().longValue()); // TODO: lossy conversion!
       return longWritable;
     }
   }
index 24533d6..570408a 100644 (file)
@@ -197,7 +197,7 @@ public class UDFToShort extends UDF {
     if (i == null) {
       return null;
     } else {
-      shortWritable.set(i.getHiveDecimal().shortValue());
+      shortWritable.set(i.getHiveDecimal().shortValue());   // TODO: lossy conversion!
       return shortWritable;
     }
   }
index 795013a..8c5d436 100644 (file)
@@ -34,6 +34,7 @@ import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
 import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
 import org.apache.hadoop.hive.serde2.objectinspector.StandardListObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.DoubleObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
@@ -66,6 +67,20 @@ import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectIn
 public class GenericUDAFPercentileApprox extends AbstractGenericUDAFResolver {
   static final Logger LOG = LoggerFactory.getLogger(GenericUDAFPercentileApprox.class.getName());
 
+  private static void verifyFractionType(ObjectInspector oi) throws UDFArgumentTypeException {
+    PrimitiveCategory pc = ((PrimitiveObjectInspector)oi).getPrimitiveCategory();
+    switch(pc) {
+      case FLOAT:
+      case DOUBLE:
+      case DECIMAL:
+        break;
+      default:
+        throw new UDFArgumentTypeException(1, "Only a floating point or decimal, or "
+          + "floating point or decimal array argument is accepted as parameter 2, but "
+          + pc + " was passed instead.");
+    }
+  }
+
   @Override
   public GenericUDAFEvaluator getEvaluator(GenericUDAFParameterInfo info) throws SemanticException {
     ObjectInspector[] parameters = info.getParameterObjectInspectors();
@@ -91,7 +106,6 @@ public class GenericUDAFPercentileApprox extends AbstractGenericUDAFResolver {
     case TIMESTAMP:
     case DECIMAL:
       break;
-    case DATE:
     default:
       throw new UDFArgumentTypeException(0,
           "Only numeric type arguments are accepted but "
@@ -103,15 +117,7 @@ public class GenericUDAFPercentileApprox extends AbstractGenericUDAFResolver {
     switch(parameters[1].getCategory()) {
     case PRIMITIVE:
       // Only a single double was passed as parameter 2, a single quantile is being requested
-      switch(((PrimitiveObjectInspector) parameters[1]).getPrimitiveCategory()) {
-      case FLOAT:
-      case DOUBLE:
-        break;
-      default:
-        throw new UDFArgumentTypeException(1,
-          "Only a float/double or float/double array argument is accepted as parameter 2, but "
-          + parameters[1].getTypeName() + " was passed instead.");
-      }
+      verifyFractionType(parameters[1]);
       break;
 
     case LIST:
@@ -119,28 +125,19 @@ public class GenericUDAFPercentileApprox extends AbstractGenericUDAFResolver {
       if(((ListObjectInspector) parameters[1]).getListElementObjectInspector().getCategory() !=
          ObjectInspector.Category.PRIMITIVE) {
           throw new UDFArgumentTypeException(1,
-            "A float/double array argument may be passed as parameter 2, but "
+            "A floating point or decimal array argument may be passed as parameter 2, but "
             + parameters[1].getTypeName() + " was passed instead.");
       }
       // Now make sure it's an array of doubles or floats. We don't allow integer types here
       // because percentile (really, quantile) values should generally be strictly between 0 and 1.
-      switch(((PrimitiveObjectInspector)((ListObjectInspector) parameters[1]).getListElementObjectInspector()).
-             getPrimitiveCategory()) {
-      case FLOAT:
-      case DOUBLE:
-        break;
-      default:
-        throw new UDFArgumentTypeException(1,
-          "A float/double array argument may be passed as parameter 2, but "
-          + parameters[1].getTypeName() + " was passed instead.");
-      }
+      verifyFractionType(((ListObjectInspector) parameters[1]).getListElementObjectInspector());
       wantManyQuantiles = true;
       break;
 
     default:
       throw new UDFArgumentTypeException(1,
-        "Only a float/double or float/double array argument is accepted as parameter 2, but "
-        + parameters[1].getTypeName() + " was passed instead.");
+        "Only a floating point or decimal, or floating point or decimal array argument is accepted"
+          + " as parameter 2, but " + parameters[1].getTypeName() + " was passed instead.");
     }
     // Also make sure it is a constant.
     if (!ObjectInspectorUtils.isConstantObjectInspector(parameters[1])) {
index 351b593..b3b36bc 100644 (file)
@@ -20,7 +20,6 @@ package org.apache.hadoop.hive.ql.udf.generic;
 
 import org.apache.hadoop.hive.ql.exec.ExprNodeEvaluator;
 import org.apache.hadoop.hive.ql.exec.PTFPartition.PTFPartitionIterator;
-import org.apache.hadoop.hive.ql.exec.PTFUtils;
 import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
 import org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException;
 import org.apache.hadoop.hive.ql.metadata.HiveException;
@@ -37,7 +36,6 @@ public abstract class GenericUDFLeadLag extends GenericUDF {
   transient ExprNodeEvaluator exprEvaluator;
   transient PTFPartitionIterator<Object> pItr;
   transient ObjectInspector firstArgOI;
-  transient ObjectInspector defaultArgOI;
   transient Converter defaultValueConverter;
   int amt;
 
@@ -46,7 +44,7 @@ public abstract class GenericUDFLeadLag extends GenericUDF {
     Object defaultVal = null;
     if (arguments.length == 3) {
       defaultVal = ObjectInspectorUtils.copyToStandardObject(
-              defaultValueConverter.convert(arguments[2].get()), defaultArgOI);
+              defaultValueConverter.convert(arguments[2].get()), firstArgOI);
     }
 
     int idx = pItr.getIndex() - 1;
@@ -98,10 +96,7 @@ public abstract class GenericUDFLeadLag extends GenericUDF {
     }
 
     if (arguments.length == 3) {
-      defaultArgOI = arguments[2];
-      ObjectInspectorConverters.getConverter(arguments[2], arguments[0]);
       defaultValueConverter = ObjectInspectorConverters.getConverter(arguments[2], arguments[0]);
-
     }
 
     firstArgOI = arguments[0];
@@ -133,14 +128,6 @@ public abstract class GenericUDFLeadLag extends GenericUDF {
     this.firstArgOI = firstArgOI;
   }
 
-  public ObjectInspector getDefaultArgOI() {
-    return defaultArgOI;
-  }
-
-  public void setDefaultArgOI(ObjectInspector defaultArgOI) {
-    this.defaultArgOI = defaultArgOI;
-  }
-
   public Converter getDefaultValueConverter() {
     return defaultValueConverter;
   }
index 89e69be..746d87a 100644 (file)
@@ -110,19 +110,24 @@ public class GenericUDFOPDivide extends GenericUDFBaseNumeric {
     return decimalWritable;
   }
 
+  private final static int MIN_START_DEC_DIGITS = 6;
+  private final static int DEFAULT_DEC_DIGITS = 18;
   /**
    * A balanced way to determine the precision/scale of decimal division result. Integer digits and
    * decimal digits are computed independently. However, when the precision from above reaches above
-   * HiveDecimal.MAX_PRECISION, interger digit and decimal digits are shrunk equally to fit.
+   * HiveDecimal.MAX_PRECISION, integer digit and decimal digits are shrunk equally to fit.
    */
   @Override
   protected DecimalTypeInfo deriveResultDecimalTypeInfo(int prec1, int scale1, int prec2, int scale2) {
     int intDig = Math.min(HiveDecimal.MAX_SCALE, prec1 - scale1 + scale2);
-    int decDig = Math.min(HiveDecimal.MAX_SCALE, Math.max(6, scale1 + prec2 + 1));
+    int decDig = Math.min(HiveDecimal.MAX_SCALE,
+        Math.max(MIN_START_DEC_DIGITS, scale1 + prec2 + 1));
     int diff = intDig + decDig -  HiveDecimal.MAX_SCALE;
     if (diff > 0) {
       decDig -= diff/2 + 1; // Slight negative bias.
       intDig = HiveDecimal.MAX_SCALE - decDig;
+    } else if (diff < 0 && decDig < DEFAULT_DEC_DIGITS) {
+      decDig += Math.min(-diff, DEFAULT_DEC_DIGITS - decDig);
     }
     return TypeInfoFactory.getDecimalTypeInfo(intDig + decDig, decDig);
   }
index e52e431..e087986 100644 (file)
 
 package org.apache.hadoop.hive.ql.udf.generic;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Formatter;
+import java.util.IllegalFormatConversionException;
 import java.util.Locale;
 
+import org.apache.hadoop.hive.common.type.HiveDecimal;
 import org.apache.hadoop.hive.ql.exec.Description;
 import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
 import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;
@@ -111,7 +114,8 @@ public class GenericUDFPrintf extends GenericUDF {
 
     ArrayList<Object> argumentList = new ArrayList<Object>();
     for (int i = 1; i < arguments.length; i++) {
-      switch (((PrimitiveObjectInspector)argumentOIs[i]).getPrimitiveCategory()) {
+      PrimitiveObjectInspector poi = (PrimitiveObjectInspector)argumentOIs[i];
+      switch (poi.getPrimitiveCategory()) {
         case BOOLEAN:
         case BYTE:
         case SHORT:
@@ -123,9 +127,17 @@ public class GenericUDFPrintf extends GenericUDF {
         case VARCHAR:
         case STRING:
         case TIMESTAMP:
+          argumentList.add(poi.getPrimitiveJavaObject(arguments[i].get()));
+          break;
         case DECIMAL:
-          argumentList.add(((PrimitiveObjectInspector)argumentOIs[i])
-            .getPrimitiveJavaObject(arguments[i].get()));
+          // Decimal classes cannot be converted by printf, so convert them to doubles.
+          Object obj = poi.getPrimitiveJavaObject(arguments[i].get());
+          if (obj instanceof HiveDecimal) {
+            obj = ((HiveDecimal)obj).doubleValue();
+          } else if (obj instanceof BigDecimal) {
+            obj = ((BigDecimal)obj).doubleValue();
+          }
+          argumentList.add(obj);
           break;
         default:
           argumentList.add(arguments[i].get());
index b89c14e..3a2bc4f 100644 (file)
@@ -1255,7 +1255,7 @@ public class WindowingTableFunction extends TableFunctionEvaluator {
       HiveDecimal d2 = PrimitiveObjectInspectorUtils.getHiveDecimal(v2,
           (PrimitiveObjectInspector) expressionDef.getOI());
       if ( d1 != null && d2 != null ) {
-        return d1.subtract(d2).intValue() > amt;
+        return d1.subtract(d2).intValue() > amt;  // TODO: lossy conversion!
       }
 
       return d1 != null || d2 != null; // True if only one value is null
index 6fa3b3f..59fb7dc 100644 (file)
@@ -45,7 +45,6 @@ public class TestGenericUDFOPDivide extends AbstractTestGenericUDFOPNumeric {
   @Test
   public void testByteDivideShort() throws HiveException {
     GenericUDFOPDivide udf = new GenericUDFOPDivide();
-
     ByteWritable left = new ByteWritable((byte) 4);
     ShortWritable right = new ShortWritable((short) 6);
     ObjectInspector[] inputOIs = {
@@ -58,9 +57,9 @@ public class TestGenericUDFOPDivide extends AbstractTestGenericUDFOPNumeric {
     };
 
     PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs);
-    Assert.assertEquals(oi.getTypeInfo(), TypeInfoFactory.getDecimalTypeInfo(9, 6));
+    Assert.assertEquals(oi.getTypeInfo(), TypeInfoFactory.getDecimalTypeInfo(21, 18));
     HiveDecimalWritable res = (HiveDecimalWritable) udf.evaluate(args);
-    Assert.assertEquals(HiveDecimal.create("0.666667"), res.getHiveDecimal());
+    Assert.assertEquals(HiveDecimal.create("0.666666666666666667"), res.getHiveDecimal());
   }
 
   @Test
@@ -109,12 +108,12 @@ public class TestGenericUDFOPDivide extends AbstractTestGenericUDFOPNumeric {
   @Test
   public void testLongDivideDecimal() throws HiveException {
     GenericUDFOPDivide udf = new GenericUDFOPDivide();
-
     LongWritable left = new LongWritable(104);
     HiveDecimalWritable right = new HiveDecimalWritable(HiveDecimal.create("234.97"));
     ObjectInspector[] inputOIs = {
         PrimitiveObjectInspectorFactory.writableLongObjectInspector,
-        PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(TypeInfoFactory.getDecimalTypeInfo(9, 4))
+        PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(
+            TypeInfoFactory.getDecimalTypeInfo(38, 15))
     };
     DeferredObject[] args = {
         new DeferredJavaObject(left),
@@ -122,9 +121,9 @@ public class TestGenericUDFOPDivide extends AbstractTestGenericUDFOPNumeric {
     };
 
     PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs);
-    Assert.assertEquals(TypeInfoFactory.getDecimalTypeInfo(33, 10), oi.getTypeInfo());
+    Assert.assertEquals(TypeInfoFactory.getDecimalTypeInfo(38, 20), oi.getTypeInfo());
     HiveDecimalWritable res = (HiveDecimalWritable) udf.evaluate(args);
-    Assert.assertEquals(HiveDecimal.create("0.4426096949"), res.getHiveDecimal());
+    Assert.assertEquals(HiveDecimal.create("0.44260969485466229731"), res.getHiveDecimal());
   }
 
   @Test
@@ -149,7 +148,7 @@ public class TestGenericUDFOPDivide extends AbstractTestGenericUDFOPNumeric {
   }
 
   @Test
-  public void testDouleDivideDecimal() throws HiveException {
+  public void testDoubleDivideDecimal() throws HiveException {
     GenericUDFOPDivide udf = new GenericUDFOPDivide();
 
     DoubleWritable left = new DoubleWritable(74.52);
@@ -176,24 +175,25 @@ public class TestGenericUDFOPDivide extends AbstractTestGenericUDFOPNumeric {
     HiveDecimalWritable left = new HiveDecimalWritable(HiveDecimal.create("14.5"));
     HiveDecimalWritable right = new HiveDecimalWritable(HiveDecimal.create("234.97"));
     ObjectInspector[] inputOIs = {
-        PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(TypeInfoFactory.getDecimalTypeInfo(3, 1)),
-        PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(TypeInfoFactory.getDecimalTypeInfo(5, 2))
+        PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(
+            TypeInfoFactory.getDecimalTypeInfo(3, 1)),
+        PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(
+            TypeInfoFactory.getDecimalTypeInfo(5, 2))
     };
     DeferredObject[] args = {
         new DeferredJavaObject(left),
         new DeferredJavaObject(right),
     };
-
     PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs);
-    Assert.assertEquals(TypeInfoFactory.getDecimalTypeInfo(11, 7), oi.getTypeInfo());
+    Assert.assertEquals(TypeInfoFactory.getDecimalTypeInfo(22, 18), oi.getTypeInfo());
     HiveDecimalWritable res = (HiveDecimalWritable) udf.evaluate(args);
-    Assert.assertEquals(HiveDecimal.create("0.06171"), res.getHiveDecimal());
+    Assert.assertEquals(HiveDecimal.create("0.061710005532621186"), res.getHiveDecimal());
   }
 
   @Test
   public void testDecimalDivideDecimal2() throws HiveException {
     GenericUDFOPDivide udf = new GenericUDFOPDivide();
-
     HiveDecimalWritable left = new HiveDecimalWritable(HiveDecimal.create("5"));
     HiveDecimalWritable right = new HiveDecimalWritable(HiveDecimal.create("25"));
     ObjectInspector[] inputOIs = {
@@ -206,7 +206,7 @@ public class TestGenericUDFOPDivide extends AbstractTestGenericUDFOPNumeric {
     };
 
     PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs);
-    Assert.assertEquals(TypeInfoFactory.getDecimalTypeInfo(7, 6), oi.getTypeInfo());
+    Assert.assertEquals(TypeInfoFactory.getDecimalTypeInfo(19, 18), oi.getTypeInfo());
     HiveDecimalWritable res = (HiveDecimalWritable) udf.evaluate(args);
     Assert.assertEquals(HiveDecimal.create("0.2"), res.getHiveDecimal());
   }
@@ -221,19 +221,19 @@ public class TestGenericUDFOPDivide extends AbstractTestGenericUDFOPNumeric {
     };
 
     PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs);
-    Assert.assertEquals(TypeInfoFactory.getDecimalTypeInfo(13, 8), oi.getTypeInfo());
+    Assert.assertEquals(TypeInfoFactory.getDecimalTypeInfo(23, 18), oi.getTypeInfo());
   }
 
   @Test
   public void testDecimalDivisionResultType() throws HiveException {
-    testDecimalDivisionResultType(5, 2, 3, 2, 11, 6);
+    testDecimalDivisionResultType(5, 2, 3, 2, 23, 18);
     testDecimalDivisionResultType(38, 18, 38, 18, 38, 18);
     testDecimalDivisionResultType(38, 18, 20, 0, 38, 27);
-    testDecimalDivisionResultType(20, 0, 8, 5, 34, 9);
-    testDecimalDivisionResultType(10, 0, 10, 0, 21, 11);
-    testDecimalDivisionResultType(5, 2, 5, 5, 16, 8);
-    testDecimalDivisionResultType(10, 10, 5, 0, 16, 16);
-    testDecimalDivisionResultType(10, 10, 5, 5, 21, 16);
+    testDecimalDivisionResultType(20, 0, 8, 5, 38, 13);
+    testDecimalDivisionResultType(10, 0, 10, 0, 28, 18);
+    testDecimalDivisionResultType(5, 2, 5, 5, 26, 18);
+    testDecimalDivisionResultType(10, 10, 5, 0, 18, 18);
+    testDecimalDivisionResultType(10, 10, 5, 5, 23, 18);
     testDecimalDivisionResultType(38, 38, 38, 38, 38, 18);
     testDecimalDivisionResultType(38, 0, 38, 0, 38, 18);
   }
@@ -259,7 +259,7 @@ public class TestGenericUDFOPDivide extends AbstractTestGenericUDFOPNumeric {
     verifyReturnType(new GenericUDFOPDivide(), "int", "int", "double"); // different from sql compat mode
     verifyReturnType(new GenericUDFOPDivide(), "int", "float", "double");
     verifyReturnType(new GenericUDFOPDivide(), "int", "double", "double");
-    verifyReturnType(new GenericUDFOPDivide(), "int", "decimal(10,2)", "decimal(23,11)");
+    verifyReturnType(new GenericUDFOPDivide(), "int", "decimal(10,2)", "decimal(30,18)");
 
     verifyReturnType(new GenericUDFOPDivide(), "float", "float", "double");
     verifyReturnType(new GenericUDFOPDivide(), "float", "double", "double");
@@ -268,7 +268,7 @@ public class TestGenericUDFOPDivide extends AbstractTestGenericUDFOPNumeric {
     verifyReturnType(new GenericUDFOPDivide(), "double", "double", "double");
     verifyReturnType(new GenericUDFOPDivide(), "double", "decimal(10,2)", "double");
 
-    verifyReturnType(new GenericUDFOPDivide(), "decimal(10,2)", "decimal(10,2)", "decimal(23,13)");
+    verifyReturnType(new GenericUDFOPDivide(), "decimal(10,2)", "decimal(10,2)", "decimal(28,18)");
 
     // Most tests are done with ANSI SQL mode enabled, set it back to true
     SessionState.get().getConf().setVar(HiveConf.ConfVars.HIVE_COMPAT, "latest");
@@ -278,10 +278,10 @@ public class TestGenericUDFOPDivide extends AbstractTestGenericUDFOPNumeric {
   public void testReturnTypeAnsiSql() throws Exception {
     SessionState.get().getConf().setVar(HiveConf.ConfVars.HIVE_COMPAT, "latest");
 
-    verifyReturnType(new GenericUDFOPDivide(), "int", "int", "decimal(21,11)");
+    verifyReturnType(new GenericUDFOPDivide(), "int", "int", "decimal(28,18)");
     verifyReturnType(new GenericUDFOPDivide(), "int", "float", "double");
     verifyReturnType(new GenericUDFOPDivide(), "int", "double", "double");
-    verifyReturnType(new GenericUDFOPDivide(), "int", "decimal(10,2)", "decimal(23,11)");
+    verifyReturnType(new GenericUDFOPDivide(), "int", "decimal(10,2)", "decimal(30,18)");
 
     verifyReturnType(new GenericUDFOPDivide(), "float", "float", "double");
     verifyReturnType(new GenericUDFOPDivide(), "float", "double", "double");
@@ -290,6 +290,6 @@ public class TestGenericUDFOPDivide extends AbstractTestGenericUDFOPNumeric {
     verifyReturnType(new GenericUDFOPDivide(), "double", "double", "double");
     verifyReturnType(new GenericUDFOPDivide(), "double", "decimal(10,2)", "double");
 
-    verifyReturnType(new GenericUDFOPDivide(), "decimal(10,2)", "decimal(10,2)", "decimal(23,13)");
+    verifyReturnType(new GenericUDFOPDivide(), "decimal(10,2)", "decimal(10,2)", "decimal(28,18)");
   }
 }
index 8ee4b27..f85c526 100644 (file)
@@ -2,4 +2,4 @@ set hive.mapred.mode=strict;
 
 -- This should fail until we fix the issue with precision when casting a bigint to a double
 
-select * from src where cast(1 as bigint) = 1.0 limit 10;
\ No newline at end of file
+select * from src where cast(1 as bigint) = cast(1.0 as double) limit 10;
\ No newline at end of file
diff --git a/ql/src/test/queries/clientpositive/implicit_decimal.q b/ql/src/test/queries/clientpositive/implicit_decimal.q
new file mode 100644 (file)
index 0000000..b32f9d0
--- /dev/null
@@ -0,0 +1,14 @@
+set hive.fetch.task.conversion=none;
+
+drop table decimal_test;
+create table decimal_test (dc decimal(38,18));
+insert into table decimal_test values (4327269606205.029297);
+
+explain 
+select * from decimal_test where dc = 4327269606205.029297;
+select * from decimal_test where dc = 4327269606205.029297;
+
+set hive.cbo.enable=false;
+select * from decimal_test where dc = 4327269606205.029297;
+
+drop table decimal_test;
index 74d7a2a..c29cb82 100644 (file)
@@ -32,7 +32,7 @@ INSERT OVERWRITE TABLE dest1 SELECT src_thrift.mstringstring FROM src_thrift DIS
 SELECT * from dest1;
 
 CREATE TABLE destBin(a UNIONTYPE<int, double, array<string>, struct<col1:int,col2:string>>) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe' STORED AS SEQUENCEFILE;
-INSERT OVERWRITE TABLE destBin SELECT create_union( CASE WHEN key < 100 THEN 0 WHEN key < 200 THEN 1 WHEN key < 300 THEN 2 WHEN key < 400 THEN 3 ELSE 0 END, key, 2.0, array("one","two"), struct(5,"five")) FROM srcbucket2;
+INSERT OVERWRITE TABLE destBin SELECT create_union( CASE WHEN key < 100 THEN 0 WHEN key < 200 THEN 1 WHEN key < 300 THEN 2 WHEN key < 400 THEN 3 ELSE 0 END, key, 2.0D, array("one","two"), struct(5,"five")) FROM srcbucket2;
 SELECT * from destBin;
 DROP TABLE destBin;
 
index c0598cd..8ed2b44 100644 (file)
@@ -10,9 +10,9 @@ SELECT java_method("java.lang.String", "valueOf", 1),
        java_method("java.lang.String", "isEmpty"),
        java_method("java.lang.Math", "max", 2, 3),
        java_method("java.lang.Math", "min", 2, 3),
-       java_method("java.lang.Math", "round", 2.5),
-       round(java_method("java.lang.Math", "exp", 1.0), 6),
-       java_method("java.lang.Math", "floor", 1.9)
+       java_method("java.lang.Math", "round", 2.5D),
+       round(java_method("java.lang.Math", "exp", 1.0D), 6),
+       java_method("java.lang.Math", "floor", 1.9D)
 FROM src tablesample (1 rows);
 
 
@@ -20,8 +20,8 @@ SELECT java_method("java.lang.String", "valueOf", 1),
        java_method("java.lang.String", "isEmpty"),
        java_method("java.lang.Math", "max", 2, 3),
        java_method("java.lang.Math", "min", 2, 3),
-       java_method("java.lang.Math", "round", 2.5),
-       round(java_method("java.lang.Math", "exp", 1.0), 6),
-       java_method("java.lang.Math", "floor", 1.9)
+       java_method("java.lang.Math", "round", 2.5D),
+       round(java_method("java.lang.Math", "exp", 1.0D), 6),
+       java_method("java.lang.Math", "floor", 1.9D)
 FROM src tablesample (1 rows);
 
index 97fa817..7fa9bf1 100644 (file)
@@ -8,9 +8,9 @@ SELECT reflect("java.lang.String", "valueOf", 1),
        reflect("java.lang.String", "isEmpty"),
        reflect("java.lang.Math", "max", 2, 3),
        reflect("java.lang.Math", "min", 2, 3),
-       reflect("java.lang.Math", "round", 2.5),
-       round(reflect("java.lang.Math", "exp", 1.0), 6),
-       reflect("java.lang.Math", "floor", 1.9),
+       reflect("java.lang.Math", "round", 2.5D),
+       round(reflect("java.lang.Math", "exp", 1.0D), 6),
+       reflect("java.lang.Math", "floor", 1.9D),
        reflect("java.lang.Integer", "valueOf", key, 16)
 FROM src tablesample (1 rows);
 
@@ -19,8 +19,8 @@ SELECT reflect("java.lang.String", "valueOf", 1),
        reflect("java.lang.String", "isEmpty"),
        reflect("java.lang.Math", "max", 2, 3),
        reflect("java.lang.Math", "min", 2, 3),
-       reflect("java.lang.Math", "round", 2.5),
-       round(reflect("java.lang.Math", "exp", 1.0), 6),
-       reflect("java.lang.Math", "floor", 1.9),
+       reflect("java.lang.Math", "round", 2.5D),
+       round(reflect("java.lang.Math", "exp", 1.0D), 6),
+       reflect("java.lang.Math", "floor", 1.9D),
        reflect("java.lang.Integer", "valueOf", key, 16)
 FROM src tablesample (1 rows);
index 0e3a4ca..42ee938 100644 (file)
@@ -191,57 +191,57 @@ insert into table test_4 values (1, "b", 1.5), (1, "a", 0.5), (2, "b", 1.5);
 explain
 select * from test_4 where struct(`my_bigint`, `my_string`, `my_double`)
 IN (
-struct(1L, "a", 1.5),
-struct(1L, "b", -0.5),
-struct(3L, "b", 1.5),
-struct(1L, "d", 1.5),
-struct(1L, "c", 1.5),
-struct(1L, "b", 2.5),
-struct(1L, "b", 0.5),
-struct(5L, "b", 1.5),
-struct(1L, "a", 0.5),
-struct(3L, "b", 1.5)
+struct(1L, "a", 1.5D),
+struct(1L, "b", -0.5D),
+struct(3L, "b", 1.5D),
+struct(1L, "d", 1.5D),
+struct(1L, "c", 1.5D),
+struct(1L, "b", 2.5D),
+struct(1L, "b", 0.5D),
+struct(5L, "b", 1.5D),
+struct(1L, "a", 0.5D),
+struct(3L, "b", 1.5D)
 );
 
 select * from test_4 where struct(`my_bigint`, `my_string`, `my_double`)
 IN (
-struct(1L, "a", 1.5),
-struct(1L, "b", -0.5),
-struct(3L, "b", 1.5),
-struct(1L, "d", 1.5),
-struct(1L, "c", 1.5),
-struct(1L, "b", 2.5),
-struct(1L, "b", 0.5),
-struct(5L, "b", 1.5),
-struct(1L, "a", 0.5),
-struct(3L, "b", 1.5)
+struct(1L, "a", 1.5D),
+struct(1L, "b", -0.5D),
+struct(3L, "b", 1.5D),
+struct(1L, "d", 1.5D),
+struct(1L, "c", 1.5D),
+struct(1L, "b", 2.5D),
+struct(1L, "b", 0.5D),
+struct(5L, "b", 1.5D),
+struct(1L, "a", 0.5D),
+struct(3L, "b", 1.5D)
 );
 
 explain
 select `my_bigint`, `my_string`, `my_double`, struct(`my_bigint`, `my_string`, `my_double`)
 IN (
-struct(1L, "a", 1.5),
-struct(1L, "b", -0.5),
-struct(3L, "b", 1.5),
-struct(1L, "d", 1.5),
-struct(1L, "c", 1.5),
-struct(1L, "b", 2.5),
-struct(1L, "b", 0.5),
-struct(5L, "b", 1.5),
-struct(1L, "a", 0.5),
-struct(3L, "b", 1.5)
+struct(1L, "a", 1.5D),
+struct(1L, "b", -0.5D),
+struct(3L, "b", 1.5D),
+struct(1L, "d", 1.5D),
+struct(1L, "c", 1.5D),
+struct(1L, "b", 2.5D),
+struct(1L, "b", 0.5D),
+struct(5L, "b", 1.5D),
+struct(1L, "a", 0.5D),
+struct(3L, "b", 1.5D)
 ) as b from test_4;
 
 select `my_bigint`, `my_string`, `my_double`, struct(`my_bigint`, `my_string`, `my_double`)
 IN (
-struct(1L, "a", 1.5),
-struct(1L, "b", -0.5),
-struct(3L, "b", 1.5),
-struct(1L, "d", 1.5),
-struct(1L, "c", 1.5),
-struct(1L, "b", 2.5),
-struct(1L, "b", 0.5),
-struct(5L, "b", 1.5),
-struct(1L, "a", 0.5),
-struct(3L, "b", 1.5)
+struct(1L, "a", 1.5D),
+struct(1L, "b", -0.5D),
+struct(3L, "b", 1.5D),
+struct(1L, "d", 1.5D),
+struct(1L, "c", 1.5D),
+struct(1L, "b", 2.5D),
+struct(1L, "b", 0.5D),
+struct(5L, "b", 1.5D),
+struct(1L, "a", 0.5D),
+struct(3L, "b", 1.5D)
 ) as b from test_4;
\ No newline at end of file
index cd3e72d..cf17668 100644 (file)
@@ -1 +1 @@
-FAILED: NoMatchingMethodException No matching method for class org.apache.hadoop.hive.ql.udf.UDAFPercentile with (double, double). Possible choices: _FUNC_(bigint, array<double>)  _FUNC_(bigint, double)  
+FAILED: NoMatchingMethodException No matching method for class org.apache.hadoop.hive.ql.udf.UDAFPercentile with (decimal(2,1), decimal(2,2)). Possible choices: _FUNC_(bigint, array<double>)  _FUNC_(bigint, double)  
index 897f4f2..fd142d7 100644 (file)
@@ -1 +1 @@
-FAILED: SemanticException [Error 10016]: Line 1:32 Argument type mismatch '2.4': add_months only takes INT/SHORT/BYTE types as 2nd argument, got DOUBLE
+FAILED: SemanticException [Error 10016]: Line 1:32 Argument type mismatch '2.4': add_months only takes INT/SHORT/BYTE types as 2nd argument, got DECIMAL
index 6eca7f8..1536041 100644 (file)
@@ -1 +1 @@
-FAILED: SemanticException [Error 10016]: Line 2:35 Argument type mismatch '4.01': Argument 2 of function FORMAT_NUMBER must be "tinyint" or "smallint" or "int" or "bigint" or "string", but "double" was found.
+FAILED: SemanticException [Error 10016]: Line 2:35 Argument type mismatch '4.01': Argument 2 of function FORMAT_NUMBER must be "tinyint" or "smallint" or "int" or "bigint" or "string", but "decimal(3,2)" was found.
index 6d7a3c1..5db7248 100644 (file)
@@ -1 +1 @@
-FAILED: SemanticException [Error 10016]: Line 2:21 Argument type mismatch '321.23': Argument 1 of function FORMAT_NUMBER must be "tinyint" or "smallint" or "int" or "bigint" or "double" or "float" or "decimal", but "array<double>" was found.
+FAILED: SemanticException [Error 10016]: Line 2:21 Argument type mismatch '321.23': Argument 1 of function FORMAT_NUMBER must be "tinyint" or "smallint" or "int" or "bigint" or "double" or "float" or "decimal", but "array<decimal(11,6)>" was found.
index 7d089fd..55a2185 100644 (file)
@@ -1 +1 @@
-FAILED: SemanticException [Error 10016]: Line 1:13 Argument type mismatch '1.0': TRUNC() only takes STRING/TIMESTAMP/DATEWRITABLE types as first argument, got DOUBLE
+FAILED: SemanticException [Error 10016]: Line 1:13 Argument type mismatch '1.0': TRUNC() only takes STRING/TIMESTAMP/DATEWRITABLE types as first argument, got DECIMAL
index be48c4e..6ff90ea 100644 (file)
@@ -6,4 +6,4 @@ POSTHOOK: query: CREATE TABLE dest1(a float)
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@dest1
-FAILED: NoMatchingMethodException No matching method for class org.apache.hadoop.hive.ql.udf.UDFToFloat with (array<double>). Possible choices: _FUNC_(bigint)  _FUNC_(boolean)  _FUNC_(decimal(38,18))  _FUNC_(double)  _FUNC_(int)  _FUNC_(smallint)  _FUNC_(string)  _FUNC_(timestamp)  _FUNC_(tinyint)  _FUNC_(void)  
+FAILED: NoMatchingMethodException No matching method for class org.apache.hadoop.hive.ql.udf.UDFToFloat with (array<decimal(1,0)>). Possible choices: _FUNC_(bigint)  _FUNC_(boolean)  _FUNC_(decimal(38,18))  _FUNC_(double)  _FUNC_(int)  _FUNC_(smallint)  _FUNC_(string)  _FUNC_(timestamp)  _FUNC_(tinyint)  _FUNC_(void)  
index a03040a..03944fa 100644 (file)
@@ -351,9 +351,9 @@ STAGE PLANS:
           alias: alltypes_orc
           Statistics: Num rows: 2 Data size: 1686 Basic stats: COMPLETE Column stats: COMPLETE
           Select Operator
-            expressions: 11.0 (type: double)
+            expressions: 11 (type: int)
             outputColumnNames: _col0
-            Statistics: Num rows: 2 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+            Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
             ListSink
 
 PREHOOK: query: -- numRows: 2 rawDataSize: 178
@@ -949,12 +949,12 @@ STAGE PLANS:
           Number of rows: 10
           Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
           Select Operator
-            expressions: 11.0 (type: double)
+            expressions: 11 (type: int)
             outputColumnNames: _col0
-            Statistics: Num rows: 2 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+            Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
             File Output Operator
               compressed: false
-              Statistics: Num rows: 2 Data size: 16 Basic stats: COMPLETE Column stats: COMPLETE
+              Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
               table:
                   input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                   output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -1081,12 +1081,12 @@ STAGE PLANS:
           Number of rows: 10
           Statistics: Num rows: 2 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
           Select Operator
-            expressions: 'hello' (type: string), 11.0 (type: double)
+            expressions: 'hello' (type: string), 11 (type: int)
             outputColumnNames: _col0, _col1
-            Statistics: Num rows: 2 Data size: 194 Basic stats: COMPLETE Column stats: COMPLETE
+            Statistics: Num rows: 2 Data size: 186 Basic stats: COMPLETE Column stats: COMPLETE
             File Output Operator
               compressed: false
-              Statistics: Num rows: 2 Data size: 194 Basic stats: COMPLETE Column stats: COMPLETE
+              Statistics: Num rows: 2 Data size: 186 Basic stats: COMPLETE Column stats: COMPLETE
               table:
                   input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                   output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
index dd12b02..7d345fc 100644 (file)
@@ -16,7 +16,7 @@ STAGE PLANS:
             alias: src
             Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
             Select Operator
-              expressions: (CAST( UDFToInteger(key) AS decimal(10,0)) / CAST( UDFToInteger(key) AS decimal(10,0))) (type: decimal(21,11))
+              expressions: (CAST( UDFToInteger(key) AS decimal(10,0)) / CAST( UDFToInteger(key) AS decimal(10,0))) (type: decimal(28,18))
               outputColumnNames: _col0
               Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
               Limit
@@ -44,7 +44,7 @@ POSTHOOK: query: select cast(key as int) / cast(key as int) from src limit 1
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@src
 #### A masked pattern was here ####
-1.00000000000
+1.000000000000000000
 PREHOOK: query: -- With ansi sql arithmetic disabled, int / int => double
 explain select cast(key as int) / cast(key as int) from src limit 1
 PREHOOK: type: QUERY
index d87c04c..1a246c0 100644 (file)
@@ -106,9 +106,9 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@src
 POSTHOOK: Output: default@dest1
 POSTHOOK: Lineage: dest1.c1 SIMPLE []
-POSTHOOK: Lineage: dest1.c2 SIMPLE []
-POSTHOOK: Lineage: dest1.c3 SIMPLE []
-POSTHOOK: Lineage: dest1.c4 SIMPLE []
+POSTHOOK: Lineage: dest1.c2 EXPRESSION []
+POSTHOOK: Lineage: dest1.c3 EXPRESSION []
+POSTHOOK: Lineage: dest1.c4 EXPRESSION []
 POSTHOOK: Lineage: dest1.c5 SIMPLE []
 POSTHOOK: Lineage: dest1.c6 SIMPLE []
 POSTHOOK: Lineage: dest1.c7 SIMPLE []
index 2c2c97a..8504f2b 100644 (file)
@@ -144,5 +144,5 @@ PREHOOK: Input: default@decimal_6_3
 POSTHOOK: query: desc DECIMAL_6_3
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@decimal_6_3
-k                      double                                      
+k                      decimal(11,5)                               
 v                      int                                         
index fa26248..23eda1c 100644 (file)
@@ -242,37 +242,37 @@ NULL      NULL    NULL
 NULL   NULL    NULL
 NULL   NULL    NULL
 NULL   NULL    NULL
-0.0000000000   0.0000000000    0.000000000000
-0.0000000000   0.0000000000    0.000000000000
-0.0000000000   0.0000000000    0.000000000000
-0.0000000000   0.0000000000    0.000000000000
-0.0000000000   0.0000000000    0.000000000000
-0.1234567890   0.2469135780    0.041152263000
-0.1234567890   0.2469135780    0.041152263000
-1.2345678901   2.4691357802    0.411522630033
-1.2345678901   2.4691357802    0.411522630033
-1.2345678901   2.4691357802    0.411522630033
-12.3456789012  24.6913578024   4.115226300400
-12.3456789012  24.6913578024   4.115226300400
-12.3456789012  24.6913578024   4.115226300400
-123.4567890123 246.9135780246  41.152263004100
-123.4567890123 246.9135780246  41.152263004100
-123.4567890123 246.9135780246  41.152263004100
-1234.5678901235        2469.1357802470 411.522630041167
-1234.5678901235        2469.1357802470 411.522630041167
-1234.5678901235        2469.1357802470 411.522630041167
-12345.6789012346       24691.3578024692        4115.226300411533
-12345.6789012346       24691.3578024692        4115.226300411533
-123456.7890123456      246913.5780246912       41152.263004115200
-123456.7890123457      246913.5780246914       41152.263004115233
-1234567.8901234560     2469135.7802469120      411522.630041152000
-1234567.8901234568     2469135.7802469136      411522.630041152267
-12345678.9012345600    24691357.8024691200     4115226.300411520000
-12345678.9012345679    24691357.8024691358     4115226.300411522633
-123456789.0123456000   246913578.0246912000    41152263.004115200000
-123456789.0123456789   246913578.0246913578    41152263.004115226300
-1234567890.1234560000  2469135780.2469120000   411522630.041152000000
-1234567890.1234567890  2469135780.2469135780   411522630.041152263000
+0.0000000000   0.0000000000    0.000000000000000000
+0.0000000000   0.0000000000    0.000000000000000000
+0.0000000000   0.0000000000    0.000000000000000000
+0.0000000000   0.0000000000    0.000000000000000000
+0.0000000000   0.0000000000    0.000000000000000000
+0.1234567890   0.2469135780    0.041152263000000000
+0.1234567890   0.2469135780    0.041152263000000000
+1.2345678901   2.4691357802    0.411522630033333333
+1.2345678901   2.4691357802    0.411522630033333333
+1.2345678901   2.4691357802    0.411522630033333333
+12.3456789012  24.6913578024   4.115226300400000000
+12.3456789012  24.6913578024   4.115226300400000000
+12.3456789012  24.6913578024   4.115226300400000000
+123.4567890123 246.9135780246  41.152263004100000000
+123.4567890123 246.9135780246  41.152263004100000000
+123.4567890123 246.9135780246  41.152263004100000000
+1234.5678901235        2469.1357802470 411.522630041166666667
+1234.5678901235        2469.1357802470 411.522630041166666667
+1234.5678901235        2469.1357802470 411.522630041166666667
+12345.6789012346       24691.3578024692        4115.226300411533333333
+12345.6789012346       24691.3578024692        4115.226300411533333333
+123456.7890123456      246913.5780246912       41152.263004115200000000
+123456.7890123457      246913.5780246914       41152.263004115233333333
+1234567.8901234560     2469135.7802469120      411522.630041152000000000
+1234567.8901234568     2469135.7802469136      411522.630041152266666667
+12345678.9012345600    24691357.8024691200     4115226.300411520000000000
+12345678.9012345679    24691357.8024691358     4115226.300411522633333333
+123456789.0123456000   246913578.0246912000    41152263.004115200000000000
+123456789.0123456789   246913578.0246913578    41152263.004115226300000000
+1234567890.1234560000  2469135780.2469120000   411522630.041152000000000000
+1234567890.1234567890  2469135780.2469135780   411522630.041152263000000000
 PREHOOK: query: SELECT dec, dec / 9 FROM DECIMAL_PRECISION ORDER BY dec
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_precision
@@ -325,37 +325,37 @@ NULL      NULL
 NULL   NULL
 NULL   NULL
 NULL   NULL
-0.0000000000   0.000000000000
-0.0000000000   0.000000000000
-0.0000000000   0.000000000000
-0.0000000000   0.000000000000
-0.0000000000   0.000000000000
-0.1234567890   0.013717421000
-0.1234567890   0.013717421000
-1.2345678901   0.137174210011
-1.2345678901   0.137174210011
-1.2345678901   0.137174210011
-12.3456789012  1.371742100133
-12.3456789012  1.371742100133
-12.3456789012  1.371742100133
-123.4567890123 13.717421001367
-123.4567890123 13.717421001367
-123.4567890123 13.717421001367
-1234.5678901235        137.174210013722
-1234.5678901235        137.174210013722
-1234.5678901235        137.174210013722
-12345.6789012346       1371.742100137178
-12345.6789012346       1371.742100137178
-123456.7890123456      13717.421001371733
-123456.7890123457      13717.421001371744
-1234567.8901234560     137174.210013717333
-1234567.8901234568     137174.210013717422
-12345678.9012345600    1371742.100137173333
-12345678.9012345679    1371742.100137174211
-123456789.0123456000   13717421.001371733333
-123456789.0123456789   13717421.001371742100
-1234567890.1234560000  137174210.013717333333
-1234567890.1234567890  137174210.013717421000
+0.0000000000   0.000000000000000000
+0.0000000000   0.000000000000000000
+0.0000000000   0.000000000000000000
+0.0000000000   0.000000000000000000
+0.0000000000   0.000000000000000000
+0.1234567890   0.013717421000000000
+0.1234567890   0.013717421000000000
+1.2345678901   0.137174210011111111
+1.2345678901   0.137174210011111111
+1.2345678901   0.137174210011111111
+12.3456789012  1.371742100133333333
+12.3456789012  1.371742100133333333
+12.3456789012  1.371742100133333333
+123.4567890123 13.717421001366666667
+123.4567890123 13.717421001366666667
+123.4567890123 13.717421001366666667
+1234.5678901235        137.174210013722222222
+1234.5678901235        137.174210013722222222
+1234.5678901235        137.174210013722222222
+12345.6789012346       1371.742100137177777778
+12345.6789012346       1371.742100137177777778
+123456.7890123456      13717.421001371733333333
+123456.7890123457      13717.421001371744444444
+1234567.8901234560     137174.210013717333333333
+1234567.8901234568     137174.210013717422222222
+12345678.9012345600    1371742.100137173333333333
+12345678.9012345679    1371742.100137174211111111
+123456789.0123456000   13717421.001371733333333333
+123456789.0123456789   13717421.001371742100000000
+1234567890.1234560000  137174210.013717333333333333
+1234567890.1234567890  137174210.013717421000000000
 PREHOOK: query: SELECT dec, dec / 27 FROM DECIMAL_PRECISION ORDER BY dec
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_precision
@@ -408,37 +408,37 @@ NULL      NULL
 NULL   NULL
 NULL   NULL
 NULL   NULL
-0.0000000000   0.0000000000000
-0.0000000000   0.0000000000000
-0.0000000000   0.0000000000000
-0.0000000000   0.0000000000000
-0.0000000000   0.0000000000000
-0.1234567890   0.0045724736667
-0.1234567890   0.0045724736667
-1.2345678901   0.0457247366704
-1.2345678901   0.0457247366704
-1.2345678901   0.0457247366704
-12.3456789012  0.4572473667111
-12.3456789012  0.4572473667111
-12.3456789012  0.4572473667111
-123.4567890123 4.5724736671222
-123.4567890123 4.5724736671222
-123.4567890123 4.5724736671222
-1234.5678901235        45.7247366712407
-1234.5678901235        45.7247366712407
-1234.5678901235        45.7247366712407
-12345.6789012346       457.2473667123926
-12345.6789012346       457.2473667123926
-123456.7890123456      4572.4736671239111
-123456.7890123457      4572.4736671239148
-1234567.8901234560     45724.7366712391111
-1234567.8901234568     45724.7366712391407
-12345678.9012345600    457247.3667123911111
-12345678.9012345679    457247.3667123914037
-123456789.0123456000   4572473.6671239111111
-123456789.0123456789   4572473.6671239140333
-1234567890.1234560000  45724736.6712391111111
-1234567890.1234567890  45724736.6712391403333
+0.0000000000   0.000000000000000000
+0.0000000000   0.000000000000000000
+0.0000000000   0.000000000000000000
+0.0000000000   0.000000000000000000
+0.0000000000   0.000000000000000000
+0.1234567890   0.004572473666666667
+0.1234567890   0.004572473666666667
+1.2345678901   0.045724736670370370
+1.2345678901   0.045724736670370370
+1.2345678901   0.045724736670370370
+12.3456789012  0.457247366711111111
+12.3456789012  0.457247366711111111
+12.3456789012  0.457247366711111111
+123.4567890123 4.572473667122222222
+123.4567890123 4.572473667122222222
+123.4567890123 4.572473667122222222
+1234.5678901235        45.724736671240740741
+1234.5678901235        45.724736671240740741
+1234.5678901235        45.724736671240740741
+12345.6789012346       457.247366712392592593
+12345.6789012346       457.247366712392592593
+123456.7890123456      4572.473667123911111111
+123456.7890123457      4572.473667123914814815
+1234567.8901234560     45724.736671239111111111
+1234567.8901234568     45724.736671239140740741
+12345678.9012345600    457247.366712391111111111
+12345678.9012345679    457247.366712391403703704
+123456789.0123456000   4572473.667123911111111111
+123456789.0123456789   4572473.667123914033333333
+1234567890.1234560000  45724736.671239111111111111
+1234567890.1234567890  45724736.671239140333333333
 PREHOOK: query: SELECT dec, dec * dec FROM DECIMAL_PRECISION ORDER BY dec
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_precision
index dad8663..0a7f310 100644 (file)
@@ -907,7 +907,7 @@ STAGE PLANS:
           alias: decimal_udf
           Statistics: Num rows: 3 Data size: 359 Basic stats: COMPLETE Column stats: NONE
           Select Operator
-            expressions: (key / 0) (type: decimal(22,12))
+            expressions: (key / 0) (type: decimal(28,18))
             outputColumnNames: _col0
             Statistics: Num rows: 3 Data size: 359 Basic stats: COMPLETE Column stats: NONE
             Limit
@@ -1808,7 +1808,7 @@ STAGE PLANS:
           alias: decimal_udf
           Statistics: Num rows: 3 Data size: 359 Basic stats: COMPLETE Column stats: NONE
           Select Operator
-            expressions: ((key + 1) % (key / 2)) (type: decimal(22,12))
+            expressions: ((key + 1) % (key / 2)) (type: decimal(28,18))
             outputColumnNames: _col0
             Statistics: Num rows: 3 Data size: 359 Basic stats: COMPLETE Column stats: NONE
             ListSink
@@ -1821,44 +1821,44 @@ POSTHOOK: query: SELECT (key + 1) % (key / 2) FROM DECIMAL_UDF
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@decimal_udf
 #### A masked pattern was here ####
--2199.000000000000
+-2199.000000000000000000
 NULL
 NULL
 NULL
-1.000000000000
-1.000000000000
-0.000000000000
-0.000000000000
-0.000000000000
-1.000000000000
-1.000000000000
-0.000000000000
+1.000000000000000000
+1.000000000000000000
+0.000000000000000000
+0.000000000000000000
+0.000000000000000000
+1.000000000000000000
+1.000000000000000000
+0.000000000000000000
 NULL
-0.000000000000
-0.000000000000
-0.100000000000
-0.010000000000
-0.001000000000
-0.100000000000
-0.010000000000
-0.001000000000
-0.000000000000
-0.000000000000
-1.000000000000
--0.120000000000
--0.120000000000
--0.122000000000
-0.440000000000
-0.439000000000
-1.000000000000
-1.000000000000
--626.745000000000
-1.000000000000
-1.000000000000
-1.000000000000
-0.000000000000
--617283944.061728394500
-1.000000000000
+0.000000000000000000
+0.000000000000000000
+0.100000000000000000
+0.010000000000000000
+0.001000000000000000
+0.100000000000000000
+0.010000000000000000
+0.001000000000000000
+0.000000000000000000
+0.000000000000000000
+1.000000000000000000
+-0.120000000000000000
+-0.120000000000000000
+-0.122000000000000000
+0.440000000000000000
+0.439000000000000000
+1.000000000000000000
+1.000000000000000000
+-626.745000000000000000
+1.000000000000000000
+1.000000000000000000
+1.000000000000000000
+0.000000000000000000
+-617283944.061728394500000000
+1.000000000000000000
 PREHOOK: query: -- stddev, var
 EXPLAIN SELECT value, stddev(key), variance(key) FROM DECIMAL_UDF GROUP BY value
 PREHOOK: type: QUERY
diff --git a/ql/src/test/results/clientpositive/implicit_decimal.q.out b/ql/src/test/results/clientpositive/implicit_decimal.q.out
new file mode 100644 (file)
index 0000000..b93f250
--- /dev/null
@@ -0,0 +1,85 @@
+PREHOOK: query: drop table decimal_test
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table decimal_test
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table decimal_test (dc decimal(38,18))
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@decimal_test
+POSTHOOK: query: create table decimal_test (dc decimal(38,18))
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@decimal_test
+PREHOOK: query: insert into table decimal_test values (4327269606205.029297)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@decimal_test
+POSTHOOK: query: insert into table decimal_test values (4327269606205.029297)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@decimal_test
+POSTHOOK: Lineage: decimal_test.dc EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: explain 
+select * from decimal_test where dc = 4327269606205.029297
+PREHOOK: type: QUERY
+POSTHOOK: query: explain 
+select * from decimal_test where dc = 4327269606205.029297
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Map Reduce
+      Map Operator Tree:
+          TableScan
+            alias: decimal_test
+            Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
+            Filter Operator
+              predicate: (dc = 4327269606205.029297) (type: boolean)
+              Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
+              Select Operator
+                expressions: 4327269606205.029297 (type: decimal(38,18))
+                outputColumnNames: _col0
+                Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
+                File Output Operator
+                  compressed: false
+                  Statistics: Num rows: 1 Data size: 32 Basic stats: COMPLETE Column stats: NONE
+                  table:
+                      input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select * from decimal_test where dc = 4327269606205.029297
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_test
+#### A masked pattern was here ####
+POSTHOOK: query: select * from decimal_test where dc = 4327269606205.029297
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_test
+#### A masked pattern was here ####
+4327269606205.029297000000000000
+PREHOOK: query: select * from decimal_test where dc = 4327269606205.029297
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_test
+#### A masked pattern was here ####
+POSTHOOK: query: select * from decimal_test where dc = 4327269606205.029297
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_test
+#### A masked pattern was here ####
+4327269606205.029297000000000000
+PREHOOK: query: drop table decimal_test
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@decimal_test
+PREHOOK: Output: default@decimal_test
+POSTHOOK: query: drop table decimal_test
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@decimal_test
+POSTHOOK: Output: default@decimal_test
index 4ff8c87..90ca7e1 100644 (file)
@@ -59,7 +59,7 @@ STAGE PLANS:
             alias: infertypes
             Statistics: Num rows: 1 Data size: 117 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
-              predicate: ((ti = 127) and (si = 32767) and (i = 12345) and (bi = -12345) and (fl = 906.0) and (db = -307.0) and (UDFToDouble(str) = 1234.0)) (type: boolean)
+              predicate: ((ti = 127) and (si = 32767) and (i = 12345) and (bi = -12345) and (fl = 906) and (db = -307.0) and (UDFToDouble(str) = 1234.0)) (type: boolean)
               Statistics: Num rows: 1 Data size: 117 Basic stats: COMPLETE Column stats: NONE
               Select Operator
                 expressions: 127 (type: tinyint), 32767 (type: smallint), 12345 (type: int), -12345 (type: bigint), 906.0 (type: float), -307.0 (type: double), str (type: string)
@@ -202,7 +202,7 @@ STAGE PLANS:
             alias: infertypes
             Statistics: Num rows: 1 Data size: 117 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
-              predicate: ((UDFToDouble(ti) = 127.0) or (UDFToDouble(si) = 327.0) or (UDFToDouble(i) = -100.0)) (type: boolean)
+              predicate: ((UDFToDouble(ti) = 127.0) or (CAST( si AS decimal(5,0)) = 327) or (UDFToDouble(i) = -100.0)) (type: boolean)
               Statistics: Num rows: 1 Data size: 117 Basic stats: COMPLETE Column stats: NONE
               Select Operator
                 expressions: ti (type: tinyint), si (type: smallint), i (type: int), bi (type: bigint), fl (type: float), db (type: double), str (type: string)
index 2d51528..8c85895 100644 (file)
@@ -15,7 +15,7 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@src
 POSTHOOK: Output: default@intable
 POSTHOOK: Lineage: intable.b EXPRESSION []
-POSTHOOK: Lineage: intable.d SIMPLE []
+POSTHOOK: Lineage: intable.d EXPRESSION []
 POSTHOOK: Lineage: intable.f EXPRESSION []
 POSTHOOK: Lineage: intable.i SIMPLE []
 POSTHOOK: Lineage: intable.l SIMPLE []
index 3cf3bd2..d5ad564 100644 (file)
@@ -231,11 +231,11 @@ POSTHOOK: query: CREATE TABLE destBin(a UNIONTYPE<int, double, array<string>, st
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@destBin
-PREHOOK: query: INSERT OVERWRITE TABLE destBin SELECT create_union( CASE WHEN key < 100 THEN 0 WHEN key < 200 THEN 1 WHEN key < 300 THEN 2 WHEN key < 400 THEN 3 ELSE 0 END, key, 2.0, array("one","two"), struct(5,"five")) FROM srcbucket2
+PREHOOK: query: INSERT OVERWRITE TABLE destBin SELECT create_union( CASE WHEN key < 100 THEN 0 WHEN key < 200 THEN 1 WHEN key < 300 THEN 2 WHEN key < 400 THEN 3 ELSE 0 END, key, 2.0D, array("one","two"), struct(5,"five")) FROM srcbucket2
 PREHOOK: type: QUERY
 PREHOOK: Input: default@srcbucket2
 PREHOOK: Output: default@destbin
-POSTHOOK: query: INSERT OVERWRITE TABLE destBin SELECT create_union( CASE WHEN key < 100 THEN 0 WHEN key < 200 THEN 1 WHEN key < 300 THEN 2 WHEN key < 400 THEN 3 ELSE 0 END, key, 2.0, array("one","two"), struct(5,"five")) FROM srcbucket2
+POSTHOOK: query: INSERT OVERWRITE TABLE destBin SELECT create_union( CASE WHEN key < 100 THEN 0 WHEN key < 200 THEN 1 WHEN key < 300 THEN 2 WHEN key < 400 THEN 3 ELSE 0 END, key, 2.0D, array("one","two"), struct(5,"five")) FROM srcbucket2
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@srcbucket2
 POSTHOOK: Output: default@destbin
index 12ae13e..4b6558b 100644 (file)
@@ -135,7 +135,7 @@ and x.ctinyint + length(c.cstring2) < 1000
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
-{"version":"1.0","engine":"mr","database":"default","hash":"3a12ad24b2622a8958df12d0bdc60f8a","queryText":"select x.ctinyint, x.cint, c.cbigint-100, c.cstring1\nfrom alltypesorc c\njoin (\n   select a.ctinyint ctinyint, b.cint cint\n   from (select * from alltypesorc a where cboolean1=false) a\n   join alltypesorc b on (a.cint = b.cbigint - 224870380)\n ) x on (x.cint = c.cint)\nwhere x.ctinyint > 10\nand x.cint < 4.5\nand x.ctinyint + length(c.cstring2) < 1000","edges":[{"sources":[4],"targets":[0],"edgeType":"PROJECTION"},{"sources":[5],"targets":[1],"edgeType":"PROJECTION"},{"sources":[6],"targets":[2],"expression":"(c.cbigint - 100)","edgeType":"PROJECTION"},{"sources":[7],"targets":[3],"edgeType":"PROJECTION"},{"sources":[5],"targets":[0,1,2,3],"expression":"(UDFToDouble(c.cint) < 4.5)","edgeType":"PREDICATE"},{"sources":[5],"targets":[0,1,2,3],"expression":"(c.cint = c.cint)","edgeType":"PREDICATE"},{"sources":[5,6],"targets":[0,1,2,3],"expression":"((UDFToDouble(c.cint) < 4.5) and c.cbigint is not null)","edgeType":"PREDICATE"},{"sources":[6,5],"targets":[0,1,2,3],"expression":"((c.cbigint - 224870380) = UDFToLong(c.cint))","edgeType":"PREDICATE"},{"sources":[8,4,5],"targets":[0,1,2,3],"expression":"((c.cboolean1 = false) and (c.ctinyint > 10) and c.cint is not null)","edgeType":"PREDICATE"},{"sources":[4,9],"targets":[0,1,2,3],"expression":"((UDFToInteger(c.ctinyint) + length(c.cstring2)) < 1000)","edgeType":"PREDICATE"}],"vertices":[{"id":0,"vertexType":"COLUMN","vertexId":"x.ctinyint"},{"id":1,"vertexType":"COLUMN","vertexId":"x.cint"},{"id":2,"vertexType":"COLUMN","vertexId":"c2"},{"id":3,"vertexType":"COLUMN","vertexId":"c.cstring1"},{"id":4,"vertexType":"COLUMN","vertexId":"default.alltypesorc.ctinyint"},{"id":5,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cint"},{"id":6,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cbigint"},{"id":7,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cstring1"},{"id":8,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cboolean1"},{"id":9,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cstring2"}]}
+{"version":"1.0","engine":"mr","database":"default","hash":"3a12ad24b2622a8958df12d0bdc60f8a","queryText":"select x.ctinyint, x.cint, c.cbigint-100, c.cstring1\nfrom alltypesorc c\njoin (\n   select a.ctinyint ctinyint, b.cint cint\n   from (select * from alltypesorc a where cboolean1=false) a\n   join alltypesorc b on (a.cint = b.cbigint - 224870380)\n ) x on (x.cint = c.cint)\nwhere x.ctinyint > 10\nand x.cint < 4.5\nand x.ctinyint + length(c.cstring2) < 1000","edges":[{"sources":[4],"targets":[0],"edgeType":"PROJECTION"},{"sources":[5],"targets":[1],"edgeType":"PROJECTION"},{"sources":[6],"targets":[2],"expression":"(c.cbigint - 100)","edgeType":"PROJECTION"},{"sources":[7],"targets":[3],"edgeType":"PROJECTION"},{"sources":[5],"targets":[0,1,2,3],"expression":"(CAST( c.cint AS decimal(11,1)) < 4.5)","edgeType":"PREDICATE"},{"sources":[5],"targets":[0,1,2,3],"expression":"(c.cint = c.cint)","edgeType":"PREDICATE"},{"sources":[5,6],"targets":[0,1,2,3],"expression":"((CAST( c.cint AS decimal(11,1)) < 4.5) and c.cbigint is not null)","edgeType":"PREDICATE"},{"sources":[6,5],"targets":[0,1,2,3],"expression":"((c.cbigint - 224870380) = UDFToLong(c.cint))","edgeType":"PREDICATE"},{"sources":[8,4,5],"targets":[0,1,2,3],"expression":"((c.cboolean1 = false) and (c.ctinyint > 10) and c.cint is not null)","edgeType":"PREDICATE"},{"sources":[4,9],"targets":[0,1,2,3],"expression":"((UDFToInteger(c.ctinyint) + length(c.cstring2)) < 1000)","edgeType":"PREDICATE"}],"vertices":[{"id":0,"vertexType":"COLUMN","vertexId":"x.ctinyint"},{"id":1,"vertexType":"COLUMN","vertexId":"x.cint"},{"id":2,"vertexType":"COLUMN","vertexId":"c2"},{"id":3,"vertexType":"COLUMN","vertexId":"c.cstring1"},{"id":4,"vertexType":"COLUMN","vertexId":"default.alltypesorc.ctinyint"},{"id":5,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cint"},{"id":6,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cbigint"},{"id":7,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cstring1"},{"id":8,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cboolean1"},{"id":9,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cstring2"}]}
 11     -654374827      857266369       OEfPnHnIYueoup
 PREHOOK: query: select c1, x2, x3
 from (
@@ -317,7 +317,7 @@ PREHOOK: type: QUERY
 PREHOOK: Input: default@alltypesorc
 PREHOOK: Input: default@dest_v3
 #### A masked pattern was here ####
-{"version":"1.0","engine":"mr","database":"default","hash":"40bccc0722002f798d0548b59e369e83","queryText":"select * from dest_v3 limit 2","edges":[{"sources":[3,4,5,6,7],"targets":[0],"expression":"(tok_function sum (. (tok_table_or_col $hdt$_0) ctinyint) (tok_windowspec (tok_partitioningspec (tok_distributeby (. (tok_table_or_col $hdt$_0) csmallint)) (tok_orderby (tok_tabsortcolnameasc (tok_nulls_first (. (tok_table_or_col $hdt$_0) csmallint))))) (tok_windowvalues (preceding 2147483647) current)))","edgeType":"PROJECTION"},{"sources":[6],"targets":[1],"expression":"count(default.alltypesorc.cstring1)","edgeType":"PROJECTION"},{"sources":[5],"targets":[2],"edgeType":"PROJECTION"},{"sources":[8,7],"targets":[0,1,2],"expression":"((a.cboolean2 = true) and a.cint is not null)","edgeType":"PREDICATE"},{"sources":[7],"targets":[0,1,2],"expression":"(a.cint = a.cint)","edgeType":"PREDICATE"},{"sources":[9,7],"targets":[0,1,2],"expression":"((a.cfloat > 0.0) and a.cint is not null)","edgeType":"PREDICATE"},{"sources":[7],"targets":[0,1,2],"expression":"(count(default.alltypesorc.cint) > 10)","edgeType":"PREDICATE"}],"vertices":[{"id":0,"vertexType":"COLUMN","vertexId":"dest_v3.a"},{"id":1,"vertexType":"COLUMN","vertexId":"dest_v3.x"},{"id":2,"vertexType":"COLUMN","vertexId":"dest_v3.cboolean1"},{"id":3,"vertexType":"COLUMN","vertexId":"default.alltypesorc.ctinyint"},{"id":4,"vertexType":"COLUMN","vertexId":"default.alltypesorc.csmallint"},{"id":5,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cboolean1"},{"id":6,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cstring1"},{"id":7,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cint"},{"id":8,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cboolean2"},{"id":9,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cfloat"}]}
+{"version":"1.0","engine":"mr","database":"default","hash":"40bccc0722002f798d0548b59e369e83","queryText":"select * from dest_v3 limit 2","edges":[{"sources":[3,4,5,6,7],"targets":[0],"expression":"(tok_function sum (. (tok_table_or_col $hdt$_0) ctinyint) (tok_windowspec (tok_partitioningspec (tok_distributeby (. (tok_table_or_col $hdt$_0) csmallint)) (tok_orderby (tok_tabsortcolnameasc (tok_nulls_first (. (tok_table_or_col $hdt$_0) csmallint))))) (tok_windowvalues (preceding 2147483647) current)))","edgeType":"PROJECTION"},{"sources":[6],"targets":[1],"expression":"count(default.alltypesorc.cstring1)","edgeType":"PROJECTION"},{"sources":[5],"targets":[2],"edgeType":"PROJECTION"},{"sources":[8,7],"targets":[0,1,2],"expression":"((a.cboolean2 = true) and a.cint is not null)","edgeType":"PREDICATE"},{"sources":[7],"targets":[0,1,2],"expression":"(a.cint = a.cint)","edgeType":"PREDICATE"},{"sources":[9,7],"targets":[0,1,2],"expression":"((a.cfloat > 0) and a.cint is not null)","edgeType":"PREDICATE"},{"sources":[7],"targets":[0,1,2],"expression":"(count(default.alltypesorc.cint) > 10)","edgeType":"PREDICATE"}],"vertices":[{"id":0,"vertexType":"COLUMN","vertexId":"dest_v3.a"},{"id":1,"vertexType":"COLUMN","vertexId":"dest_v3.x"},{"id":2,"vertexType":"COLUMN","vertexId":"dest_v3.cboolean1"},{"id":3,"vertexType":"COLUMN","vertexId":"default.alltypesorc.ctinyint"},{"id":4,"vertexType":"COLUMN","vertexId":"default.alltypesorc.csmallint"},{"id":5,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cboolean1"},{"id":6,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cstring1"},{"id":7,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cint"},{"id":8,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cboolean2"},{"id":9,"vertexType":"COLUMN","vertexId":"default.alltypesorc.cfloat"}]}
 38     216     false
 38     229     true
 PREHOOK: query: drop table if exists src_dp
index 5d46d2d..c127d68 100644 (file)
@@ -14,12 +14,12 @@ STAGE PLANS:
           alias: src
           Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: COMPLETE
           Select Operator
-            expressions: 3.14 (type: double), -3.14 (type: double), 3.14E8 (type: double), 3.14E-8 (type: double), -3.14E8 (type: double), -3.14E-8 (type: double), 3.14E8 (type: double), 3.14E8 (type: double), 3.14E-8 (type: double)
+            expressions: 3.14 (type: decimal(3,2)), -3.14 (type: decimal(3,2)), 3.14E8 (type: double), 3.14E-8 (type: double), -3.14E8 (type: double), -3.14E-8 (type: double), 3.14E8 (type: double), 3.14E8 (type: double), 3.14E-8 (type: double)
             outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
-            Statistics: Num rows: 500 Data size: 36000 Basic stats: COMPLETE Column stats: COMPLETE
+            Statistics: Num rows: 500 Data size: 140000 Basic stats: COMPLETE Column stats: COMPLETE
             Limit
               Number of rows: 1
-              Statistics: Num rows: 1 Data size: 72 Basic stats: COMPLETE Column stats: COMPLETE
+              Statistics: Num rows: 1 Data size: 280 Basic stats: COMPLETE Column stats: COMPLETE
               ListSink
 
 PREHOOK: query: SELECT 3.14, -3.14, 3.14e8, 3.14e-8, -3.14e8, -3.14e-8, 3.14e+8, 3.14E8, 3.14E-8 FROM src LIMIT 1
index 39438e9..afa6f03 100644 (file)
@@ -142,9 +142,9 @@ POSTHOOK: Lineage: orc_ppd_staging.b SIMPLE []
 POSTHOOK: Lineage: orc_ppd_staging.bin EXPRESSION []
 POSTHOOK: Lineage: orc_ppd_staging.bo SIMPLE []
 POSTHOOK: Lineage: orc_ppd_staging.c EXPRESSION []
-POSTHOOK: Lineage: orc_ppd_staging.d SIMPLE []
+POSTHOOK: Lineage: orc_ppd_staging.d EXPRESSION []
 POSTHOOK: Lineage: orc_ppd_staging.da EXPRESSION []
-POSTHOOK: Lineage: orc_ppd_staging.dec EXPRESSION []
+POSTHOOK: Lineage: orc_ppd_staging.dec SIMPLE []
 POSTHOOK: Lineage: orc_ppd_staging.f EXPRESSION []
 POSTHOOK: Lineage: orc_ppd_staging.i SIMPLE []
 POSTHOOK: Lineage: orc_ppd_staging.s SIMPLE []
index 82f5b12..826be78 100644 (file)
@@ -1,4 +1,3 @@
-WARNING: Comparing a bigint and a double may result in a loss of precision.
 PREHOOK: query: -- SORT_QUERY_RESULTS
 
 -- If you look at ql/src/test/org/apache/hadoop/hive/ql/exec/vector/util/OrcFileGenerator.java
@@ -142,6 +141,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -152,7 +152,7 @@ STAGE PLANS:
                   alias: alltypesorc
                   Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
-                    predicate: ((762 = cbigint) or ((UDFToFloat(csmallint) < cfloat) and (UDFToDouble(ctimestamp2) > -5.0) and (cdouble <> UDFToDouble(cint))) or (cstring1 = 'a') or ((UDFToDouble(cbigint) <= -1.389) and (cstring2 <> 'a') and (79.553 <> UDFToDouble(cint)) and (cboolean2 <> cboolean1))) (type: boolean)
+                    predicate: ((762 = cbigint) or ((UDFToFloat(csmallint) < cfloat) and (UDFToDouble(ctimestamp2) > -5.0) and (cdouble <> UDFToDouble(cint))) or (cstring1 = 'a') or ((CAST( cbigint AS decimal(22,3)) <= -1.389) and (cstring2 <> 'a') and (79.553 <> CAST( cint AS decimal(13,3))) and (cboolean2 <> cboolean1))) (type: boolean)
                     Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
                       expressions: cint (type: int), cdouble (type: double), csmallint (type: smallint), cfloat (type: float), ctinyint (type: tinyint)
@@ -168,8 +168,9 @@ STAGE PLANS:
                           Statistics: Num rows: 1 Data size: 20 Basic stats: COMPLETE Column stats: NONE
                           value expressions: _col0 (type: struct<count:bigint,sum:double,input:int>), _col1 (type: double), _col2 (type: struct<count:bigint,sum:double,variance:double>), _col3 (type: struct<count:bigint,sum:double,variance:double>), _col4 (type: struct<count:bigint,sum:double,variance:double>), _col5 (type: struct<count:bigint,sum:double,input:float>), _col6 (type: struct<count:bigint,sum:double,variance:double>), _col7 (type: tinyint), _col8 (type: bigint)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: uber
+            Execution mode: llap
             Reduce Operator Tree:
               Group By Operator
                 aggregations: avg(VALUE._col0), sum(VALUE._col1), stddev_pop(VALUE._col2), stddev_samp(VALUE._col3), var_samp(VALUE._col4), avg(VALUE._col5), stddev_samp(VALUE._col6), min(VALUE._col7), count(VALUE._col8)
@@ -184,8 +185,8 @@ STAGE PLANS:
                     compressed: false
                     Statistics: Num rows: 1 Data size: 68 Basic stats: COMPLETE Column stats: NONE
                     table:
-                        input format: org.apache.hadoop.mapred.TextInputFormat
-                        output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                        input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                        output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                         serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -194,7 +195,6 @@ STAGE PLANS:
       Processor Tree:
         ListSink
 
-WARNING: Comparing a bigint and a double may result in a loss of precision.
 PREHOOK: query: SELECT AVG(cint),
        (AVG(cint) + -3728),
        (-((AVG(cint) + -3728))),
@@ -355,6 +355,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -381,8 +382,9 @@ STAGE PLANS:
                           Statistics: Num rows: 1 Data size: 24 Basic stats: COMPLETE Column stats: NONE
                           value expressions: _col0 (type: int), _col1 (type: struct<count:bigint,sum:double,variance:double>), _col2 (type: struct<count:bigint,sum:double,variance:double>), _col3 (type: double), _col4 (type: struct<count:bigint,sum:double,input:tinyint>), _col5 (type: int), _col6 (type: double), _col7 (type: struct<count:bigint,sum:double,variance:double>), _col8 (type: struct<count:bigint,sum:double,variance:double>)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: uber
+            Execution mode: llap
             Reduce Operator Tree:
               Group By Operator
                 aggregations: max(VALUE._col0), var_pop(VALUE._col1), stddev_pop(VALUE._col2), max(VALUE._col3), avg(VALUE._col4), min(VALUE._col5), min(VALUE._col6), stddev_samp(VALUE._col7), var_samp(VALUE._col8)
@@ -397,8 +399,8 @@ STAGE PLANS:
                     compressed: false
                     Statistics: Num rows: 1 Data size: 64 Basic stats: COMPLETE Column stats: NONE
                     table:
-                        input format: org.apache.hadoop.mapred.TextInputFormat
-                        output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                        input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                        output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                         serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -559,6 +561,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -569,7 +572,7 @@ STAGE PLANS:
                   alias: alltypesorc
                   Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
-                    predicate: ((ctimestamp1 = ctimestamp2) or (762.0 = cfloat) or (cstring1 = 'ss') or ((UDFToLong(csmallint) <= cbigint) and (1 = cboolean2)) or (cboolean1 is not null and ctimestamp2 is not null and (cstring2 > 'a'))) (type: boolean)
+                    predicate: ((ctimestamp1 = ctimestamp2) or (762 = cfloat) or (cstring1 = 'ss') or ((UDFToLong(csmallint) <= cbigint) and (1 = cboolean2)) or (cboolean1 is not null and ctimestamp2 is not null and (cstring2 > 'a'))) (type: boolean)
                     Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
                       expressions: cbigint (type: bigint), ctinyint (type: tinyint), csmallint (type: smallint), cint (type: int), cdouble (type: double)
@@ -585,8 +588,9 @@ STAGE PLANS:
                           Statistics: Num rows: 1 Data size: 24 Basic stats: COMPLETE Column stats: NONE
                           value expressions: _col0 (type: struct<count:bigint,sum:double,variance:double>), _col1 (type: bigint), _col2 (type: tinyint), _col3 (type: struct<count:bigint,sum:double,variance:double>), _col4 (type: int), _col5 (type: struct<count:bigint,sum:double,variance:double>), _col6 (type: bigint), _col7 (type: struct<count:bigint,sum:double,input:tinyint>)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: uber
+            Execution mode: llap
             Reduce Operator Tree:
               Group By Operator
                 aggregations: var_pop(VALUE._col0), count(VALUE._col1), max(VALUE._col2), stddev_pop(VALUE._col3), max(VALUE._col4), stddev_samp(VALUE._col5), count(VALUE._col6), avg(VALUE._col7)
@@ -594,15 +598,15 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
                 Statistics: Num rows: 1 Data size: 56 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: double), (- _col0) (type: double), (_col0 - (- _col0)) (type: double), _col1 (type: bigint), (UDFToDouble(_col1) % 79.553) (type: double), _col2 (type: tinyint), (UDFToDouble(_col1) - (- _col0)) (type: double), (- (- _col0)) (type: double), (-1.0 % (- _col0)) (type: double), _col1 (type: bigint), (- _col1) (type: bigint), _col3 (type: double), (- (- (- _col0))) (type: double), (762 * (- _col1)) (type: bigint), _col4 (type: int), (UDFToLong(_col2) + (762 * (- _col1))) (type: bigint), ((- _col0) + UDFToDouble(_col4)) (type: double), _col5 (type: double), ((- _col1) % _col1) (type: bigint), _col6 (type: bigint), _col7 (type: double), (-3728 % (UDFToLong(_col2) + (762 * (- _col1)))) (type: bigint)
+                  expressions: _col0 (type: double), (- _col0) (type: double), (_col0 - (- _col0)) (type: double), _col1 (type: bigint), (CAST( _col1 AS decimal(19,0)) % 79.553) (type: decimal(5,3)), _col2 (type: tinyint), (UDFToDouble(_col1) - (- _col0)) (type: double), (- (- _col0)) (type: double), (-1.0 % (- _col0)) (type: double), _col1 (type: bigint), (- _col1) (type: bigint), _col3 (type: double), (- (- (- _col0))) (type: double), (762 * (- _col1)) (type: bigint), _col4 (type: int), (UDFToLong(_col2) + (762 * (- _col1))) (type: bigint), ((- _col0) + UDFToDouble(_col4)) (type: double), _col5 (type: double), ((- _col1) % _col1) (type: bigint), _col6 (type: bigint), _col7 (type: double), (-3728 % (UDFToLong(_col2) + (762 * (- _col1)))) (type: bigint)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21
                   Statistics: Num rows: 1 Data size: 56 Basic stats: COMPLETE Column stats: NONE
                   File Output Operator
                     compressed: false
                     Statistics: Num rows: 1 Data size: 56 Basic stats: COMPLETE Column stats: NONE
                     table:
-                        input format: org.apache.hadoop.mapred.TextInputFormat
-                        output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                        input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                        output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                         serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -679,7 +683,7 @@ WHERE  ((ctimestamp1 = ctimestamp2)
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
-2.5109214708345636E18  -2.5109214708345636E18  5.0218429416691272E18   2780    75.19800000000009       62      2.5109214708345661E18   2.5109214708345636E18   -1.0    2780    -2780   9460.675803068349       -2.5109214708345636E18  -2118360        1072872630      -2118298        -2.5109214697616911E18  185935.34910862707      0       758     -1.733509234828496      -3728
+2.5109214708345636E18  -2.5109214708345636E18  5.0218429416691272E18   2780    75.198  62      2.5109214708345661E18   2.5109214708345636E18   -1.0    2780    -2780   9460.675803068349       -2.5109214708345636E18  -2118360        1072872630      -2118298        -2.5109214697616911E18  185935.34910862707      0       758     -1.733509234828496      -3728
 WARNING: Comparing a bigint and a double may result in a loss of precision.
 PREHOOK: query: -- TargetTypeClasses: String, Bool, Timestamp, Long, Double
 -- Functions: Avg, Max, StDev, VarP
@@ -742,6 +746,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -752,7 +757,7 @@ STAGE PLANS:
                   alias: alltypesorc
                   Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
-                    predicate: (((ctimestamp2 <= ctimestamp1) and (UDFToDouble(cbigint) <> cdouble) and ('ss' <= cstring1)) or ((csmallint < UDFToShort(ctinyint)) and (UDFToDouble(ctimestamp1) >= 0.0)) or (cfloat = 17.0)) (type: boolean)
+                    predicate: (((ctimestamp2 <= ctimestamp1) and (UDFToDouble(cbigint) <> cdouble) and ('ss' <= cstring1)) or ((csmallint < UDFToShort(ctinyint)) and (UDFToDouble(ctimestamp1) >= 0.0)) or (cfloat = 17)) (type: boolean)
                     Statistics: Num rows: 8874 Data size: 1907941 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
                       expressions: ctinyint (type: tinyint), cbigint (type: bigint), cint (type: int), cfloat (type: float)
@@ -768,8 +773,9 @@ STAGE PLANS:
                           Statistics: Num rows: 1 Data size: 12 Basic stats: COMPLETE Column stats: NONE
                           value expressions: _col0 (type: struct<count:bigint,sum:double,input:tinyint>), _col1 (type: bigint), _col2 (type: struct<count:bigint,sum:double,variance:double>), _col3 (type: struct<count:bigint,sum:double,variance:double>), _col4 (type: struct<count:bigint,sum:double,variance:double>), _col5 (type: float)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: uber
+            Execution mode: llap
             Reduce Operator Tree:
               Group By Operator
                 aggregations: avg(VALUE._col0), max(VALUE._col1), stddev_samp(VALUE._col2), var_pop(VALUE._col3), var_pop(VALUE._col4), max(VALUE._col5)
@@ -784,8 +790,8 @@ STAGE PLANS:
                     compressed: false
                     Statistics: Num rows: 1 Data size: 44 Basic stats: COMPLETE Column stats: NONE
                     table:
-                        input format: org.apache.hadoop.mapred.TextInputFormat
-                        output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                        input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                        output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                         serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -933,6 +939,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -943,22 +950,24 @@ STAGE PLANS:
                   alias: alltypesorc
                   Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
-                    predicate: ((cstring1 regexp 'a.*' and (cstring2 like '%ss%')) or ((1 <> cboolean2) and (UDFToDouble(csmallint) < 79.553) and (-257 <> UDFToInteger(ctinyint))) or ((cdouble > UDFToDouble(ctinyint)) and (cfloat >= UDFToFloat(cint))) or ((UDFToLong(cint) < cbigint) and (UDFToLong(ctinyint) > cbigint))) (type: boolean)
+                    predicate: ((cstring1 regexp 'a.*' and (cstring2 like '%ss%')) or ((1 <> cboolean2) and (CAST( csmallint AS decimal(8,3)) < 79.553) and (-257 <> UDFToInteger(ctinyint))) or ((cdouble > UDFToDouble(ctinyint)) and (cfloat >= UDFToFloat(cint))) or ((UDFToLong(cint) < cbigint) and (UDFToLong(ctinyint) > cbigint))) (type: boolean)
                     Statistics: Num rows: 9898 Data size: 2128105 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
-                      expressions: cint (type: int), cdouble (type: double), ctimestamp2 (type: timestamp), cstring1 (type: string), cboolean2 (type: boolean), ctinyint (type: tinyint), cfloat (type: float), ctimestamp1 (type: timestamp), csmallint (type: smallint), cbigint (type: bigint), (-3728 * cbigint) (type: bigint), (- cint) (type: int), (-863.257 - UDFToDouble(cint)) (type: double), (- csmallint) (type: smallint), (csmallint - (- csmallint)) (type: smallint), ((csmallint - (- csmallint)) + (- csmallint)) (type: smallint), (UDFToDouble(cint) / UDFToDouble(cint)) (type: double), ((-863.257 - UDFToDouble(cint)) - -26.28) (type: double), (- cfloat) (type: float), (cdouble * -89010.0) (type: double), (UDFToDouble(ctinyint) / 988888.0) (type: double), (- ctinyint) (type: tinyint), (79.553 / UDFToDouble(ctinyint)) (type: double)
+                      expressions: cint (type: int), cdouble (type: double), ctimestamp2 (type: timestamp), cstring1 (type: string), cboolean2 (type: boolean), ctinyint (type: tinyint), cfloat (type: float), ctimestamp1 (type: timestamp), csmallint (type: smallint), cbigint (type: bigint), (-3728 * cbigint) (type: bigint), (- cint) (type: int), (-863.257 - CAST( cint AS decimal(10,0))) (type: decimal(14,3)), (- csmallint) (type: smallint), (csmallint - (- csmallint)) (type: smallint), ((csmallint - (- csmallint)) + (- csmallint)) (type: smallint), (UDFToDouble(cint) / UDFToDouble(cint)) (type: double), ((-863.257 - CAST( cint AS decimal(10,0))) - -26.28) (type: decimal(15,3)), (- cfloat) (type: float), (cdouble * -89010.0) (type: double), (UDFToDouble(ctinyint) / 988888.0) (type: double), (- ctinyint) (type: tinyint), (79.553 / CAST( ctinyint AS decimal(3,0))) (type: decimal(20,18))
                       outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22
                       Statistics: Num rows: 9898 Data size: 2128105 Basic stats: COMPLETE Column stats: NONE
                       Reduce Output Operator
-                        key expressions: _col0 (type: int), _col1 (type: double), _col2 (type: timestamp), _col3 (type: string), _col4 (type: boolean), _col5 (type: tinyint), _col6 (type: float), _col7 (type: timestamp), _col8 (type: smallint), _col9 (type: bigint), _col10 (type: bigint), _col11 (type: int), _col12 (type: double), _col13 (type: smallint), _col14 (type: smallint), _col15 (type: smallint), _col16 (type: double), _col17 (type: double), _col18 (type: float), _col19 (type: double), _col20 (type: double), _col21 (type: tinyint), _col22 (type: double)
+                        key expressions: _col0 (type: int), _col1 (type: double), _col2 (type: timestamp), _col3 (type: string), _col4 (type: boolean), _col5 (type: tinyint), _col6 (type: float), _col7 (type: timestamp), _col8 (type: smallint), _col9 (type: bigint), _col10 (type: bigint), _col11 (type: int), _col12 (type: decimal(14,3)), _col13 (type: smallint), _col14 (type: smallint), _col15 (type: smallint), _col16 (type: double), _col17 (type: decimal(15,3)), _col18 (type: float), _col19 (type: double), _col20 (type: double), _col21 (type: tinyint), _col22 (type: decimal(20,18))
                         sort order: +++++++++++++++++++++++
                         Statistics: Num rows: 9898 Data size: 2128105 Basic stats: COMPLETE Column stats: NONE
+                        TopN Hash Memory Usage: 0.1
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Select Operator
-                expressions: KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: double), KEY.reducesinkkey2 (type: timestamp), KEY.reducesinkkey3 (type: string), KEY.reducesinkkey4 (type: boolean), KEY.reducesinkkey5 (type: tinyint), KEY.reducesinkkey6 (type: float), KEY.reducesinkkey7 (type: timestamp), KEY.reducesinkkey8 (type: smallint), KEY.reducesinkkey9 (type: bigint), KEY.reducesinkkey10 (type: bigint), KEY.reducesinkkey11 (type: int), KEY.reducesinkkey12 (type: double), KEY.reducesinkkey13 (type: smallint), KEY.reducesinkkey14 (type: smallint), KEY.reducesinkkey15 (type: smallint), KEY.reducesinkkey16 (type: double), KEY.reducesinkkey17 (type: double), KEY.reducesinkkey18 (type: float), KEY.reducesinkkey19 (type: double), KEY.reducesinkkey20 (type: double), KEY.reducesinkkey21 (type: tinyint), KEY.reducesinkkey22 (type: double)
+                expressions: KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: double), KEY.reducesinkkey2 (type: timestamp), KEY.reducesinkkey3 (type: string), KEY.reducesinkkey4 (type: boolean), KEY.reducesinkkey5 (type: tinyint), KEY.reducesinkkey6 (type: float), KEY.reducesinkkey7 (type: timestamp), KEY.reducesinkkey8 (type: smallint), KEY.reducesinkkey9 (type: bigint), KEY.reducesinkkey10 (type: bigint), KEY.reducesinkkey11 (type: int), KEY.reducesinkkey12 (type: decimal(14,3)), KEY.reducesinkkey13 (type: smallint), KEY.reducesinkkey14 (type: smallint), KEY.reducesinkkey15 (type: smallint), KEY.reducesinkkey16 (type: double), KEY.reducesinkkey17 (type: decimal(15,3)), KEY.reducesinkkey18 (type: float), KEY.reducesinkkey19 (type: double), KEY.reducesinkkey20 (type: double), KEY.reducesinkkey21 (type: tinyint), KEY.reducesinkkey22 (type: decimal(20,18))
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22
                 Statistics: Num rows: 9898 Data size: 2128105 Basic stats: COMPLETE Column stats: NONE
                 Limit
@@ -968,8 +977,8 @@ STAGE PLANS:
                     compressed: false
                     Statistics: Num rows: 50 Data size: 10750 Basic stats: COMPLETE Column stats: NONE
                     table:
-                        input format: org.apache.hadoop.mapred.TextInputFormat
-                        output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                        input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                        output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                         serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -1054,56 +1063,56 @@ LIMIT 50
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -51     -51.0   1969-12-31 15:59:43.64  -7196   -1339164819     4992406445232   NULL    NULL    7196    -14392  -7196   NULL    NULL    51.0    6.4051596E8     -5.157308006568995E-5   51      -1.5598627450980391
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -52     -52.0   1969-12-31 15:59:45.978 -7196   -2128720310     7935869315680   NULL    NULL    7196    -14392  -7196   NULL    NULL    52.0    6.4051596E8     -5.258431692972308E-5   52      -1.5298653846153845
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -52     -52.0   1969-12-31 15:59:47.15  -7196   628698169       -2343786774032  NULL    NULL    7196    -14392  -7196   NULL    NULL    52.0    6.4051596E8     -5.258431692972308E-5   52      -1.5298653846153845
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -52     -52.0   1969-12-31 15:59:57.86  -7196   -26309289       98081029392     NULL    NULL    7196    -14392  -7196   NULL    NULL    52.0    6.4051596E8     -5.258431692972308E-5   52      -1.5298653846153845
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -52     -52.0   1969-12-31 15:59:58.479 -7196   -1379694191     5143499944048   NULL    NULL    7196    -14392  -7196   NULL    NULL    52.0    6.4051596E8     -5.258431692972308E-5   52      -1.5298653846153845
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -52     -52.0   1969-12-31 16:00:03.963 -7196   95444104        -355815619712   NULL    NULL    7196    -14392  -7196   NULL    NULL    52.0    6.4051596E8     -5.258431692972308E-5   52      -1.5298653846153845
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -52     -52.0   1969-12-31 16:00:04.518 -7196   -1658319459     6182214943152   NULL    NULL    7196    -14392  -7196   NULL    NULL    52.0    6.4051596E8     -5.258431692972308E-5   52      -1.5298653846153845
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -53     -53.0   1969-12-31 15:59:48.882 -7196   -1560660031     5818140595568   NULL    NULL    7196    -14392  -7196   NULL    NULL    53.0    6.4051596E8     -5.359555379375622E-5   53      -1.501
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -53     -53.0   1969-12-31 15:59:57.663 -7196   898472381       -3349505036368  NULL    NULL    7196    -14392  -7196   NULL    NULL    53.0    6.4051596E8     -5.359555379375622E-5   53      -1.501
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -53     -53.0   1969-12-31 16:00:11.36  -7196   -1357789899     5061840743472   NULL    NULL    7196    -14392  -7196   NULL    NULL    53.0    6.4051596E8     -5.359555379375622E-5   53      -1.501
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -54     -54.0   1969-12-31 15:59:53.657 -7196   1476582815      -5504700734320  NULL    NULL    7196    -14392  -7196   NULL    NULL    54.0    6.4051596E8     -5.4606790657789354E-5  54      -1.4732037037037036
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -54     -54.0   1969-12-31 16:00:05.688 -7196   1614836149      -6020109163472  NULL    NULL    7196    -14392  -7196   NULL    NULL    54.0    6.4051596E8     -5.4606790657789354E-5  54      -1.4732037037037036
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -54     -54.0   1969-12-31 16:00:06.484 -7196   1605976008      -5987078557824  NULL    NULL    7196    -14392  -7196   NULL    NULL    54.0    6.4051596E8     -5.4606790657789354E-5  54      -1.4732037037037036
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -54     -54.0   1969-12-31 16:00:11.198 -7196   1650677402      -6153725354656  NULL    NULL    7196    -14392  -7196   NULL    NULL    54.0    6.4051596E8     -5.4606790657789354E-5  54      -1.4732037037037036
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -55     -55.0   1969-12-31 15:59:43.932 -7196   1982381637      -7390318742736  NULL    NULL    7196    -14392  -7196   NULL    NULL    55.0    6.4051596E8     -5.561802752182249E-5   55      -1.4464181818181818
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -55     -55.0   1969-12-31 16:00:01.138 -7196   888532643       -3312449693104  NULL    NULL    7196    -14392  -7196   NULL    NULL    55.0    6.4051596E8     -5.561802752182249E-5   55      -1.4464181818181818
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -55     -55.0   1969-12-31 16:00:13.249 -7196   -685064281      2553919639568   NULL    NULL    7196    -14392  -7196   NULL    NULL    55.0    6.4051596E8     -5.561802752182249E-5   55      -1.4464181818181818
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -56     -56.0   1969-12-31 16:00:02.298 -7196   -1509994296     5629258735488   NULL    NULL    7196    -14392  -7196   NULL    NULL    56.0    6.4051596E8     -5.6629264385855625E-5  56      -1.4205892857142857
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -57     -57.0   1969-12-31 15:59:44.539 -7196   1839592407      -6858000493296  NULL    NULL    7196    -14392  -7196   NULL    NULL    57.0    6.4051596E8     -5.764050124988876E-5   57      -1.3956666666666666
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -57     -57.0   1969-12-31 16:00:04.659 -7196   -1579093262     5886859680736   NULL    NULL    7196    -14392  -7196   NULL    NULL    57.0    6.4051596E8     -5.764050124988876E-5   57      -1.3956666666666666
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -57     -57.0   1969-12-31 16:00:05.5   -7196   2042351711      -7613887178608  NULL    NULL    7196    -14392  -7196   NULL    NULL    57.0    6.4051596E8     -5.764050124988876E-5   57      -1.3956666666666666
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -57     -57.0   1969-12-31 16:00:12.626 -7196   248308622       -925694542816   NULL    NULL    7196    -14392  -7196   NULL    NULL    57.0    6.4051596E8     -5.764050124988876E-5   57      -1.3956666666666666
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -58     -58.0   1969-12-31 15:59:47.859 -7196   -1770443874     6600214762272   NULL    NULL    7196    -14392  -7196   NULL    NULL    58.0    6.4051596E8     -5.86517381139219E-5    58      -1.3716034482758621
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -58     -58.0   1969-12-31 15:59:55.857 -7196   -825174557      3076250748496   NULL    NULL    7196    -14392  -7196   NULL    NULL    58.0    6.4051596E8     -5.86517381139219E-5    58      -1.3716034482758621
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -58     -58.0   1969-12-31 16:00:12.065 -7196   1257970504      -4689714038912  NULL    NULL    7196    -14392  -7196   NULL    NULL    58.0    6.4051596E8     -5.86517381139219E-5    58      -1.3716034482758621
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -59     -59.0   1969-12-31 16:00:13.15  -7196   -1604890000     5983029920000   NULL    NULL    7196    -14392  -7196   NULL    NULL    59.0    6.4051596E8     -5.966297497795504E-5   59      -1.3483559322033898
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -60     -60.0   1969-12-31 15:59:45.385 -7196   1775867066      -6620432422048  NULL    NULL    7196    -14392  -7196   NULL    NULL    60.0    6.4051596E8     -6.0674211841988174E-5  60      -1.3258833333333333
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -60     -60.0   1969-12-31 15:59:52.408 -7196   1516314750      -5652821388000  NULL    NULL    7196    -14392  -7196   NULL    NULL    60.0    6.4051596E8     -6.0674211841988174E-5  60      -1.3258833333333333
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -60     -60.0   1969-12-31 15:59:55.806 -7196   -1802243330     6718763134240   NULL    NULL    7196    -14392  -7196   NULL    NULL    60.0    6.4051596E8     -6.0674211841988174E-5  60      -1.3258833333333333
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -60     -60.0   1969-12-31 16:00:10.618 -7196   -68838726       256630770528    NULL    NULL    7196    -14392  -7196   NULL    NULL    60.0    6.4051596E8     -6.0674211841988174E-5  60      -1.3258833333333333
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -61     -61.0   1969-12-31 15:59:44.823 -7196   NULL    NULL    NULL    NULL    7196    -14392  -7196   NULL    NULL    61.0    6.4051596E8     -6.16854487060213E-5    61      -1.3041475409836065
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -61     -61.0   1969-12-31 15:59:48.035 -7196   1237548317      -4613580125776  NULL    NULL    7196    -14392  -7196   NULL    NULL    61.0    6.4051596E8     -6.16854487060213E-5    61      -1.3041475409836065
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -61     -61.0   1969-12-31 16:00:03.049 -7196   -1513172815     5641108254320   NULL    NULL    7196    -14392  -7196   NULL    NULL    61.0    6.4051596E8     -6.16854487060213E-5    61      -1.3041475409836065
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -61     -61.0   1969-12-31 16:00:06.848 -7196   1415466231      -5276858109168  NULL    NULL    7196    -14392  -7196   NULL    NULL    61.0    6.4051596E8     -6.16854487060213E-5    61      -1.3041475409836065
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -61     -61.0   1969-12-31 16:00:11.842 -7196   NULL    NULL    NULL    NULL    7196    -14392  -7196   NULL    NULL    61.0    6.4051596E8     -6.16854487060213E-5    61      -1.3041475409836065
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -61     -61.0   1969-12-31 16:00:12.454 -7196   -2175533        8110387024      NULL    NULL    7196    -14392  -7196   NULL    NULL    61.0    6.4051596E8     -6.16854487060213E-5    61      -1.3041475409836065
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -61     -61.0   1969-12-31 16:00:14.192 -7196   -2114172148     7881633767744   NULL    NULL    7196    -14392  -7196   NULL    NULL    61.0    6.4051596E8     -6.16854487060213E-5    61      -1.3041475409836065
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -62     -62.0   1969-12-31 15:59:58.395 -7196   -1367753794     5098986144032   NULL    NULL    7196    -14392  -7196   NULL    NULL    62.0    6.4051596E8     -6.269668557005445E-5   62      -1.2831129032258064
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -62     -62.0   1969-12-31 16:00:01.22  -7196   1670449519      -6227435806832  NULL    NULL    7196    -14392  -7196   NULL    NULL    62.0    6.4051596E8     -6.269668557005445E-5   62      -1.2831129032258064
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -62     -62.0   1969-12-31 16:00:02.373 -7196   NULL    NULL    NULL    NULL    7196    -14392  -7196   NULL    NULL    62.0    6.4051596E8     -6.269668557005445E-5   62      -1.2831129032258064
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -62     -62.0   1969-12-31 16:00:03.85  -7196   -642836823      2396495676144   NULL    NULL    7196    -14392  -7196   NULL    NULL    62.0    6.4051596E8     -6.269668557005445E-5   62      -1.2831129032258064
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -62     -62.0   1969-12-31 16:00:09.025 -7196   -840223244      3132352253632   NULL    NULL    7196    -14392  -7196   NULL    NULL    62.0    6.4051596E8     -6.269668557005445E-5   62      -1.2831129032258064
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -62     -62.0   1969-12-31 16:00:12.388 -7196   NULL    NULL    NULL    NULL    7196    -14392  -7196   NULL    NULL    62.0    6.4051596E8     -6.269668557005445E-5   62      -1.2831129032258064
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -63     -63.0   1969-12-31 16:00:03.552 -7196   -1224023895     4563161080560   NULL    NULL    7196    -14392  -7196   NULL    NULL    63.0    6.4051596E8     -6.370792243408759E-5   63      -1.2627460317460317
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -63     -63.0   1969-12-31 16:00:07.375 -7196   -1711796768     6381578351104   NULL    NULL    7196    -14392  -7196   NULL    NULL    63.0    6.4051596E8     -6.370792243408759E-5   63      -1.2627460317460317
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -63     -63.0   1969-12-31 16:00:11.946 -7196   -994504916      3707514326848   NULL    NULL    7196    -14392  -7196   NULL    NULL    63.0    6.4051596E8     -6.370792243408759E-5   63      -1.2627460317460317
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -64     -64.0   1969-12-31 15:59:56.048 -7196   406535485       -1515564288080  NULL    NULL    7196    -14392  -7196   NULL    NULL    64.0    6.4051596E8     -6.471915929812072E-5   64      -1.243015625
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -64     -64.0   1969-12-31 16:00:01.785 -7196   -1639157869     6110780535632   NULL    NULL    7196    -14392  -7196   NULL    NULL    64.0    6.4051596E8     -6.471915929812072E-5   64      -1.243015625
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -64     -64.0   1969-12-31 16:00:11.912 -7196   -1615920595     6024151978160   NULL    NULL    7196    -14392  -7196   NULL    NULL    64.0    6.4051596E8     -6.471915929812072E-5   64      -1.243015625
-NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -64     -64.0   1969-12-31 16:00:12.339 -7196   1805860756      -6732248898368  NULL    NULL    7196    -14392  -7196   NULL    NULL    64.0    6.4051596E8     -6.471915929812072E-5   64      -1.243015625
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -51     -51.0   1969-12-31 15:59:43.64  -7196   -1339164819     4992406445232   NULL    NULL    7196    -14392  -7196   NULL    NULL    51.0    6.4051596E8     -5.157308006568995E-5   51      -1.559862745098039216
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -52     -52.0   1969-12-31 15:59:45.978 -7196   -2128720310     7935869315680   NULL    NULL    7196    -14392  -7196   NULL    NULL    52.0    6.4051596E8     -5.258431692972308E-5   52      -1.529865384615384615
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -52     -52.0   1969-12-31 15:59:47.15  -7196   628698169       -2343786774032  NULL    NULL    7196    -14392  -7196   NULL    NULL    52.0    6.4051596E8     -5.258431692972308E-5   52      -1.529865384615384615
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -52     -52.0   1969-12-31 15:59:57.86  -7196   -26309289       98081029392     NULL    NULL    7196    -14392  -7196   NULL    NULL    52.0    6.4051596E8     -5.258431692972308E-5   52      -1.529865384615384615
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -52     -52.0   1969-12-31 15:59:58.479 -7196   -1379694191     5143499944048   NULL    NULL    7196    -14392  -7196   NULL    NULL    52.0    6.4051596E8     -5.258431692972308E-5   52      -1.529865384615384615
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -52     -52.0   1969-12-31 16:00:03.963 -7196   95444104        -355815619712   NULL    NULL    7196    -14392  -7196   NULL    NULL    52.0    6.4051596E8     -5.258431692972308E-5   52      -1.529865384615384615
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -52     -52.0   1969-12-31 16:00:04.518 -7196   -1658319459     6182214943152   NULL    NULL    7196    -14392  -7196   NULL    NULL    52.0    6.4051596E8     -5.258431692972308E-5   52      -1.529865384615384615
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -53     -53.0   1969-12-31 15:59:48.882 -7196   -1560660031     5818140595568   NULL    NULL    7196    -14392  -7196   NULL    NULL    53.0    6.4051596E8     -5.359555379375622E-5   53      -1.501000000000000000
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -53     -53.0   1969-12-31 15:59:57.663 -7196   898472381       -3349505036368  NULL    NULL    7196    -14392  -7196   NULL    NULL    53.0    6.4051596E8     -5.359555379375622E-5   53      -1.501000000000000000
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -53     -53.0   1969-12-31 16:00:11.36  -7196   -1357789899     5061840743472   NULL    NULL    7196    -14392  -7196   NULL    NULL    53.0    6.4051596E8     -5.359555379375622E-5   53      -1.501000000000000000
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -54     -54.0   1969-12-31 15:59:53.657 -7196   1476582815      -5504700734320  NULL    NULL    7196    -14392  -7196   NULL    NULL    54.0    6.4051596E8     -5.4606790657789354E-5  54      -1.473203703703703704
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -54     -54.0   1969-12-31 16:00:05.688 -7196   1614836149      -6020109163472  NULL    NULL    7196    -14392  -7196   NULL    NULL    54.0    6.4051596E8     -5.4606790657789354E-5  54      -1.473203703703703704
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -54     -54.0   1969-12-31 16:00:06.484 -7196   1605976008      -5987078557824  NULL    NULL    7196    -14392  -7196   NULL    NULL    54.0    6.4051596E8     -5.4606790657789354E-5  54      -1.473203703703703704
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -54     -54.0   1969-12-31 16:00:11.198 -7196   1650677402      -6153725354656  NULL    NULL    7196    -14392  -7196   NULL    NULL    54.0    6.4051596E8     -5.4606790657789354E-5  54      -1.473203703703703704
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -55     -55.0   1969-12-31 15:59:43.932 -7196   1982381637      -7390318742736  NULL    NULL    7196    -14392  -7196   NULL    NULL    55.0    6.4051596E8     -5.561802752182249E-5   55      -1.446418181818181818
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -55     -55.0   1969-12-31 16:00:01.138 -7196   888532643       -3312449693104  NULL    NULL    7196    -14392  -7196   NULL    NULL    55.0    6.4051596E8     -5.561802752182249E-5   55      -1.446418181818181818
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -55     -55.0   1969-12-31 16:00:13.249 -7196   -685064281      2553919639568   NULL    NULL    7196    -14392  -7196   NULL    NULL    55.0    6.4051596E8     -5.561802752182249E-5   55      -1.446418181818181818
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -56     -56.0   1969-12-31 16:00:02.298 -7196   -1509994296     5629258735488   NULL    NULL    7196    -14392  -7196   NULL    NULL    56.0    6.4051596E8     -5.6629264385855625E-5  56      -1.420589285714285714
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -57     -57.0   1969-12-31 15:59:44.539 -7196   1839592407      -6858000493296  NULL    NULL    7196    -14392  -7196   NULL    NULL    57.0    6.4051596E8     -5.764050124988876E-5   57      -1.395666666666666667
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -57     -57.0   1969-12-31 16:00:04.659 -7196   -1579093262     5886859680736   NULL    NULL    7196    -14392  -7196   NULL    NULL    57.0    6.4051596E8     -5.764050124988876E-5   57      -1.395666666666666667
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -57     -57.0   1969-12-31 16:00:05.5   -7196   2042351711      -7613887178608  NULL    NULL    7196    -14392  -7196   NULL    NULL    57.0    6.4051596E8     -5.764050124988876E-5   57      -1.395666666666666667
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -57     -57.0   1969-12-31 16:00:12.626 -7196   248308622       -925694542816   NULL    NULL    7196    -14392  -7196   NULL    NULL    57.0    6.4051596E8     -5.764050124988876E-5   57      -1.395666666666666667
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -58     -58.0   1969-12-31 15:59:47.859 -7196   -1770443874     6600214762272   NULL    NULL    7196    -14392  -7196   NULL    NULL    58.0    6.4051596E8     -5.86517381139219E-5    58      -1.371603448275862069
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -58     -58.0   1969-12-31 15:59:55.857 -7196   -825174557      3076250748496   NULL    NULL    7196    -14392  -7196   NULL    NULL    58.0    6.4051596E8     -5.86517381139219E-5    58      -1.371603448275862069
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -58     -58.0   1969-12-31 16:00:12.065 -7196   1257970504      -4689714038912  NULL    NULL    7196    -14392  -7196   NULL    NULL    58.0    6.4051596E8     -5.86517381139219E-5    58      -1.371603448275862069
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -59     -59.0   1969-12-31 16:00:13.15  -7196   -1604890000     5983029920000   NULL    NULL    7196    -14392  -7196   NULL    NULL    59.0    6.4051596E8     -5.966297497795504E-5   59      -1.348355932203389831
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -60     -60.0   1969-12-31 15:59:45.385 -7196   1775867066      -6620432422048  NULL    NULL    7196    -14392  -7196   NULL    NULL    60.0    6.4051596E8     -6.0674211841988174E-5  60      -1.325883333333333333
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -60     -60.0   1969-12-31 15:59:52.408 -7196   1516314750      -5652821388000  NULL    NULL    7196    -14392  -7196   NULL    NULL    60.0    6.4051596E8     -6.0674211841988174E-5  60      -1.325883333333333333
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -60     -60.0   1969-12-31 15:59:55.806 -7196   -1802243330     6718763134240   NULL    NULL    7196    -14392  -7196   NULL    NULL    60.0    6.4051596E8     -6.0674211841988174E-5  60      -1.325883333333333333
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -60     -60.0   1969-12-31 16:00:10.618 -7196   -68838726       256630770528    NULL    NULL    7196    -14392  -7196   NULL    NULL    60.0    6.4051596E8     -6.0674211841988174E-5  60      -1.325883333333333333
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -61     -61.0   1969-12-31 15:59:44.823 -7196   NULL    NULL    NULL    NULL    7196    -14392  -7196   NULL    NULL    61.0    6.4051596E8     -6.16854487060213E-5    61      -1.304147540983606557
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -61     -61.0   1969-12-31 15:59:48.035 -7196   1237548317      -4613580125776  NULL    NULL    7196    -14392  -7196   NULL    NULL    61.0    6.4051596E8     -6.16854487060213E-5    61      -1.304147540983606557
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -61     -61.0   1969-12-31 16:00:03.049 -7196   -1513172815     5641108254320   NULL    NULL    7196    -14392  -7196   NULL    NULL    61.0    6.4051596E8     -6.16854487060213E-5    61      -1.304147540983606557
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -61     -61.0   1969-12-31 16:00:06.848 -7196   1415466231      -5276858109168  NULL    NULL    7196    -14392  -7196   NULL    NULL    61.0    6.4051596E8     -6.16854487060213E-5    61      -1.304147540983606557
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -61     -61.0   1969-12-31 16:00:11.842 -7196   NULL    NULL    NULL    NULL    7196    -14392  -7196   NULL    NULL    61.0    6.4051596E8     -6.16854487060213E-5    61      -1.304147540983606557
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -61     -61.0   1969-12-31 16:00:12.454 -7196   -2175533        8110387024      NULL    NULL    7196    -14392  -7196   NULL    NULL    61.0    6.4051596E8     -6.16854487060213E-5    61      -1.304147540983606557
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -61     -61.0   1969-12-31 16:00:14.192 -7196   -2114172148     7881633767744   NULL    NULL    7196    -14392  -7196   NULL    NULL    61.0    6.4051596E8     -6.16854487060213E-5    61      -1.304147540983606557
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -62     -62.0   1969-12-31 15:59:58.395 -7196   -1367753794     5098986144032   NULL    NULL    7196    -14392  -7196   NULL    NULL    62.0    6.4051596E8     -6.269668557005445E-5   62      -1.283112903225806452
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -62     -62.0   1969-12-31 16:00:01.22  -7196   1670449519      -6227435806832  NULL    NULL    7196    -14392  -7196   NULL    NULL    62.0    6.4051596E8     -6.269668557005445E-5   62      -1.283112903225806452
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -62     -62.0   1969-12-31 16:00:02.373 -7196   NULL    NULL    NULL    NULL    7196    -14392  -7196   NULL    NULL    62.0    6.4051596E8     -6.269668557005445E-5   62      -1.283112903225806452
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -62     -62.0   1969-12-31 16:00:03.85  -7196   -642836823      2396495676144   NULL    NULL    7196    -14392  -7196   NULL    NULL    62.0    6.4051596E8     -6.269668557005445E-5   62      -1.283112903225806452
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -62     -62.0   1969-12-31 16:00:09.025 -7196   -840223244      3132352253632   NULL    NULL    7196    -14392  -7196   NULL    NULL    62.0    6.4051596E8     -6.269668557005445E-5   62      -1.283112903225806452
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -62     -62.0   1969-12-31 16:00:12.388 -7196   NULL    NULL    NULL    NULL    7196    -14392  -7196   NULL    NULL    62.0    6.4051596E8     -6.269668557005445E-5   62      -1.283112903225806452
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -63     -63.0   1969-12-31 16:00:03.552 -7196   -1224023895     4563161080560   NULL    NULL    7196    -14392  -7196   NULL    NULL    63.0    6.4051596E8     -6.370792243408759E-5   63      -1.262746031746031746
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -63     -63.0   1969-12-31 16:00:07.375 -7196   -1711796768     6381578351104   NULL    NULL    7196    -14392  -7196   NULL    NULL    63.0    6.4051596E8     -6.370792243408759E-5   63      -1.262746031746031746
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -63     -63.0   1969-12-31 16:00:11.946 -7196   -994504916      3707514326848   NULL    NULL    7196    -14392  -7196   NULL    NULL    63.0    6.4051596E8     -6.370792243408759E-5   63      -1.262746031746031746
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -64     -64.0   1969-12-31 15:59:56.048 -7196   406535485       -1515564288080  NULL    NULL    7196    -14392  -7196   NULL    NULL    64.0    6.4051596E8     -6.471915929812072E-5   64      -1.243015625000000000
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -64     -64.0   1969-12-31 16:00:01.785 -7196   -1639157869     6110780535632   NULL    NULL    7196    -14392  -7196   NULL    NULL    64.0    6.4051596E8     -6.471915929812072E-5   64      -1.243015625000000000
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -64     -64.0   1969-12-31 16:00:11.912 -7196   -1615920595     6024151978160   NULL    NULL    7196    -14392  -7196   NULL    NULL    64.0    6.4051596E8     -6.471915929812072E-5   64      -1.243015625000000000
+NULL   -7196.0 1969-12-31 15:59:58.174 NULL    false   -64     -64.0   1969-12-31 16:00:12.339 -7196   1805860756      -6732248898368  NULL    NULL    7196    -14392  -7196   NULL    NULL    64.0    6.4051596E8     -6.471915929812072E-5   64      -1.243015625000000000
 PREHOOK: query: -- TargetTypeClasses: Long, String, Double, Bool, Timestamp
 -- Functions: VarP, Var, StDev, StDevP, Max, Sum
 -- ArithmeticOps: Divide, Remainder, Subtract, Multiply
@@ -1191,6 +1200,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -1201,22 +1211,24 @@ STAGE PLANS:
                   alias: alltypesorc
                   Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
-                    predicate: (((197.0 > UDFToDouble(ctinyint)) and (UDFToLong(cint) = cbigint)) or (cbigint = 359) or (cboolean1 < 0) or ((cstring1 like '%ss') and (cfloat <= UDFToFloat(ctinyint)))) (type: boolean)
+                    predicate: (((197 > UDFToInteger(ctinyint)) and (UDFToLong(cint) = cbigint)) or (cbigint = 359) or (cboolean1 < 0) or ((cstring1 like '%ss') and (cfloat <= UDFToFloat(ctinyint)))) (type: boolean)
                     Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
-                      expressions: cint (type: int), cbigint (type: bigint), cstring1 (type: string), cboolean1 (type: boolean), cfloat (type: float), cdouble (type: double), ctimestamp2 (type: timestamp), csmallint (type: smallint), cstring2 (type: string), cboolean2 (type: boolean), (UDFToDouble(cint) / UDFToDouble(cbigint)) (type: double), (UDFToDouble(cbigint) % 79.553) (type: double), (- (UDFToDouble(cint) / UDFToDouble(cbigint))) (type: double), (10.175 % UDFToDouble(cfloat)) (type: double), (- cfloat) (type: float), (cfloat - (- cfloat)) (type: float), ((cfloat - (- cfloat)) % -6432.0) (type: float), (cdouble * UDFToDouble(csmallint)) (type: double), (- cdouble) (type: double), (- cbigint) (type: bigint), (UDFToDouble(cfloat) - (UDFToDouble(cint) / UDFToDouble(cbigint))) (type: double), (- csmallint) (type: smallint), (3569 % cbigint) (type: bigint), (359.0 - cdouble) (type: double), (- csmallint) (type: smallint)
+                      expressions: cint (type: int), cbigint (type: bigint), cstring1 (type: string), cboolean1 (type: boolean), cfloat (type: float), cdouble (type: double), ctimestamp2 (type: timestamp), csmallint (type: smallint), cstring2 (type: string), cboolean2 (type: boolean), (UDFToDouble(cint) / UDFToDouble(cbigint)) (type: double), (CAST( cbigint AS decimal(19,0)) % 79.553) (type: decimal(5,3)), (- (UDFToDouble(cint) / UDFToDouble(cbigint))) (type: double), (10.175 % cfloat) (type: float), (- cfloat) (type: float), (cfloat - (- cfloat)) (type: float), ((cfloat - (- cfloat)) % -6432.0) (type: float), (cdouble * UDFToDouble(csmallint)) (type: double), (- cdouble) (type: double), (- cbigint) (type: bigint), (UDFToDouble(cfloat) - (UDFToDouble(cint) / UDFToDouble(cbigint))) (type: double), (- csmallint) (type: smallint), (3569 % cbigint) (type: bigint), (359.0 - cdouble) (type: double), (- csmallint) (type: smallint)
                       outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24
                       Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                       Reduce Output Operator
-                        key expressions: _col0 (type: int), _col1 (type: bigint), _col2 (type: string), _col3 (type: boolean), _col4 (type: float), _col5 (type: double), _col6 (type: timestamp), _col7 (type: smallint), _col8 (type: string), _col9 (type: boolean), _col10 (type: double), _col11 (type: double), _col12 (type: double), _col13 (type: double), _col14 (type: float), _col15 (type: float), _col16 (type: float), _col17 (type: double), _col18 (type: double), _col19 (type: bigint), _col20 (type: double), _col21 (type: smallint), _col22 (type: bigint), _col23 (type: double), _col24 (type: smallint)
+                        key expressions: _col0 (type: int), _col1 (type: bigint), _col2 (type: string), _col3 (type: boolean), _col4 (type: float), _col5 (type: double), _col6 (type: timestamp), _col7 (type: smallint), _col8 (type: string), _col9 (type: boolean), _col10 (type: double), _col11 (type: decimal(5,3)), _col12 (type: double), _col13 (type: float), _col14 (type: float), _col15 (type: float), _col16 (type: float), _col17 (type: double), _col18 (type: double), _col19 (type: bigint), _col20 (type: double), _col21 (type: smallint), _col22 (type: bigint), _col23 (type: double), _col24 (type: smallint)
                         sort order: +++++++++++++++++++++++++
                         Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
+                        TopN Hash Memory Usage: 0.1
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Select Operator
-                expressions: KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: bigint), KEY.reducesinkkey2 (type: string), KEY.reducesinkkey3 (type: boolean), KEY.reducesinkkey4 (type: float), KEY.reducesinkkey5 (type: double), KEY.reducesinkkey6 (type: timestamp), KEY.reducesinkkey7 (type: smallint), KEY.reducesinkkey8 (type: string), KEY.reducesinkkey9 (type: boolean), KEY.reducesinkkey10 (type: double), KEY.reducesinkkey11 (type: double), KEY.reducesinkkey12 (type: double), KEY.reducesinkkey13 (type: double), KEY.reducesinkkey14 (type: float), KEY.reducesinkkey15 (type: float), KEY.reducesinkkey16 (type: float), KEY.reducesinkkey17 (type: double), KEY.reducesinkkey18 (type: double), KEY.reducesinkkey19 (type: bigint), KEY.reducesinkkey20 (type: double), KEY.reducesinkkey21 (type: smallint), KEY.reducesinkkey22 (type: bigint), KEY.reducesinkkey23 (type: double), KEY.reducesinkkey21 (type: smallint)
+                expressions: KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: bigint), KEY.reducesinkkey2 (type: string), KEY.reducesinkkey3 (type: boolean), KEY.reducesinkkey4 (type: float), KEY.reducesinkkey5 (type: double), KEY.reducesinkkey6 (type: timestamp), KEY.reducesinkkey7 (type: smallint), KEY.reducesinkkey8 (type: string), KEY.reducesinkkey9 (type: boolean), KEY.reducesinkkey10 (type: double), KEY.reducesinkkey11 (type: decimal(5,3)), KEY.reducesinkkey12 (type: double), KEY.reducesinkkey13 (type: float), KEY.reducesinkkey14 (type: float), KEY.reducesinkkey15 (type: float), KEY.reducesinkkey16 (type: float), KEY.reducesinkkey17 (type: double), KEY.reducesinkkey18 (type: double), KEY.reducesinkkey19 (type: bigint), KEY.reducesinkkey20 (type: double), KEY.reducesinkkey21 (type: smallint), KEY.reducesinkkey22 (type: bigint), KEY.reducesinkkey23 (type: double), KEY.reducesinkkey21 (type: smallint)
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24
                 Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                 Limit
@@ -1226,8 +1238,8 @@ STAGE PLANS:
                     compressed: false
                     Statistics: Num rows: 25 Data size: 5375 Basic stats: COMPLETE Column stats: NONE
                     table:
-                        input format: org.apache.hadoop.mapred.TextInputFormat
-                        output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                        input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                        output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                         serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -1310,8 +1322,8 @@ LIMIT 25
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
--462839731     988888  ss      false   -51.0   NULL    NULL    NULL    Lml5J2QBU77     false   -468.04059812638036     44.210000000033915      468.04059812638036      10.175  51.0    -102.0  -102.0  NULL    NULL    -988888 417.04059812638036      NULL    3569    NULL    NULL
--635141101     -89010  ss      false   -51.0   NULL    NULL    NULL    rVWAj4N1MCg8Scyp7wj2C   true    7135.6151106617235      -69.74600000000305      -7135.6151106617235     10.175  51.0    -102.0  -102.0  NULL    NULL    89010   -7186.6151106617235     NULL    3569    NULL    NULL
+-462839731     988888  ss      false   -51.0   NULL    NULL    NULL    Lml5J2QBU77     false   -468.04059812638036     44.210  468.04059812638036      10.175  51.0    -102.0  -102.0  NULL    NULL    -988888 417.04059812638036      NULL    3569    NULL    NULL
+-635141101     -89010  ss      false   -51.0   NULL    NULL    NULL    rVWAj4N1MCg8Scyp7wj2C   true    7135.6151106617235      -69.746 -7135.6151106617235     10.175  51.0    -102.0  -102.0  NULL    NULL    89010   -7186.6151106617235     NULL    3569    NULL    NULL
 WARNING: Comparing a bigint and a double may result in a loss of precision.
 PREHOOK: query: -- TargetTypeClasses: String, Bool, Double, Long, Timestamp
 -- Functions: Sum, Max, Avg, Var, StDevP, VarP
@@ -1398,6 +1410,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -1408,23 +1421,25 @@ STAGE PLANS:
                   alias: alltypesorc
                   Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
-                    predicate: (((UDFToDouble(csmallint) > -26.28) and (cstring2 like 'ss')) or ((cdouble <= UDFToDouble(cbigint)) and (cstring1 >= 'ss') and (UDFToDouble(cint) <> cdouble)) or (UDFToInteger(ctinyint) = -89010) or ((UDFToFloat(cbigint) <= cfloat) and (-26.28 <= UDFToDouble(csmallint)))) (type: boolean)
+                    predicate: (((CAST( csmallint AS decimal(7,2)) > -26.28) and (cstring2 like 'ss')) or ((cdouble <= UDFToDouble(cbigint)) and (cstring1 >= 'ss') and (UDFToDouble(cint) <> cdouble)) or (UDFToInteger(ctinyint) = -89010) or ((UDFToFloat(cbigint) <= cfloat) and (-26.28 <= CAST( csmallint AS decimal(7,2))))) (type: boolean)
                     Statistics: Num rows: 10922 Data size: 2348269 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
-                      expressions: cint (type: int), cstring1 (type: string), cboolean2 (type: boolean), ctimestamp2 (type: timestamp), cdouble (type: double), cfloat (type: float), cbigint (type: bigint), csmallint (type: smallint), cboolean1 (type: boolean), (cint + UDFToInteger(csmallint)) (type: int), (cbigint - UDFToLong(ctinyint)) (type: bigint), (- cbigint) (type: bigint), (- cfloat) (type: float), ((cbigint - UDFToLong(ctinyint)) + cbigint) (type: bigint), (cdouble / cdouble) (type: double), (- cdouble) (type: double), (UDFToLong((cint + UDFToInteger(csmallint))) * (- cbigint)) (type: bigint), ((- cdouble) + UDFToDouble(cbigint)) (type: double), (-1.389 / UDFToDouble(ctinyint)) (type: double), (UDFToDouble(cbigint) % cdouble) (type: double), (- csmallint) (type: smallint), (UDFToInteger(csmallint) + (cint + UDFToInteger(csmallint))) (type: int)
+                      expressions: cint (type: int), cstring1 (type: string), cboolean2 (type: boolean), ctimestamp2 (type: timestamp), cdouble (type: double), cfloat (type: float), cbigint (type: bigint), csmallint (type: smallint), cboolean1 (type: boolean), (cint + UDFToInteger(csmallint)) (type: int), (cbigint - UDFToLong(ctinyint)) (type: bigint), (- cbigint) (type: bigint), (- cfloat) (type: float), ((cbigint - UDFToLong(ctinyint)) + cbigint) (type: bigint), (cdouble / cdouble) (type: double), (- cdouble) (type: double), (UDFToLong((cint + UDFToInteger(csmallint))) * (- cbigint)) (type: bigint), ((- cdouble) + UDFToDouble(cbigint)) (type: double), (-1.389 / CAST( ctinyint AS decimal(3,0))) (type: decimal(19,18)), (UDFToDouble(cbigint) % cdouble) (type: double), (- csmallint) (type: smallint), (UDFToInteger(csmallint) + (cint + UDFToInteger(csmallint))) (type: int)
                       outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21
                       Statistics: Num rows: 10922 Data size: 2348269 Basic stats: COMPLETE Column stats: NONE
                       Reduce Output Operator
-                        key expressions: _col8 (type: boolean), _col1 (type: string), _col3 (type: timestamp), _col5 (type: float), _col6 (type: bigint), _col1 (type: string), _col4 (type: double), _col0 (type: int), _col7 (type: smallint), _col4 (type: double), _col9 (type: int), _col10 (type: bigint), _col11 (type: bigint), _col12 (type: float), _col13 (type: bigint), _col14 (type: double), _col15 (type: double), _col16 (type: bigint), _col17 (type: double), _col18 (type: double), _col19 (type: double), _col20 (type: smallint), _col21 (type: int)
+                        key expressions: _col8 (type: boolean), _col1 (type: string), _col3 (type: timestamp), _col5 (type: float), _col6 (type: bigint), _col1 (type: string), _col4 (type: double), _col0 (type: int), _col7 (type: smallint), _col4 (type: double), _col9 (type: int), _col10 (type: bigint), _col11 (type: bigint), _col12 (type: float), _col13 (type: bigint), _col14 (type: double), _col15 (type: double), _col16 (type: bigint), _col17 (type: double), _col18 (type: decimal(19,18)), _col19 (type: double), _col20 (type: smallint), _col21 (type: int)
                         sort order: +++++++++++++++++++++++
                         Statistics: Num rows: 10922 Data size: 2348269 Basic stats: COMPLETE Column stats: NONE
+                        TopN Hash Memory Usage: 0.1
                         value expressions: _col2 (type: boolean)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Select Operator
-                expressions: KEY.reducesinkkey7 (type: int), KEY.reducesinkkey1 (type: string), VALUE._col0 (type: boolean), KEY.reducesinkkey2 (type: timestamp), KEY.reducesinkkey6 (type: double), KEY.reducesinkkey3 (type: float), KEY.reducesinkkey4 (type: bigint), KEY.reducesinkkey8 (type: smallint), KEY.reducesinkkey0 (type: boolean), KEY.reducesinkkey10 (type: int), KEY.reducesinkkey11 (type: bigint), KEY.reducesinkkey12 (type: bigint), KEY.reducesinkkey13 (type: float), KEY.reducesinkkey14 (type: bigint), KEY.reducesinkkey15 (type: double), KEY.reducesinkkey16 (type: double), KEY.reducesinkkey17 (type: bigint), KEY.reducesinkkey18 (type: double), KEY.reducesinkkey19 (type: double), KEY.reducesinkkey20 (type: double), KEY.reducesinkkey21 (type: smallint), KEY.reducesinkkey22 (type: int)
+                expressions: KEY.reducesinkkey7 (type: int), KEY.reducesinkkey1 (type: string), VALUE._col0 (type: boolean), KEY.reducesinkkey2 (type: timestamp), KEY.reducesinkkey6 (type: double), KEY.reducesinkkey3 (type: float), KEY.reducesinkkey4 (type: bigint), KEY.reducesinkkey8 (type: smallint), KEY.reducesinkkey0 (type: boolean), KEY.reducesinkkey10 (type: int), KEY.reducesinkkey11 (type: bigint), KEY.reducesinkkey12 (type: bigint), KEY.reducesinkkey13 (type: float), KEY.reducesinkkey14 (type: bigint), KEY.reducesinkkey15 (type: double), KEY.reducesinkkey16 (type: double), KEY.reducesinkkey17 (type: bigint), KEY.reducesinkkey18 (type: double), KEY.reducesinkkey19 (type: decimal(19,18)), KEY.reducesinkkey20 (type: double), KEY.reducesinkkey21 (type: smallint), KEY.reducesinkkey22 (type: int)
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21
                 Statistics: Num rows: 10922 Data size: 2348269 Basic stats: COMPLETE Column stats: NONE
                 Limit
@@ -1434,8 +1449,8 @@ STAGE PLANS:
                     compressed: false
                     Statistics: Num rows: 75 Data size: 16125 Basic stats: COMPLETE Column stats: NONE
                     table:
-                        input format: org.apache.hadoop.mapred.TextInputFormat
-                        output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                        input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                        output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                         serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -1517,82 +1532,81 @@ LIMIT 75
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
-NULL   NULL    NULL    1969-12-31 15:59:58.456 15601.0 -44.0   -1416000760     15601   NULL    NULL    -1416000716     1416000760      44.0    -2832001476     1.0     -15601.0        NULL    -1.416016361E9  0.0315681818181818    -7197.0 -15601  NULL
-NULL   NULL    NULL    1969-12-31 15:59:58.456 15601.0 -48.0   -1683400285     15601   NULL    NULL    -1683400237     1683400285      48.0    -3366800522     1.0     -15601.0        NULL    -1.683415886E9  0.0289375       -5582.0 -15601  NULL
-NULL   NULL    NULL    1969-12-31 15:59:58.456 15601.0 -57.0   -1057361026     15601   NULL    NULL    -1057360969     1057361026      57.0    -2114721995     1.0     -15601.0        NULL    -1.057376627E9  0.0243684210526315    -3251.0 -15601  NULL
+NULL   NULL    NULL    1969-12-31 15:59:58.456 15601.0 -44.0   -1416000760     15601   NULL    NULL    -1416000716     1416000760      44.0    -2832001476     1.0     -15601.0        NULL    -1.416016361E9  0.031568181818181818    -7197.0 -15601  NULL
+NULL   NULL    NULL    1969-12-31 15:59:58.456 15601.0 -48.0   -1683400285     15601   NULL    NULL    -1683400237     1683400285      48.0    -3366800522     1.0     -15601.0        NULL    -1.683415886E9  0.028937500000000000    -5582.0 -15601  NULL
+NULL   NULL    NULL    1969-12-31 15:59:58.456 15601.0 -57.0   -1057361026     15601   NULL    NULL    -1057360969     1057361026      57.0    -2114721995     1.0     -15601.0        NULL    -1.057376627E9  0.024368421052631579    -3251.0 -15601  NULL
 NULL   NULL    NULL    1969-12-31 15:59:58.456 15601.0 -62.0   -1726415169     15601   NULL    NULL    -1726415107     1726415169      62.0    -3452830276     1.0     -15601.0        NULL    -1.72643077E9   0.022403225806451613    -8509.0 -15601  NULL
-NULL   NULL    NULL    1969-12-31 15:59:58.456 15601.0 -63.0   -1167054574     15601   NULL    NULL    -1167054511     1167054574      63.0    -2334109085     1.0     -15601.0        NULL    -1.167070175E9  0.0220476190476190    -6168.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -44.0   -1551649760     15601   NULL    NULL    -1551649716     1551649760      44.0    -3103299476     1.0     -15601.0        NULL    -1.551665361E9  0.0315681818181818    -5502.0 -15601  NULL
+NULL   NULL    NULL    1969-12-31 15:59:58.456 15601.0 -63.0   -1167054574     15601   NULL    NULL    -1167054511     1167054574      63.0    -2334109085     1.0     -15601.0        NULL    -1.167070175E9  0.022047619047619048    -6168.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -44.0   -1551649760     15601   NULL    NULL    -1551649716     1551649760      44.0    -3103299476     1.0     -15601.0        NULL    -1.551665361E9  0.031568181818181818    -5502.0 -15601  NULL
 NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -45.0   -1022657523     15601   NULL    NULL    -1022657478     1022657523      45.0    -2045315001     1.0     -15601.0        NULL    -1.022673124E9  0.030866666666666667    -11973.0        -15601  NULL
 NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -45.0   -1291025659     15601   NULL    NULL    -1291025614     1291025659      45.0    -2582051273     1.0     -15601.0        NULL    -1.29104126E9   0.030866666666666667    -11707.0        -15601  NULL
 NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -45.0   -831227593      15601   NULL    NULL    -831227548      831227593       45.0    -1662455141     1.0     -15601.0        NULL    -8.31243194E8   0.030866666666666667    -6313.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -46.0   -208932264      15601   NULL    NULL    -208932218      208932264       46.0    -417864482      1.0     -15601.0        NULL    -2.08947865E8   0.030195652173913044    -3672.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -46.0   -468932050      15601   NULL    NULL    -468932004      468932050       46.0    -937864054      1.0     -15601.0        NULL    -4.68947651E8   0.030195652173913044    -12793.0        -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -47.0   -436916225      15601   NULL    NULL    -436916178      436916225       47.0    -873832403      1.0     -15601.0        NULL    -4.36931826E8   0.029553191489361703    -10220.0        -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -47.0   -493471535      15601   NULL    NULL    -493471488      493471535       47.0    -986943023      1.0     -15601.0        NULL    -4.93487136E8   0.029553191489361703    -11905.0        -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -48.0   -1228417392     15601   NULL    NULL    -1228417344     1228417392      48.0    -2456834736     1.0     -15601.0        NULL    -1.228432993E9  0.0289375       -10253.0        -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -48.0   -1294837001     15601   NULL    NULL    -1294836953     1294837001      48.0    -2589673954     1.0     -15601.0        NULL    -1.294852602E9  0.0289375       -804.0  -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -48.0   -1427685796     15601   NULL    NULL    -1427685748     1427685796      48.0    -2855371544     1.0     -15601.0        NULL    -1.427701397E9  0.0289375       -7084.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -48.0   -803222928      15601   NULL    NULL    -803222880      803222928       48.0    -1606445808     1.0     -15601.0        NULL    -8.03238529E8   0.0289375       -5443.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -49.0   -1841324115     15601   NULL    NULL    -1841324066     1841324115      49.0    -3682648181     1.0     -15601.0        NULL    -1.841339716E9  0.028346938775510203    -489.0  -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -49.0   -230127703      15601   NULL    NULL    -230127654      230127703       49.0    -460255357      1.0     -15601.0        NULL    -2.30143304E8   0.028346938775510203    -12953.0        -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -50.0   -596103241      15601   NULL    NULL    -596103191      596103241       50.0    -1192206432     1.0     -15601.0        NULL    -5.96118842E8   0.02778 -4632.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -51.0   -546830045      15601   NULL    NULL    -546829994      546830045       51.0    -1093660039     1.0     -15601.0        NULL    -5.46845646E8   0.0272352941176470    -14995.0        -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -52.0   -2097289702     15601   NULL    NULL    -2097289650     2097289702      52.0    -4194579352     1.0     -15601.0        NULL    -2.097305303E9  0.02671153846153846     -469.0  -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -52.0   -886068046      15601   NULL    NULL    -886067994      886068046       52.0    -1772136040     1.0     -15601.0        NULL    -8.86083647E8   0.02671153846153846     -9251.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -54.0   -1114169807     15601   NULL    NULL    -1114169753     1114169807      54.0    -2228339560     1.0     -15601.0        NULL    -1.114185408E9  0.025722222222222223    -8791.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -54.0   -1754189160     15601   NULL    NULL    -1754189106     1754189160      54.0    -3508378266     1.0     -15601.0        NULL    -1.754204761E9  0.025722222222222223    -12720.0        -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -54.0   -989710558      15601   NULL    NULL    -989710504      989710558       54.0    -1979421062     1.0     -15601.0        NULL    -9.89726159E8   0.025722222222222223    -14320.0        -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -56.0   -1105322173     15601   NULL    NULL    -1105322117     1105322173      56.0    -2210644290     1.0     -15601.0        NULL    -1.105337774E9  0.0248035714285714    -6924.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -56.0   -1466363382     15601   NULL    NULL    -1466363326     1466363382      56.0    -2932726708     1.0     -15601.0        NULL    -1.466378983E9  0.0248035714285714    -9791.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -56.0   -865054294      15601   NULL    NULL    -865054238      865054294       56.0    -1730108532     1.0     -15601.0        NULL    -8.65069895E8   0.0248035714285714    -10046.0        -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -57.0   -1698345590     15601   NULL    NULL    -1698345533     1698345590      57.0    -3396691123     1.0     -15601.0        NULL    -1.698361191E9  0.0243684210526315    -5129.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -57.0   -2123576095     15601   NULL    NULL    -2123576038     2123576095      57.0    -4247152133     1.0     -15601.0        NULL    -2.123591696E9  0.0243684210526315    -14778.0        -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -57.0   -304247740      15601   NULL    NULL    -304247683      304247740       57.0    -608495423      1.0     -15601.0        NULL    -3.04263341E8   0.0243684210526315    -12639.0        -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -57.0   -365505703      15601   NULL    NULL    -365505646      365505703       57.0    -731011349      1.0     -15601.0        NULL    -3.65521304E8   0.0243684210526315    -5475.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -59.0   -2021724111     15601   NULL    NULL    -2021724052     2021724111      59.0    -4043448163     1.0     -15601.0        NULL    -2.021739712E9  0.02354237288135593     -6122.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -60.0   -1016256928     15601   NULL    NULL    -1016256868     1016256928      60.0    -2032513796     1.0     -15601.0        NULL    -1.016272529E9  0.02315 -7788.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -60.0   -1743144280     15601   NULL    NULL    -1743144220     1743144280      60.0    -3486288500     1.0     -15601.0        NULL    -1.743159881E9  0.02315 -13348.0        -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -60.0   -519753851      15601   NULL    NULL    -519753791      519753851       60.0    -1039507642     1.0     -15601.0        NULL    -5.19769452E8   0.02315 -6536.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -60.0   -5953872        15601   NULL    NULL    -5953812        5953872 60.0    -11907684       1.0     -15601.0        NULL    -5969473.0      0.02315 -9891.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -61.0   -982179838      15601   NULL    NULL    -982179777      982179838       61.0    -1964359615     1.0     -15601.0        NULL    -9.82195439E8   0.0227704918032786    -3282.0 -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -63.0   -1574729892     15601   NULL    NULL    -1574729829     1574729892      63.0    -3149459721     1.0     -15601.0        NULL    -1.574745493E9  0.0220476190476190    -11755.0        -15601  NULL
-NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -63.0   -1996001975     15601   NULL    NULL    -1996001912     1996001975      63.0    -3992003887     1.0     -15601.0        NULL    -1.996017576E9  0.0220476190476190    -10035.0        -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -44.0   -1447719201     15601   NULL    NULL    -1447719157     1447719201      44.0    -2895438358     1.0     -15601.0        NULL    -1.447734802E9  0.0315681818181818    -8805.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -47.0   -1828371599     15601   NULL    NULL    -1828371552     1828371599      47.0    -3656743151     1.0     -15601.0        NULL    -1.8283872E9    0.029553191489361703    -12404.0        -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -48.0   -1465907371     15601   NULL    NULL    -1465907323     1465907371      48.0    -2931814694     1.0     -15601.0        NULL    -1.465922972E9  0.0289375       -6209.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -48.0   -1666377780     15601   NULL    NULL    -1666377732     1666377780      48.0    -3332755512     1.0     -15601.0        NULL    -1.666393381E9  0.0289375       -3768.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -48.0   -652336471      15601   NULL    NULL    -652336423      652336471       48.0    -1304672894     1.0     -15601.0        NULL    -6.52352072E8   0.0289375       -11858.0        -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -49.0   -197652849      15601   NULL    NULL    -197652800      197652849       49.0    -395305649      1.0     -15601.0        NULL    -1.9766845E8    0.028346938775510203    -3780.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -49.0   -211726367      15601   NULL    NULL    -211726318      211726367       49.0    -423452685      1.0     -15601.0        NULL    -2.11741968E8   0.028346938775510203    -5196.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -49.0   -57200424       15601   NULL    NULL    -57200375       57200424        49.0    -114400799      1.0     -15601.0        NULL    -5.7216025E7    0.028346938775510203    -7158.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -49.0   -668597606      15601   NULL    NULL    -668597557      668597606       49.0    -1337195163     1.0     -15601.0        NULL    -6.68613207E8   0.028346938775510203    -1150.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -49.0   -990904667      15601   NULL    NULL    -990904618      990904667       49.0    -1981809285     1.0     -15601.0        NULL    -9.90920268E8   0.028346938775510203    -7152.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -50.0   -458110015      15601   NULL    NULL    -458109965      458110015       50.0    -916219980      1.0     -15601.0        NULL    -4.58125616E8   0.02778 -2251.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -52.0   -2074134645     15601   NULL    NULL    -2074134593     2074134645      52.0    -4148269238     1.0     -15601.0        NULL    -2.074150246E9  0.02671153846153846     -12897.0        -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -54.0   -1795674990     15601   NULL    NULL    -1795674936     1795674990      54.0    -3591349926     1.0     -15601.0        NULL    -1.795690591E9  0.025722222222222223    -15491.0        -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -54.0   -1984659810     15601   NULL    NULL    -1984659756     1984659810      54.0    -3969319566     1.0     -15601.0        NULL    -1.984675411E9  0.025722222222222223    -9797.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -54.0   -641670659      15601   NULL    NULL    -641670605      641670659       54.0    -1283341264     1.0     -15601.0        NULL    -6.4168626E8    0.025722222222222223    -1529.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -55.0   -1062767051     15601   NULL    NULL    -1062766996     1062767051      55.0    -2125534047     1.0     -15601.0        NULL    -1.062782652E9  0.025254545454545453    -11330.0        -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -55.0   -1338667765     15601   NULL    NULL    -1338667710     1338667765      55.0    -2677335475     1.0     -15601.0        NULL    -1.338683366E9  0.025254545454545453    -8359.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -55.0   -1483320156     15601   NULL    NULL    -1483320101     1483320156      55.0    -2966640257     1.0     -15601.0        NULL    -1.483335757E9  0.025254545454545453    -8278.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -56.0   -1683701844     15601   NULL    NULL    -1683701788     1683701844      56.0    -3367403632     1.0     -15601.0        NULL    -1.683717445E9  0.0248035714285714    -10722.0        -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -56.0   -971846497      15601   NULL    NULL    -971846441      971846497       56.0    -1943692938     1.0     -15601.0        NULL    -9.71862098E8   0.0248035714285714    -13404.0        -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -57.0   -585350546      15601   NULL    NULL    -585350489      585350546       57.0    -1170701035     1.0     -15601.0        NULL    -5.85366147E8   0.0243684210526315    -1026.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -46.0   -208932264      15601   NULL    NULL    -208932218      208932264       46.0    -417864482      1.0     -15601.0        NULL    -2.08947865E8   0.030195652173913043    -3672.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -46.0   -468932050      15601   NULL    NULL    -468932004      468932050       46.0    -937864054      1.0     -15601.0        NULL    -4.68947651E8   0.030195652173913043    -12793.0        -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -47.0   -436916225      15601   NULL    NULL    -436916178      436916225       47.0    -873832403      1.0     -15601.0        NULL    -4.36931826E8   0.029553191489361702    -10220.0        -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -47.0   -493471535      15601   NULL    NULL    -493471488      493471535       47.0    -986943023      1.0     -15601.0        NULL    -4.93487136E8   0.029553191489361702    -11905.0        -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -48.0   -1228417392     15601   NULL    NULL    -1228417344     1228417392      48.0    -2456834736     1.0     -15601.0        NULL    -1.228432993E9  0.028937500000000000    -10253.0        -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -48.0   -1294837001     15601   NULL    NULL    -1294836953     1294837001      48.0    -2589673954     1.0     -15601.0        NULL    -1.294852602E9  0.028937500000000000    -804.0  -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -48.0   -1427685796     15601   NULL    NULL    -1427685748     1427685796      48.0    -2855371544     1.0     -15601.0        NULL    -1.427701397E9  0.028937500000000000    -7084.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -48.0   -803222928      15601   NULL    NULL    -803222880      803222928       48.0    -1606445808     1.0     -15601.0        NULL    -8.03238529E8   0.028937500000000000    -5443.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -49.0   -1841324115     15601   NULL    NULL    -1841324066     1841324115      49.0    -3682648181     1.0     -15601.0        NULL    -1.841339716E9  0.028346938775510204    -489.0  -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -49.0   -230127703      15601   NULL    NULL    -230127654      230127703       49.0    -460255357      1.0     -15601.0        NULL    -2.30143304E8   0.028346938775510204    -12953.0        -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -50.0   -596103241      15601   NULL    NULL    -596103191      596103241       50.0    -1192206432     1.0     -15601.0        NULL    -5.96118842E8   0.027780000000000000    -4632.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -51.0   -546830045      15601   NULL    NULL    -546829994      546830045       51.0    -1093660039     1.0     -15601.0        NULL    -5.46845646E8   0.027235294117647059    -14995.0        -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -52.0   -2097289702     15601   NULL    NULL    -2097289650     2097289702      52.0    -4194579352     1.0     -15601.0        NULL    -2.097305303E9  0.026711538461538462    -469.0  -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -52.0   -886068046      15601   NULL    NULL    -886067994      886068046       52.0    -1772136040     1.0     -15601.0        NULL    -8.86083647E8   0.026711538461538462    -9251.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -54.0   -1114169807     15601   NULL    NULL    -1114169753     1114169807      54.0    -2228339560     1.0     -15601.0        NULL    -1.114185408E9  0.025722222222222222    -8791.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -54.0   -1754189160     15601   NULL    NULL    -1754189106     1754189160      54.0    -3508378266     1.0     -15601.0        NULL    -1.754204761E9  0.025722222222222222    -12720.0        -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -54.0   -989710558      15601   NULL    NULL    -989710504      989710558       54.0    -1979421062     1.0     -15601.0        NULL    -9.89726159E8   0.025722222222222222    -14320.0        -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -56.0   -1105322173     15601   NULL    NULL    -1105322117     1105322173      56.0    -2210644290     1.0     -15601.0        NULL    -1.105337774E9  0.024803571428571429    -6924.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -56.0   -1466363382     15601   NULL    NULL    -1466363326     1466363382      56.0    -2932726708     1.0     -15601.0        NULL    -1.466378983E9  0.024803571428571429    -9791.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -56.0   -865054294      15601   NULL    NULL    -865054238      865054294       56.0    -1730108532     1.0     -15601.0        NULL    -8.65069895E8   0.024803571428571429    -10046.0        -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -57.0   -1698345590     15601   NULL    NULL    -1698345533     1698345590      57.0    -3396691123     1.0     -15601.0        NULL    -1.698361191E9  0.024368421052631579    -5129.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -57.0   -2123576095     15601   NULL    NULL    -2123576038     2123576095      57.0    -4247152133     1.0     -15601.0        NULL    -2.123591696E9  0.024368421052631579    -14778.0        -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -57.0   -304247740      15601   NULL    NULL    -304247683      304247740       57.0    -608495423      1.0     -15601.0        NULL    -3.04263341E8   0.024368421052631579    -12639.0        -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -57.0   -365505703      15601   NULL    NULL    -365505646      365505703       57.0    -731011349      1.0     -15601.0        NULL    -3.65521304E8   0.024368421052631579    -5475.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -59.0   -2021724111     15601   NULL    NULL    -2021724052     2021724111      59.0    -4043448163     1.0     -15601.0        NULL    -2.021739712E9  0.023542372881355932    -6122.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -60.0   -1016256928     15601   NULL    NULL    -1016256868     1016256928      60.0    -2032513796     1.0     -15601.0        NULL    -1.016272529E9  0.023150000000000000    -7788.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -60.0   -1743144280     15601   NULL    NULL    -1743144220     1743144280      60.0    -3486288500     1.0     -15601.0        NULL    -1.743159881E9  0.023150000000000000    -13348.0        -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -60.0   -519753851      15601   NULL    NULL    -519753791      519753851       60.0    -1039507642     1.0     -15601.0        NULL    -5.19769452E8   0.023150000000000000    -6536.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -60.0   -5953872        15601   NULL    NULL    -5953812        5953872 60.0    -11907684       1.0     -15601.0        NULL    -5969473.0      0.023150000000000000    -9891.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -61.0   -982179838      15601   NULL    NULL    -982179777      982179838       61.0    -1964359615     1.0     -15601.0        NULL    -9.82195439E8   0.022770491803278689    -3282.0 -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -63.0   -1574729892     15601   NULL    NULL    -1574729829     1574729892      63.0    -3149459721     1.0     -15601.0        NULL    -1.574745493E9  0.022047619047619048    -11755.0        -15601  NULL
+NULL   NULL    false   1969-12-31 15:59:58.456 15601.0 -63.0   -1996001975     15601   NULL    NULL    -1996001912     1996001975      63.0    -3992003887     1.0     -15601.0        NULL    -1.996017576E9  0.022047619047619048    -10035.0        -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -44.0   -1447719201     15601   NULL    NULL    -1447719157     1447719201      44.0    -2895438358     1.0     -15601.0        NULL    -1.447734802E9  0.031568181818181818    -8805.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -47.0   -1828371599     15601   NULL    NULL    -1828371552     1828371599      47.0    -3656743151     1.0     -15601.0        NULL    -1.8283872E9    0.029553191489361702    -12404.0        -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -48.0   -1465907371     15601   NULL    NULL    -1465907323     1465907371      48.0    -2931814694     1.0     -15601.0        NULL    -1.465922972E9  0.028937500000000000    -6209.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -48.0   -1666377780     15601   NULL    NULL    -1666377732     1666377780      48.0    -3332755512     1.0     -15601.0        NULL    -1.666393381E9  0.028937500000000000    -3768.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -48.0   -652336471      15601   NULL    NULL    -652336423      652336471       48.0    -1304672894     1.0     -15601.0        NULL    -6.52352072E8   0.028937500000000000    -11858.0        -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -49.0   -197652849      15601   NULL    NULL    -197652800      197652849       49.0    -395305649      1.0     -15601.0        NULL    -1.9766845E8    0.028346938775510204    -3780.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -49.0   -211726367      15601   NULL    NULL    -211726318      211726367       49.0    -423452685      1.0     -15601.0        NULL    -2.11741968E8   0.028346938775510204    -5196.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -49.0   -57200424       15601   NULL    NULL    -57200375       57200424        49.0    -114400799      1.0     -15601.0        NULL    -5.7216025E7    0.028346938775510204    -7158.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -49.0   -668597606      15601   NULL    NULL    -668597557      668597606       49.0    -1337195163     1.0     -15601.0        NULL    -6.68613207E8   0.028346938775510204    -1150.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -49.0   -990904667      15601   NULL    NULL    -990904618      990904667       49.0    -1981809285     1.0     -15601.0        NULL    -9.90920268E8   0.028346938775510204    -7152.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -50.0   -458110015      15601   NULL    NULL    -458109965      458110015       50.0    -916219980      1.0     -15601.0        NULL    -4.58125616E8   0.027780000000000000    -2251.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -52.0   -2074134645     15601   NULL    NULL    -2074134593     2074134645      52.0    -4148269238     1.0     -15601.0        NULL    -2.074150246E9  0.026711538461538462    -12897.0        -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -54.0   -1795674990     15601   NULL    NULL    -1795674936     1795674990      54.0    -3591349926     1.0     -15601.0        NULL    -1.795690591E9  0.025722222222222222    -15491.0        -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -54.0   -1984659810     15601   NULL    NULL    -1984659756     1984659810      54.0    -3969319566     1.0     -15601.0        NULL    -1.984675411E9  0.025722222222222222    -9797.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -54.0   -641670659      15601   NULL    NULL    -641670605      641670659       54.0    -1283341264     1.0     -15601.0        NULL    -6.4168626E8    0.025722222222222222    -1529.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -55.0   -1062767051     15601   NULL    NULL    -1062766996     1062767051      55.0    -2125534047     1.0     -15601.0        NULL    -1.062782652E9  0.025254545454545455    -11330.0        -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -55.0   -1338667765     15601   NULL    NULL    -1338667710     1338667765      55.0    -2677335475     1.0     -15601.0        NULL    -1.338683366E9  0.025254545454545455    -8359.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -55.0   -1483320156     15601   NULL    NULL    -1483320101     1483320156      55.0    -2966640257     1.0     -15601.0        NULL    -1.483335757E9  0.025254545454545455    -8278.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -56.0   -1683701844     15601   NULL    NULL    -1683701788     1683701844      56.0    -3367403632     1.0     -15601.0        NULL    -1.683717445E9  0.024803571428571429    -10722.0        -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -56.0   -971846497      15601   NULL    NULL    -971846441      971846497       56.0    -1943692938     1.0     -15601.0        NULL    -9.71862098E8   0.024803571428571429    -13404.0        -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -57.0   -585350546      15601   NULL    NULL    -585350489      585350546       57.0    -1170701035     1.0     -15601.0        NULL    -5.85366147E8   0.024368421052631579    -1026.0 -15601  NULL
 NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -58.0   -1072335429     15601   NULL    NULL    -1072335371     1072335429      58.0    -2144670800     1.0     -15601.0        NULL    -1.07235103E9   0.023948275862068966    -694.0  -15601  NULL
 NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -58.0   -1560616588     15601   NULL    NULL    -1560616530     1560616588      58.0    -3121233118     1.0     -15601.0        NULL    -1.560632189E9  0.023948275862068966    -1755.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -59.0   -1315413812     15601   NULL    NULL    -1315413753     1315413812      59.0    -2630827565     1.0     -15601.0        NULL    -1.315429413E9  0.02354237288135593     -15497.0        -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -59.0   -133287350      15601   NULL    NULL    -133287291      133287350       59.0    -266574641      1.0     -15601.0        NULL    -1.33302951E8   0.02354237288135593     -8007.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -60.0   -2041965187     15601   NULL    NULL    -2041965127     2041965187      60.0    -4083930314     1.0     -15601.0        NULL    -2.041980788E9  0.02315 -12701.0        -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -60.0   -903925845      15601   NULL    NULL    -903925785      903925845       60.0    -1807851630     1.0     -15601.0        NULL    -9.03941446E8   0.02315 -3905.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -61.0   -1022679553     15601   NULL    NULL    -1022679492     1022679553      61.0    -2045359045     1.0     -15601.0        NULL    -1.022695154E9  0.0227704918032786    -2801.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -61.0   -854893578      15601   NULL    NULL    -854893517      854893578       61.0    -1709787095     1.0     -15601.0        NULL    -8.54909179E8   0.0227704918032786    -5581.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -59.0   -1315413812     15601   NULL    NULL    -1315413753     1315413812      59.0    -2630827565     1.0     -15601.0        NULL    -1.315429413E9  0.023542372881355932    -15497.0        -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -59.0   -133287350      15601   NULL    NULL    -133287291      133287350       59.0    -266574641      1.0     -15601.0        NULL    -1.33302951E8   0.023542372881355932    -8007.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -60.0   -2041965187     15601   NULL    NULL    -2041965127     2041965187      60.0    -4083930314     1.0     -15601.0        NULL    -2.041980788E9  0.023150000000000000    -12701.0        -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -60.0   -903925845      15601   NULL    NULL    -903925785      903925845       60.0    -1807851630     1.0     -15601.0        NULL    -9.03941446E8   0.023150000000000000    -3905.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -61.0   -1022679553     15601   NULL    NULL    -1022679492     1022679553      61.0    -2045359045     1.0     -15601.0        NULL    -1.022695154E9  0.022770491803278689    -2801.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -61.0   -854893578      15601   NULL    NULL    -854893517      854893578       61.0    -1709787095     1.0     -15601.0        NULL    -8.54909179E8   0.022770491803278689    -5581.0 -15601  NULL
 NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -62.0   -1592016120     15601   NULL    NULL    -1592016058     1592016120      62.0    -3184032178     1.0     -15601.0        NULL    -1.592031721E9  0.022403225806451613    -12075.0        -15601  NULL
 NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -62.0   667693308       15601   NULL    NULL    667693370       -667693308      62.0    1335386678      1.0     -15601.0        NULL    6.67677707E8    0.022403225806451613    1710.0  -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -63.0   -200542601      15601   NULL    NULL    -200542538      200542601       63.0    -401085139      1.0     -15601.0        NULL    -2.00558202E8   0.02204761904761905     -7347.0 -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -63.0   -721244708      15601   NULL    NULL    -721244645      721244708       63.0    -1442489353     1.0     -15601.0        NULL    -7.21260309E8   0.02204761904761905     -10478.0        -15601  NULL
-NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -64.0   -1809291815     15601   NULL    NULL    -1809291751     1809291815      64.0    -3618583566     1.0     -15601.0        NULL    -1.809307416E9  0.021703125     -12643.0        -15601  NULL
-WARNING: Comparing a bigint and a double may result in a loss of precision.
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -63.0   -200542601      15601   NULL    NULL    -200542538      200542601       63.0    -401085139      1.0     -15601.0        NULL    -2.00558202E8   0.022047619047619048    -7347.0 -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -63.0   -721244708      15601   NULL    NULL    -721244645      721244708       63.0    -1442489353     1.0     -15601.0        NULL    -7.21260309E8   0.022047619047619048    -10478.0        -15601  NULL
+NULL   NULL    true    1969-12-31 15:59:58.456 15601.0 -64.0   -1809291815     15601   NULL    NULL    -1809291751     1809291815      64.0    -3618583566     1.0     -15601.0        NULL    -1.809307416E9  0.021703125000000000    -12643.0        -15601  NULL
 PREHOOK: query: -- TargetTypeClasses: Long, String, Double, Timestamp
 -- Functions: Avg, Min, StDevP, Sum, Var
 -- ArithmeticOps: Divide, Subtract, Multiply, Remainder
@@ -1664,6 +1678,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -1674,7 +1689,7 @@ STAGE PLANS:
                   alias: alltypesorc
                   Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
-                    predicate: (((-1.389 >= UDFToDouble(cint)) and (csmallint < UDFToShort(ctinyint)) and (-6432 > UDFToInteger(csmallint))) or ((cdouble >= UDFToDouble(cfloat)) and (cstring2 <= 'a')) or ((cstring1 like 'ss%') and (10.175 > UDFToDouble(cbigint)))) (type: boolean)
+                    predicate: (((-1.389 >= CAST( cint AS decimal(13,3))) and (csmallint < UDFToShort(ctinyint)) and (-6432 > UDFToInteger(csmallint))) or ((cdouble >= UDFToDouble(cfloat)) and (cstring2 <= 'a')) or ((cstring1 like 'ss%') and (10.175 > CAST( cbigint AS decimal(22,3))))) (type: boolean)
                     Statistics: Num rows: 3868 Data size: 831633 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
                       expressions: ctimestamp1 (type: timestamp), cstring2 (type: string), cdouble (type: double), cfloat (type: float), cbigint (type: bigint), csmallint (type: smallint), (UDFToDouble(cbigint) / 3569.0) (type: double), (-257 - UDFToInteger(csmallint)) (type: int), (-6432.0 * cfloat) (type: float), (- cdouble) (type: double), (cdouble * 10.175) (type: double), (UDFToDouble((-6432.0 * cfloat)) / UDFToDouble(cfloat)) (type: double), (- cfloat) (type: float), (cint % UDFToInteger(csmallint)) (type: int), (- cdouble) (type: double), (cdouble * (- cdouble)) (type: double)
@@ -1684,10 +1699,12 @@ STAGE PLANS:
                         key expressions: _col5 (type: smallint), _col1 (type: string), _col2 (type: double), _col3 (type: float), _col4 (type: bigint), _col6 (type: double), _col7 (type: int), _col8 (type: float), _col9 (type: double), _col10 (type: double), _col11 (type: double), _col12 (type: float), _col13 (type: int), _col14 (type: double), _col15 (type: double)
                         sort order: +++++++++++++++
                         Statistics: Num rows: 3868 Data size: 831633 Basic stats: COMPLETE Column stats: NONE
+                        TopN Hash Memory Usage: 0.1
                         value expressions: _col0 (type: timestamp)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Select Operator
                 expressions: VALUE._col0 (type: timestamp), KEY.reducesinkkey1 (type: string), KEY.reducesinkkey2 (type: double), KEY.reducesinkkey3 (type: float), KEY.reducesinkkey4 (type: bigint), KEY.reducesinkkey0 (type: smallint), KEY.reducesinkkey5 (type: double), KEY.reducesinkkey6 (type: int), KEY.reducesinkkey7 (type: float), KEY.reducesinkkey8 (type: double), KEY.reducesinkkey9 (type: double), KEY.reducesinkkey10 (type: double), KEY.reducesinkkey11 (type: float), KEY.reducesinkkey12 (type: int), KEY.reducesinkkey8 (type: double), KEY.reducesinkkey14 (type: double)
@@ -1700,8 +1717,8 @@ STAGE PLANS:
                     compressed: false
                     Statistics: Num rows: 45 Data size: 9675 Basic stats: COMPLETE Column stats: NONE
                     table:
-                        input format: org.apache.hadoop.mapred.TextInputFormat
-                        output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                        input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                        output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                         serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -1710,7 +1727,6 @@ STAGE PLANS:
       Processor Tree:
         ListSink
 
-WARNING: Comparing a bigint and a double may result in a loss of precision.
 PREHOOK: query: SELECT   ctimestamp1,
          cstring2,
          cdouble,
@@ -1871,6 +1887,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
         Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
@@ -1901,6 +1918,7 @@ STAGE PLANS:
                           Statistics: Num rows: 2503 Data size: 538153 Basic stats: COMPLETE Column stats: NONE
                           value expressions: _col1 (type: struct<count:bigint,sum:double,variance:double>), _col2 (type: bigint), _col3 (type: struct<count:bigint,sum:double,variance:double>), _col4 (type: bigint)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
             Execution mode: llap
             Reduce Operator Tree:
@@ -1911,18 +1929,19 @@ STAGE PLANS:
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4
                 Statistics: Num rows: 1251 Data size: 268968 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: smallint), (UDFToInteger(_col0) % -75) (type: int), _col1 (type: double), (-1.389 / UDFToDouble(_col0)) (type: double), _col2 (type: bigint), (UDFToDouble((UDFToInteger(_col0) % -75)) / UDFToDouble(_col2)) (type: double), (- (UDFToInteger(_col0) % -75)) (type: int), _col3 (type: double), (- (- (UDFToInteger(_col0) % -75))) (type: int), _col4 (type: bigint), (_col4 - -89010) (type: bigint)
+                  expressions: _col0 (type: smallint), (UDFToInteger(_col0) % -75) (type: int), _col1 (type: double), (-1.389 / CAST( _col0 AS decimal(5,0))) (type: decimal(19,18)), _col2 (type: bigint), (UDFToDouble((UDFToInteger(_col0) % -75)) / UDFToDouble(_col2)) (type: double), (- (UDFToInteger(_col0) % -75)) (type: int), _col3 (type: double), (- (- (UDFToInteger(_col0) % -75))) (type: int), _col4 (type: bigint), (_col4 - -89010) (type: bigint)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10
                   Statistics: Num rows: 1251 Data size: 268968 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
-                    key expressions: _col0 (type: smallint), _col1 (type: int), _col2 (type: double), _col3 (type: double), _col4 (type: bigint), _col5 (type: double), _col6 (type: int), _col7 (type: double), _col8 (type: int), _col9 (type: bigint), _col10 (type: bigint)
+                    key expressions: _col0 (type: smallint), _col1 (type: int), _col2 (type: double), _col3 (type: decimal(19,18)), _col4 (type: bigint), _col5 (type: double), _col6 (type: int), _col7 (type: double), _col8 (type: int), _col9 (type: bigint), _col10 (type: bigint)
                     sort order: +++++++++++
                     Statistics: Num rows: 1251 Data size: 268968 Basic stats: COMPLETE Column stats: NONE
+                    TopN Hash Memory Usage: 0.1
         Reducer 3 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Select Operator
-                expressions: KEY.reducesinkkey0 (type: smallint), KEY.reducesinkkey1 (type: int), KEY.reducesinkkey2 (type: double), KEY.reducesinkkey3 (type: double), KEY.reducesinkkey4 (type: bigint), KEY.reducesinkkey5 (type: double), KEY.reducesinkkey6 (type: int), KEY.reducesinkkey7 (type: double), KEY.reducesinkkey8 (type: int), KEY.reducesinkkey9 (type: bigint), KEY.reducesinkkey10 (type: bigint)
+                expressions: KEY.reducesinkkey0 (type: smallint), KEY.reducesinkkey1 (type: int), KEY.reducesinkkey2 (type: double), KEY.reducesinkkey3 (type: decimal(19,18)), KEY.reducesinkkey4 (type: bigint), KEY.reducesinkkey5 (type: double), KEY.reducesinkkey6 (type: int), KEY.reducesinkkey7 (type: double), KEY.reducesinkkey8 (type: int), KEY.reducesinkkey9 (type: bigint), KEY.reducesinkkey10 (type: bigint)
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10
                 Statistics: Num rows: 1251 Data size: 268968 Basic stats: COMPLETE Column stats: NONE
                 Limit
@@ -1932,8 +1951,8 @@ STAGE PLANS:
                     compressed: false
                     Statistics: Num rows: 20 Data size: 4300 Basic stats: COMPLETE Column stats: NONE
                     table:
-                        input format: org.apache.hadoop.mapred.TextInputFormat
-                        output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                        input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                        output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                         serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -1986,27 +2005,26 @@ LIMIT 20
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
--100   -25     0.0     0.01389 NULL    NULL    25      0.0     -25     1       89011
--113   -38     0.0     0.0122920353982300    NULL    NULL    38      0.0     -38     1       89011
+-100   -25     0.0     0.013890000000000000    NULL    NULL    25      0.0     -25     1       89011
+-113   -38     0.0     0.012292035398230088    NULL    NULL    38      0.0     -38     1       89011
 -118   -43     0.0     0.011771186440677966    NULL    NULL    43      0.0     -43     1       89011
 -165   -15     0.0     0.008418181818181818    NULL    NULL    15      0.0     -15     1       89011
 -168   -18     0.0     0.008267857142857143    NULL    NULL    18      0.0     -18     1       89011
--171   -21     0.0     0.00812280701754386     NULL    NULL    21      0.0     -21     1       89011
+-171   -21     0.0     0.008122807017543860    NULL    NULL    21      0.0     -21     1       89011
 -180   -30     0.0     0.007716666666666667    NULL    NULL    30      0.0     -30     1       89011
 -203   -53     0.0     0.006842364532019704    NULL    NULL    53      0.0     -53     1       89011
 -217   -67     0.0     0.006400921658986175    NULL    NULL    67      0.0     -67     1       89011
--220   -70     0.0     0.006313636363636363    NULL    NULL    70      0.0     -70     1       89011
+-220   -70     0.0     0.006313636363636364    NULL    NULL    70      0.0     -70     1       89011
 -257   -32     0.0     0.005404669260700389    NULL    NULL    32      0.0     -32     2       89012
--29    -29     0.0     0.04789655172413793     NULL    NULL    29      0.0     -29     1       89011
--42    -42     0.0     0.03307142857142857     NULL    NULL    42      0.0     -42     1       89011
--49    -49     0.0     0.028346938775510203    NULL    NULL    49      0.0     -49     1       89011
+-29    -29     0.0     0.047896551724137931    NULL    NULL    29      0.0     -29     1       89011
+-42    -42     0.0     0.033071428571428571    NULL    NULL    42      0.0     -42     1       89011
+-49    -49     0.0     0.028346938775510204    NULL    NULL    49      0.0     -49     1       89011
 -62    -62     0.0     0.022403225806451613    NULL    NULL    62      0.0     -62     1       89011
--75    0       0.0     0.018520000000000002    NULL    NULL    0       107.55555555555556      0       3       89013
--77    -2      0.0     0.0180389610389610    NULL    NULL    2       0.0     -2      1       89011
+-75    0       0.0     0.018520000000000000    NULL    NULL    0       107.55555555555556      0       3       89013
+-77    -2      0.0     0.018038961038961039    NULL    NULL    2       0.0     -2      1       89011
 -84    -9      0.0     0.016535714285714286    NULL    NULL    9       0.0     -9      1       89011
 -89    -14     0.0     0.015606741573033708    NULL    NULL    14      0.0     -14     1       89011
--95    -20     0.0     0.014621052631578948    NULL    NULL    20      0.0     -20     1       89011
-WARNING: Comparing a bigint and a double may result in a loss of precision.
+-95    -20     0.0     0.014621052631578947    NULL    NULL    20      0.0     -20     1       89011
 WARNING: Comparing a bigint and a double may result in a loss of precision.
 PREHOOK: query: -- TargetTypeClasses: Long, Double, Timestamp
 -- Functions: Var, Count, Sum, VarP, StDevP
@@ -2079,6 +2097,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
         Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
@@ -2090,7 +2109,7 @@ STAGE PLANS:
                   alias: alltypesorc
                   Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
-                    predicate: ((cdouble > 2563.58) and (((cbigint >= UDFToLong(cint)) and (UDFToInteger(csmallint) < cint) and (UDFToDouble(cfloat) < -5638.15)) or (2563.58 = UDFToDouble(ctinyint)) or ((cdouble <= UDFToDouble(cbigint)) and (-5638.15 > UDFToDouble(cbigint))))) (type: boolean)
+                    predicate: ((cdouble > 2563.58) and (((cbigint >= UDFToLong(cint)) and (UDFToInteger(csmallint) < cint) and (cfloat < -5638.15)) or (2563.58 = CAST( ctinyint AS decimal(6,2))) or ((cdouble <= UDFToDouble(cbigint)) and (-5638.15 > CAST( cbigint AS decimal(21,2)))))) (type: boolean)
                     Statistics: Num rows: 2654 Data size: 570619 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
                       expressions: cdouble (type: double), cfloat (type: float)
@@ -2109,6 +2128,7 @@ STAGE PLANS:
                           Statistics: Num rows: 2654 Data size: 570619 Basic stats: COMPLETE Column stats: NONE
                           value expressions: _col1 (type: struct<count:bigint,sum:double,variance:double>), _col2 (type: bigint), _col3 (type: double), _col4 (type: struct<count:bigint,sum:double,variance:double>), _col5 (type: struct<count:bigint,sum:double,variance:double>), _col6 (type: double)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
             Execution mode: llap
             Reduce Operator Tree:
@@ -2128,7 +2148,7 @@ STAGE PLANS:
                     Statistics: Num rows: 1327 Data size: 285309 Basic stats: COMPLETE Column stats: NONE
                     value expressions: _col1 (type: double), _col2 (type: double), _col3 (type: double), _col4 (type: bigint), _col5 (type: double), _col6 (type: double), _col7 (type: double), _col8 (type: double), _col9 (type: double), _col10 (type: double), _col11 (type: double), _col12 (type: double), _col13 (type: double), _col14 (type: double)
         Reducer 3 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Select Operator
                 expressions: KEY.reducesinkkey0 (type: double), VALUE._col0 (type: double), VALUE._col1 (type: double), VALUE._col2 (type: double), VALUE._col3 (type: bigint), VALUE._col4 (type: double), VALUE._col5 (type: double), VALUE._col6 (type: double), VALUE._col7 (type: double), VALUE._col8 (type: double), VALUE._col9 (type: double), VALUE._col10 (type: double), VALUE._col11 (type: double), VALUE._col12 (type: double), VALUE._col13 (type: double), VALUE._col12 (type: double)
@@ -2138,8 +2158,8 @@ STAGE PLANS:
                   compressed: false
                   Statistics: Num rows: 1327 Data size: 285309 Basic stats: COMPLETE Column stats: NONE
                   table:
-                      input format: org.apache.hadoop.mapred.TextInputFormat
-                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                       serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -2149,7 +2169,6 @@ STAGE PLANS:
         ListSink
 
 WARNING: Comparing a bigint and a double may result in a loss of precision.
-WARNING: Comparing a bigint and a double may result in a loss of precision.
 PREHOOK: query: SELECT   cdouble,
          VAR_SAMP(cdouble),
          (2563.58 * VAR_SAMP(cdouble)),
@@ -2335,6 +2354,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
         Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
@@ -2349,44 +2369,46 @@ STAGE PLANS:
                     predicate: ((UDFToDouble(ctimestamp1) <> 0.0) and (((-257 <> UDFToInteger(ctinyint)) and cboolean2 is not null and cstring1 regexp '.*ss' and (-3.0 < UDFToDouble(ctimestamp1))) or (UDFToDouble(ctimestamp2) = -5.0) or ((UDFToDouble(ctimestamp1) < 0.0) and (cstring2 like '%b%')) or (cdouble = UDFToDouble(cint)) or (cboolean1 is null and (cfloat < UDFToFloat(cint))))) (type: boolean)
                     Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
-                      expressions: cstring1 (type: string), ctimestamp1 (type: timestamp), cint (type: int), csmallint (type: smallint), ctinyint (type: tinyint), cfloat (type: float), cdouble (type: double)
-                      outputColumnNames: cstring1, ctimestamp1, cint, csmallint, ctinyint, cfloat, cdouble
+                      expressions: ctimestamp1 (type: timestamp), cstring1 (type: string), cint (type: int), csmallint (type: smallint), ctinyint (type: tinyint), cfloat (type: float), cdouble (type: double)
+                      outputColumnNames: ctimestamp1, cstring1, cint, csmallint, ctinyint, cfloat, cdouble
                       Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                       Group By Operator
                         aggregations: stddev_pop(cint), avg(csmallint), count(), min(ctinyint), var_samp(csmallint), var_pop(cfloat), avg(cint), var_samp(cfloat), avg(cfloat), min(cdouble), var_pop(csmallint), stddev_pop(ctinyint), sum(cint)
-                        keys: cstring1 (type: string), ctimestamp1 (type: timestamp)
+                        keys: ctimestamp1 (type: timestamp), cstring1 (type: string)
                         mode: hash
                         outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14
                         Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                         Reduce Output Operator
-                          key expressions: _col0 (type: string), _col1 (type: timestamp)
+                          key expressions: _col0 (type: timestamp), _col1 (type: string)
                           sort order: ++
-                          Map-reduce partition columns: _col0 (type: string), _col1 (type: timestamp)
+                          Map-reduce partition columns: _col0 (type: timestamp), _col1 (type: string)
                           Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                           value expressions: _col2 (type: struct<count:bigint,sum:double,variance:double>), _col3 (type: struct<count:bigint,sum:double,input:smallint>), _col4 (type: bigint), _col5 (type: tinyint), _col6 (type: struct<count:bigint,sum:double,variance:double>), _col7 (type: struct<count:bigint,sum:double,variance:double>), _col8 (type: struct<count:bigint,sum:double,input:int>), _col9 (type: struct<count:bigint,sum:double,variance:double>), _col10 (type: struct<count:bigint,sum:double,input:float>), _col11 (type: double), _col12 (type: struct<count:bigint,sum:double,variance:double>), _col13 (type: struct<count:bigint,sum:double,variance:double>), _col14 (type: bigint)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
             Execution mode: llap
             Reduce Operator Tree:
               Group By Operator
                 aggregations: stddev_pop(VALUE._col0), avg(VALUE._col1), count(VALUE._col2), min(VALUE._col3), var_samp(VALUE._col4), var_pop(VALUE._col5), avg(VALUE._col6), var_samp(VALUE._col7), avg(VALUE._col8), min(VALUE._col9), var_pop(VALUE._col10), stddev_pop(VALUE._col11), sum(VALUE._col12)
-                keys: KEY._col0 (type: string), KEY._col1 (type: timestamp)
+                keys: KEY._col0 (type: timestamp), KEY._col1 (type: string)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14
                 Statistics: Num rows: 6144 Data size: 1320982 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col1 (type: timestamp), _col0 (type: string), _col2 (type: double), (_col2 * 10.175) (type: double), (- _col2) (type: double), _col3 (type: double), (- _col2) (type: double), (-26.28 - _col2) (type: double), _col4 (type: bigint), (- _col4) (type: bigint), ((-26.28 - _col2) * (- _col2)) (type: double), _col5 (type: tinyint), (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4))) (type: double), (- (_col2 * 10.175)) (type: double), _col6 (type: double), (_col6 + (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4)))) (type: double), (- (- _col2)) (type: double), (UDFToDouble((- _col4)) / _col2) (type: double), _col7 (type: double), (10.175 / _col3) (type: double), _col8 (type: double), _col9 (type: double), ((_col6 + (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4)))) - (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4)))) (type: double), (- (- (_col2 * 10.175))) (type: double), _col10 (type: double), (((_col6 + (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4)))) - (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4)))) * 10.175) (type: double), (10.175 % (10.175 / _col3)) (type: double), (- _col5) (type: tinyint), _col11 (type: double), _col12 (type: double), (- ((-26.28 - _col2) * (- _col2))) (type: double), ((- _col2) % _col10) (type: double), (-26.28 / UDFToDouble((- _col5))) (type: double), _col13 (type: double), _col14 (type: bigint), ((_col6 + (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4)))) / _col7) (type: double), (- (- _col4)) (type: bigint), _col4 (type: bigint), ((_col6 + (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4)))) % -26.28) (type: double)
+                  expressions: _col0 (type: timestamp), _col1 (type: string), _col2 (type: double), (_col2 * 10.175) (type: double), (- _col2) (type: double), _col3 (type: double), (- _col2) (type: double), (-26.28 - _col2) (type: double), _col4 (type: bigint), (- _col4) (type: bigint), ((-26.28 - _col2) * (- _col2)) (type: double), _col5 (type: tinyint), (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4))) (type: double), (- (_col2 * 10.175)) (type: double), _col6 (type: double), (_col6 + (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4)))) (type: double), (- (- _col2)) (type: double), (UDFToDouble((- _col4)) / _col2) (type: double), _col7 (type: double), (10.175 / _col3) (type: double), _col8 (type: double), _col9 (type: double), ((_col6 + (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4)))) - (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4)))) (type: double), (- (- (_col2 * 10.175))) (type: double), _col10 (type: double), (((_col6 + (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4)))) - (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4)))) * 10.175) (type: double), (10.175 % (10.175 / _col3)) (type: double), (- _col5) (type: tinyint), _col11 (type: double), _col12 (type: double), (- ((-26.28 - _col2) * (- _col2))) (type: double), ((- _col2) % _col10) (type: double), (-26.28 / CAST( (- _col5) AS decimal(3,0))) (type: decimal(20,18)), _col13 (type: double), _col14 (type: bigint), ((_col6 + (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4)))) / _col7) (type: double), (- (- _col4)) (type: bigint), _col4 (type: bigint), ((_col6 + (((-26.28 - _col2) * (- _col2)) * UDFToDouble((- _col4)))) % -26.28) (type: double)
                   outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24, _col25, _col26, _col27, _col28, _col29, _col30, _col31, _col32, _col33, _col34, _col35, _col36, _col37, _col38
                   Statistics: Num rows: 6144 Data size: 1320982 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
-                    key expressions: _col0 (type: timestamp), _col1 (type: string), _col2 (type: double), _col3 (type: double), _col4 (type: double), _col5 (type: double), _col6 (type: double), _col7 (type: double), _col8 (type: bigint), _col9 (type: bigint), _col10 (type: double), _col11 (type: tinyint), _col12 (type: double), _col13 (type: double), _col14 (type: double), _col15 (type: double), _col16 (type: double), _col17 (type: double), _col18 (type: double), _col19 (type: double), _col20 (type: double), _col21 (type: double), _col22 (type: double), _col23 (type: double), _col24 (type: double), _col25 (type: double), _col26 (type: double), _col27 (type: tinyint), _col28 (type: double), _col29 (type: double), _col30 (type: double), _col31 (type: double), _col32 (type: double), _col33 (type: double), _col34 (type: bigint), _col35 (type: double), _col36 (type: bigint), _col37 (type: bigint), _col38 (type: double)
+                    key expressions: _col0 (type: timestamp), _col1 (type: string), _col2 (type: double), _col3 (type: double), _col4 (type: double), _col5 (type: double), _col6 (type: double), _col7 (type: double), _col8 (type: bigint), _col9 (type: bigint), _col10 (type: double), _col11 (type: tinyint), _col12 (type: double), _col13 (type: double), _col14 (type: double), _col15 (type: double), _col16 (type: double), _col17 (type: double), _col18 (type: double), _col19 (type: double), _col20 (type: double), _col21 (type: double), _col22 (type: double), _col23 (type: double), _col24 (type: double), _col25 (type: double), _col26 (type: double), _col27 (type: tinyint), _col28 (type: double), _col29 (type: double), _col30 (type: double), _col31 (type: double), _col32 (type: decimal(20,18)), _col33 (type: double), _col34 (type: bigint), _col35 (type: double), _col36 (type: bigint), _col37 (type: bigint), _col38 (type: double)
                     sort order: +++++++++++++++++++++++++++++++++++++++
                     Statistics: Num rows: 6144 Data size: 1320982 Basic stats: COMPLETE Column stats: NONE
+                    TopN Hash Memory Usage: 0.1
         Reducer 3 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Select Operator
-                expressions: KEY.reducesinkkey0 (type: timestamp), KEY.reducesinkkey1 (type: string), KEY.reducesinkkey2 (type: double), KEY.reducesinkkey3 (type: double), KEY.reducesinkkey4 (type: double), KEY.reducesinkkey5 (type: double), KEY.reducesinkkey4 (type: double), KEY.reducesinkkey7 (type: double), KEY.reducesinkkey8 (type: bigint), KEY.reducesinkkey9 (type: bigint), KEY.reducesinkkey10 (type: double), KEY.reducesinkkey11 (type: tinyint), KEY.reducesinkkey12 (type: double), KEY.reducesinkkey13 (type: double), KEY.reducesinkkey14 (type: double), KEY.reducesinkkey15 (type: double), KEY.reducesinkkey16 (type: double), KEY.reducesinkkey17 (type: double), KEY.reducesinkkey18 (type: double), KEY.reducesinkkey19 (type: double), KEY.reducesinkkey20 (type: double), KEY.reducesinkkey21 (type: double), KEY.reducesinkkey22 (type: double), KEY.reducesinkkey23 (type: double), KEY.reducesinkkey24 (type: double), KEY.reducesinkkey25 (type: double), KEY.reducesinkkey26 (type: double), KEY.reducesinkkey27 (type: tinyint), KEY.reducesinkkey28 (type: double), KEY.reducesinkkey29 (type: double), KEY.reducesinkkey30 (type: double), KEY.reducesinkkey31 (type: double), KEY.reducesinkkey32 (type: double), KEY.reducesinkkey33 (type: double), KEY.reducesinkkey34 (type: bigint), KEY.reducesinkkey35 (type: double), KEY.reducesinkkey36 (type: bigint), KEY.reducesinkkey8 (type: bigint), KEY.reducesinkkey38 (type: double)
+                expressions: KEY.reducesinkkey0 (type: timestamp), KEY.reducesinkkey1 (type: string), KEY.reducesinkkey2 (type: double), KEY.reducesinkkey3 (type: double), KEY.reducesinkkey4 (type: double), KEY.reducesinkkey5 (type: double), KEY.reducesinkkey4 (type: double), KEY.reducesinkkey7 (type: double), KEY.reducesinkkey8 (type: bigint), KEY.reducesinkkey9 (type: bigint), KEY.reducesinkkey10 (type: double), KEY.reducesinkkey11 (type: tinyint), KEY.reducesinkkey12 (type: double), KEY.reducesinkkey13 (type: double), KEY.reducesinkkey14 (type: double), KEY.reducesinkkey15 (type: double), KEY.reducesinkkey16 (type: double), KEY.reducesinkkey17 (type: double), KEY.reducesinkkey18 (type: double), KEY.reducesinkkey19 (type: double), KEY.reducesinkkey20 (type: double), KEY.reducesinkkey21 (type: double), KEY.reducesinkkey22 (type: double), KEY.reducesinkkey23 (type: double), KEY.reducesinkkey24 (type: double), KEY.reducesinkkey25 (type: double), KEY.reducesinkkey26 (type: double), KEY.reducesinkkey27 (type: tinyint), KEY.reducesinkkey28 (type: double), KEY.reducesinkkey29 (type: double), KEY.reducesinkkey30 (type: double), KEY.reducesinkkey31 (type: double), KEY.reducesinkkey32 (type: decimal(20,18)), KEY.reducesinkkey33 (type: double), KEY.reducesinkkey34 (type: bigint), KEY.reducesinkkey35 (type: double), KEY.reducesinkkey36 (type: bigint), KEY.reducesinkkey8 (type: bigint), KEY.reducesinkkey38 (type: double)
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24, _col25, _col26, _col27, _col28, _col29, _col30, _col31, _col32, _col33, _col34, _col35, _col36, _col37, _col38
                 Statistics: Num rows: 6144 Data size: 1320982 Basic stats: COMPLETE Column stats: NONE
                 Limit
@@ -2396,8 +2418,8 @@ STAGE PLANS:
                     compressed: false
                     Statistics: Num rows: 50 Data size: 10750 Basic stats: COMPLETE Column stats: NONE
                     table:
-                        input format: org.apache.hadoop.mapred.TextInputFormat
-                        output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                        input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                        output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                         serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -2520,57 +2542,56 @@ LIMIT 50
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
-1969-12-31 15:59:43.773        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -24     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -24.0   NULL    0.0     24      -200.0  0.0     NULL    NULL    -1.095  0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:43.783        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -11     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -11.0   NULL    0.0     11      -200.0  0.0     NULL    NULL    -2.389090909090909      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:43.874        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    -8      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    -8.0    NULL    0.001413979988882123    8       -7196.0 0.0     NULL    NULL    -3.285  0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:43.904        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    7       NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    7.0     NULL    0.0     -7      -200.0  0.0     NULL    NULL    3.7542857142857144      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:43.919        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    -21     NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    -21.0   NULL    6.522017819364598E-4    21      15601.0 0.0     NULL    NULL    -1.2514285714285716     0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:43.995        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    31      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    31.0    NULL    0.001413979988882123    -31     -7196.0 0.0     NULL    NULL    0.847741935483871       0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.07 NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    -9      NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    -9.0    NULL    6.522017819364598E-4    9       15601.0 0.0     NULL    NULL    -2.92   0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.081        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    61      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    61.0    NULL    0.001413979988882123    -61     -7196.0 0.0     NULL    NULL    0.4308196721311476      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.179        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    34      NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    34.0    NULL    6.522017819364598E-4    -34     15601.0 0.0     NULL    NULL    0.7729411764705882      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.286        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    16      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    16.0    NULL    0.001413979988882123    -16     -7196.0 0.0     NULL    NULL    1.6425  0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.291        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -32     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -32.0   NULL    0.0     32      -200.0  0.0     NULL    NULL    -0.82125        0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.394        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    31      NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    31.0    NULL    6.522017819364598E-4    -31     15601.0 0.0     NULL    NULL    0.847741935483871       0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.448        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    22      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    22.0    NULL    0.0     -22     -200.0  0.0     NULL    NULL    1.1945454545454546      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.455        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    -25     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    -25.0   NULL    0.001413979988882123    25      -7196.0 0.0     NULL    NULL    -1.0512000000000001     0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.477        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    -42     NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    -42.0   NULL    6.522017819364598E-4    42      15601.0 0.0     NULL    NULL    -0.6257142857142858     0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.549        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    59      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    59.0    NULL    0.0     -59     -200.0  0.0     NULL    NULL    0.4454237288135593    0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.55 NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    24      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    24.0    NULL    0.0     -24     -200.0  0.0     NULL    NULL    1.095   0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.559        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -34     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -34.0   NULL    0.0     34      -200.0  0.0     NULL    NULL    -0.7729411764705882     0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.568        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    22      NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    22.0    NULL    6.522017819364598E-4    -22     15601.0 0.0     NULL    NULL    1.1945454545454546      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.571        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    -42     NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    -42.0   NULL    6.522017819364598E-4    42      15601.0 0.0     NULL    NULL    -0.6257142857142858     0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.646        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    54      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    54.0    NULL    0.001413979988882123    -54     -7196.0 0.0     NULL    NULL    0.4866666666666667      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.708        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    -22     NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    -22.0   NULL    6.522017819364598E-4    22      15601.0 0.0     NULL    NULL    -1.1945454545454546     0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:44.782        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    7       NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    7.0     NULL    6.522017819364598E-4    -7      15601.0 0.0     NULL    NULL    3.7542857142857144      0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:43.773        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -24     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -24.0   NULL    0.0     24      -200.0  0.0     NULL    NULL    -1.095000000000000000   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:43.783        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -11     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -11.0   NULL    0.0     11      -200.0  0.0     NULL    NULL    -2.389090909090909091   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:43.874        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    -8      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    -8.0    NULL    0.001413979988882123    8       -7196.0 0.0     NULL    NULL    -3.285000000000000000   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:43.904        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    7       NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    7.0     NULL    0.0     -7      -200.0  0.0     NULL    NULL    3.754285714285714286    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:43.919        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    -21     NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    -21.0   NULL    6.522017819364598E-4    21      15601.0 0.0     NULL    NULL    -1.251428571428571429   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:43.995        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    31      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    31.0    NULL    0.001413979988882123    -31     -7196.0 0.0     NULL    NULL    0.847741935483870968    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.07 NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    -9      NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    -9.0    NULL    6.522017819364598E-4    9       15601.0 0.0     NULL    NULL    -2.920000000000000000   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.081        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    61      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    61.0    NULL    0.001413979988882123    -61     -7196.0 0.0     NULL    NULL    0.430819672131147541    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.179        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    34      NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    34.0    NULL    6.522017819364598E-4    -34     15601.0 0.0     NULL    NULL    0.772941176470588235    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.286        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    16      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    16.0    NULL    0.001413979988882123    -16     -7196.0 0.0     NULL    NULL    1.642500000000000000    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.291        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -32     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -32.0   NULL    0.0     32      -200.0  0.0     NULL    NULL    -0.821250000000000000   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.394        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    31      NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    31.0    NULL    6.522017819364598E-4    -31     15601.0 0.0     NULL    NULL    0.847741935483870968    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.448        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    22      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    22.0    NULL    0.0     -22     -200.0  0.0     NULL    NULL    1.194545454545454545    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.455        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    -25     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    -25.0   NULL    0.001413979988882123    25      -7196.0 0.0     NULL    NULL    -1.051200000000000000   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.477        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    -42     NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    -42.0   NULL    6.522017819364598E-4    42      15601.0 0.0     NULL    NULL    -0.625714285714285714   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.549        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    59      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    59.0    NULL    0.0     -59     -200.0  0.0     NULL    NULL    0.445423728813559322    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.55 NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    24      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    24.0    NULL    0.0     -24     -200.0  0.0     NULL    NULL    1.095000000000000000    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.559        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -34     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -34.0   NULL    0.0     34      -200.0  0.0     NULL    NULL    -0.772941176470588235   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.568        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    22      NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    22.0    NULL    6.522017819364598E-4    -22     15601.0 0.0     NULL    NULL    1.194545454545454545    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.571        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    -42     NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    -42.0   NULL    6.522017819364598E-4    42      15601.0 0.0     NULL    NULL    -0.625714285714285714   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.646        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    54      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    54.0    NULL    0.001413979988882123    -54     -7196.0 0.0     NULL    NULL    0.486666666666666667    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.708        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    -22     NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    -22.0   NULL    6.522017819364598E-4    22      15601.0 0.0     NULL    NULL    -1.194545454545454545   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:44.782        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    7       NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    7.0     NULL    6.522017819364598E-4    -7      15601.0 0.0     NULL    NULL    3.754285714285714286    0.0     NULL    NULL    1       1       NULL
 1969-12-31 15:59:44.904        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    0       NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    0.0     NULL    0.0     0       -200.0  0.0     NULL    NULL    NULL    0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.137        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -32     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -32.0   NULL    0.0     32      -200.0  0.0     NULL    NULL    -0.82125        0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.153        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    42      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    42.0    NULL    0.0     -42     -200.0  0.0     NULL    NULL    0.6257142857142858      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.169        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -60     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -60.0   NULL    0.0     60      -200.0  0.0     NULL    NULL    -0.438  0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.198        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    47      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    47.0    NULL    0.0     -47     -200.0  0.0     NULL    NULL    0.5591489361702128      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.314        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    56      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    56.0    NULL    0.0     -56     -200.0  0.0     NULL    NULL    0.4692857142857143      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.322        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -15     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -15.0   NULL    0.0     15      -200.0  0.0     NULL    NULL    -1.752  0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.39 NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -16     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -16.0   NULL    0.0     16      -200.0  0.0     NULL    NULL    -1.6425 0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.427        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -7      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -7.0    NULL    0.0     7       -200.0  0.0     NULL    NULL    -3.7542857142857144     0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.572        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    32      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    32.0    NULL    0.001413979988882123    -32     -7196.0 0.0     NULL    NULL    0.82125 0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.644        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -52     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -52.0   NULL    0.0     52      -200.0  0.0     NULL    NULL    -0.5053846153846154     0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.764        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    54      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    54.0    NULL    0.001413979988882123    -54     -7196.0 0.0     NULL    NULL    0.4866666666666667      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.816        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    7       NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    7.0     NULL    6.522017819364598E-4    -7      15601.0 0.0     NULL    NULL    3.7542857142857144      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.932        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    -51     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    -51.0   NULL    0.001413979988882123    51      -7196.0 0.0     NULL    NULL    -0.5152941176470588     0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.947        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    -59     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    -59.0   NULL    0.001413979988882123    59      -7196.0 0.0     NULL    NULL    -0.44542372881355935    0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:45.978        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    -52     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    -52.0   NULL    0.001413979988882123    52      -7196.0 0.0     NULL    NULL    -0.5053846153846154     0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:46.015        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    25      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    25.0    NULL    0.001413979988882123    -25     -7196.0 0.0     NULL    NULL    1.0512000000000001      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:46.022        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    19      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    19.0    NULL    0.0     -19     -200.0  0.0     NULL    NULL    1.3831578947368421      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:46.114        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    -3      NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    -3.0    NULL    6.522017819364598E-4    3       15601.0 0.0     NULL    NULL    -8.76   0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:46.38 NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    28      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    28.0    NULL    0.0     -28     -200.0  0.0     NULL    NULL    0.9385714285714286      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:46.387        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    3       NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    3.0     NULL    0.001413979988882123    -3      -7196.0 0.0     NULL    NULL    8.76    0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:46.52 NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    8       NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    8.0     NULL    0.0     -8      -200.0  0.0     NULL    NULL    3.285   0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:46.762        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    12      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    12.0    NULL    0.0     -12     -200.0  0.0     NULL    NULL    2.19    0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:46.775        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    4       NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    4.0     NULL    0.001413979988882123    -4      -7196.0 0.0     NULL    NULL    6.57    0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:46.82 NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    -46     NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    -46.0   NULL    6.522017819364598E-4    46      15601.0 0.0     NULL    NULL    -0.571304347826087      0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:46.847        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    -26     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    -26.0   NULL    0.001413979988882123    26      -7196.0 0.0     NULL    NULL    -1.0107692307692309     0.0     NULL    NULL    1       1       NULL
-1969-12-31 15:59:46.915        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -25     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -25.0   NULL    0.0     25      -200.0  0.0     NULL    NULL    -1.0512000000000001     0.0     NULL    NULL    1       1       NULL
-WARNING: Comparing a bigint and a double may result in a loss of precision.
+1969-12-31 15:59:45.137        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -32     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -32.0   NULL    0.0     32      -200.0  0.0     NULL    NULL    -0.821250000000000000   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:45.153        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    42      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    42.0    NULL    0.0     -42     -200.0  0.0     NULL    NULL    0.625714285714285714    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:45.169        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -60     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -60.0   NULL    0.0     60      -200.0  0.0     NULL    NULL    -0.438000000000000000   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:45.198        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    47      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    47.0    NULL    0.0     -47     -200.0  0.0     NULL    NULL    0.559148936170212766    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:45.314        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    56      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    56.0    NULL    0.0     -56     -200.0  0.0     NULL    NULL    0.469285714285714286    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:45.322        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -15     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -15.0   NULL    0.0     15      -200.0  0.0     NULL    NULL    -1.752000000000000000   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:45.39 NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -16     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -16.0   NULL    0.0     16      -200.0  0.0     NULL    NULL    -1.642500000000000000   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:45.427        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -7      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -7.0    NULL    0.0     7       -200.0  0.0     NULL    NULL    -3.754285714285714286   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:45.572        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    32      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    32.0    NULL    0.001413979988882123    -32     -7196.0 0.0     NULL    NULL    0.821250000000000000    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:45.644        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -52     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -52.0   NULL    0.0     52      -200.0  0.0     NULL    NULL    -0.505384615384615385   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:45.764        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    54      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    54.0    NULL    0.001413979988882123    -54     -7196.0 0.0     NULL    NULL    0.486666666666666667    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:45.816        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    7       NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    7.0     NULL    6.522017819364598E-4    -7      15601.0 0.0     NULL    NULL    3.754285714285714286    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:45.932        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    -51     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    -51.0   NULL    0.001413979988882123    51      -7196.0 0.0     NULL    NULL    -0.515294117647058824   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:45.947        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    -59     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    -59.0   NULL    0.001413979988882123    59      -7196.0 0.0     NULL    NULL    -0.445423728813559322   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:45.978        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    -52     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    -52.0   NULL    0.001413979988882123    52      -7196.0 0.0     NULL    NULL    -0.505384615384615385   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:46.015        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    25      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    25.0    NULL    0.001413979988882123    -25     -7196.0 0.0     NULL    NULL    1.051200000000000000    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:46.022        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    19      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    19.0    NULL    0.0     -19     -200.0  0.0     NULL    NULL    1.383157894736842105    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:46.114        NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    -3      NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    -3.0    NULL    6.522017819364598E-4    3       15601.0 0.0     NULL    NULL    -8.760000000000000000   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:46.38 NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    28      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    28.0    NULL    0.0     -28     -200.0  0.0     NULL    NULL    0.938571428571428571    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:46.387        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    3       NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    3.0     NULL    0.001413979988882123    -3      -7196.0 0.0     NULL    NULL    8.760000000000000000    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:46.52 NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    8       NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    8.0     NULL    0.0     -8      -200.0  0.0     NULL    NULL    3.285000000000000000    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:46.762        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    12      NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    12.0    NULL    0.0     -12     -200.0  0.0     NULL    NULL    2.190000000000000000    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:46.775        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    4       NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    4.0     NULL    0.001413979988882123    -4      -7196.0 0.0     NULL    NULL    6.570000000000000000    0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:46.82 NULL    NULL    NULL    NULL    15601.0 NULL    NULL    1       -1      NULL    -46     NULL    NULL    0.0     NULL    NULL    NULL    0.0     6.522017819370554E-4    NULL    0.0     NULL    NULL    -46.0   NULL    6.522017819364598E-4    46      15601.0 0.0     NULL    NULL    -0.571304347826086957   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:46.847        NULL    NULL    NULL    NULL    -7196.0 NULL    NULL    1       -1      NULL    -26     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.0014139799888827128  NULL    0.0     NULL    NULL    -26.0   NULL    0.001413979988882123    26      -7196.0 0.0     NULL    NULL    -1.010769230769230769   0.0     NULL    NULL    1       1       NULL
+1969-12-31 15:59:46.915        NULL    NULL    NULL    NULL    -200.0  NULL    NULL    1       -1      NULL    -25     NULL    NULL    0.0     NULL    NULL    NULL    0.0     -0.050875000000000004   NULL    0.0     NULL    NULL    -25.0   NULL    0.0     25      -200.0  0.0     NULL    NULL    -1.051200000000000000   0.0     NULL    NULL    1       1       NULL
 PREHOOK: query: -- TargetTypeClasses: Double, Long, String, Timestamp, Bool
 -- Functions: Max, Sum, Var, Avg, Min, VarP, StDev, StDevP
 -- ArithmeticOps: Divide, Subtract, Remainder, Add, Multiply
@@ -2668,6 +2689,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
         Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
@@ -2679,25 +2701,26 @@ STAGE PLANS:
                   alias: alltypesorc
                   Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
-                    predicate: (cboolean1 is not null and (((cdouble < UDFToDouble(csmallint)) and (cboolean2 = cboolean1) and (UDFToDouble(cbigint) <= -863.257)) or ((cint >= -257) and cstring1 is not null and (cboolean1 >= 1)) or cstring2 regexp 'b' or ((csmallint >= UDFToShort(ctinyint)) and ctimestamp2 is null))) (type: boolean)
-                    Statistics: Num rows: 4778 Data size: 1027287 Basic stats: COMPLETE Column stats: NONE
+                    predicate: ((((cdouble < UDFToDouble(csmallint)) and (cboolean2 = cboolean1) and (CAST( cbigint AS decimal(22,3)) <= -863.257)) or ((cint >= -257) and cstring1 is not null and (cboolean1 >= 1)) or cstring2 regexp 'b' or ((csmallint >= UDFToShort(ctinyint)) and ctimestamp2 is null)) and cboolean1 is not null) (type: boolean)
+                    Statistics: Num rows: 10239 Data size: 2201421 Basic stats: COMPLETE Column stats: NONE
                     Select Operator
                       expressions: cboolean1 (type: boolean), cfloat (type: float), cbigint (type: bigint), cint (type: int), cdouble (type: double), ctinyint (type: tinyint), csmallint (type: smallint)
                       outputColumnNames: cboolean1, cfloat, cbigint, cint, cdouble, ctinyint, csmallint
-                      Statistics: Num rows: 4778 Data size: 1027287 Basic stats: COMPLETE Column stats: NONE
+                      Statistics: Num rows: 10239 Data size: 2201421 Basic stats: COMPLETE Column stats: NONE
                       Group By Operator
                         aggregations: max(cfloat), sum(cbigint), var_samp(cint), avg(cdouble), min(cbigint), var_pop(cbigint), sum(cint), stddev_samp(ctinyint), stddev_pop(csmallint), avg(cint)
                         keys: cboolean1 (type: boolean)
                         mode: hash
                         outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10
-                        Statistics: Num rows: 4778 Data size: 1027287 Basic stats: COMPLETE Column stats: NONE
+                        Statistics: Num rows: 10239 Data size: 2201421 Basic stats: COMPLETE Column stats: NONE
                         Reduce Output Operator
                           key expressions: _col0 (type: boolean)
                           sort order: +
                           Map-reduce partition columns: _col0 (type: boolean)
-                          Statistics: Num rows: 4778 Data size: 1027287 Basic stats: COMPLETE Column stats: NONE
+                          Statistics: Num rows: 10239 Data size: 2201421 Basic stats: COMPLETE Column stats: NONE
                           value expressions: _col1 (type: float), _col2 (type: bigint), _col3 (type: struct<count:bigint,sum:double,variance:double>), _col4 (type: struct<count:bigint,sum:double,input:double>), _col5 (type: bigint), _col6 (type: struct<count:bigint,sum:double,variance:double>), _col7 (type: bigint), _col8 (type: struct<count:bigint,sum:double,variance:double>), _col9 (type: struct<count:bigint,sum:double,variance:double>), _col10 (type: struct<count:bigint,sum:double,input:int>)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
             Execution mode: llap
             Reduce Operator Tree:
@@ -2706,29 +2729,29 @@ STAGE PLANS:
                 keys: KEY._col0 (type: boolean)
                 mode: mergepartial
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10
-                Statistics: Num rows: 2389 Data size: 513643 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 5119 Data size: 1100602 Basic stats: COMPLETE Column stats: NONE
                 Select Operator
-                  expressions: _col0 (type: boolean), _col1 (type: float), ((UDFToDouble(_col2) - 10.175) + _col3) (type: double), _col5 (type: bigint), _col6 (type: double), (- (10.175 + UDFToDouble((- _col1)))) (type: double), (79.553 / _col6) (type: double), (_col3 % (79.553 / _col6)) (type: double), _col7 (type: bigint), _col8 (type: double), (-1.389 * UDFToDouble(_col5)) (type: double), (- _col1) (type: float), (UDFToDouble(_col7) - (-1.389 * UDFToDouble(_col5))) (type: double), _col9 (type: double), (- (UDFToDouble(_col7) - (-1.389 * UDFToDouble(_col5)))) (type: double), _col10 (type: double), (- _col10) (type: double), (_col10 * UDFToDouble(_col7)) (type: double), (-26.28 / UDFToDouble(_col1)) (type: double), _col2 (type: bigint), (UDFToDouble(_col2) - 10.175) (type: double), _col3 (type: double), (_col3 % UDFToDouble(_col1)) (type: double), (10.175 + UDFToDouble((- _col1))) (type: double), _col4 (type: double)
+                  expressions: _col0 (type: boolean), _col1 (type: float), (UDFToDouble((CAST( _col2 AS decimal(19,0)) - 10.175)) + _col3) (type: double), _col5 (type: bigint), _col6 (type: double), (- (10.175 + (- _col1))) (type: float), (79.553 / _col6) (type: double), (_col3 % (79.553 / _col6)) (type: double), _col7 (type: bigint), _col8 (type: double), (-1.389 * CAST( _col5 AS decimal(19,0))) (type: decimal(24,3)), (- _col1) (type: float), (CAST( _col7 AS decimal(19,0)) - (-1.389 * CAST( _col5 AS decimal(19,0)))) (type: decimal(25,3)), _col9 (type: double), (- (CAST( _col7 AS decimal(19,0)) - (-1.389 * CAST( _col5 AS decimal(19,0))))) (type: decimal(25,3)), _col10 (type: double), (- _col10) (type: double), (_col10 * UDFToDouble(_col7)) (type: double), (-26.28 / UDFToDouble(_col1)) (type: double), _col2 (type: bigint), (CAST( _col2 AS decimal(19,0)) - 10.175) (type: decimal(23,3)), _col3 (type: double), (_col3 % UDFToDouble(_col1)) (type: double), (10.175 + (- _col1)) (type: float), _col4 (type: double)
                   outputColumnNames: _col0, _col1, _col10, _col11, _col12, _col13, _col14, _col15, _col17, _col18, _col19, _col2, _col20, _col21, _col22, _col23, _col24, _col25, _col3, _col4, _col5, _col6, _col7, _col8, _col9
-                  Statistics: Num rows: 2389 Data size: 513643 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 5119 Data size: 1100602 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col0 (type: boolean)
                     sort order: +
-                    Statistics: Num rows: 2389 Data size: 513643 Basic stats: COMPLETE Column stats: NONE
-                    value expressions: _col1 (type: float), _col2 (type: float), _col3 (type: double), _col4 (type: bigint), _col5 (type: double), _col6 (type: double), _col7 (type: double), _col8 (type: double), _col9 (type: double), _col10 (type: double), _col11 (type: bigint), _col12 (type: double), _col13 (type: double), _col14 (type: double), _col15 (type: double), _col17 (type: bigint), _col18 (type: double), _col19 (type: double), _col20 (type: double), _col21 (type: double), _col22 (type: double), _col23 (type: double), _col24 (type: double), _col25 (type: double)
+                    Statistics: Num rows: 5119 Data size: 1100602 Basic stats: COMPLETE Column stats: NONE
+                    value expressions: _col1 (type: float), _col2 (type: float), _col3 (type: double), _col4 (type: bigint), _col5 (type: decimal(23,3)), _col6 (type: double), _col7 (type: double), _col8 (type: float), _col9 (type: double), _col10 (type: double), _col11 (type: bigint), _col12 (type: double), _col13 (type: float), _col14 (type: double), _col15 (type: double), _col17 (type: bigint), _col18 (type: double), _col19 (type: decimal(24,3)), _col20 (type: decimal(25,3)), _col21 (type: double), _col22 (type: decimal(25,3)), _col23 (type: double), _col24 (type: double), _col25 (type: double)
         Reducer 3 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Select Operator
-                expressions: KEY.reducesinkkey0 (type: boolean), VALUE._col0 (type: float), VALUE._col1 (type: float), VALUE._col2 (type: double), VALUE._col3 (type: bigint), VALUE._col4 (type: double), VALUE._col5 (type: double), VALUE._col6 (type: double), VALUE._col7 (type: double), VALUE._col8 (type: double), VALUE._col9 (type: double), VALUE._col10 (type: bigint), VALUE._col11 (type: double), VALUE._col12 (type: double), VALUE._col13 (type: double), VALUE._col14 (type: double), VALUE._col12 (type: double), VALUE._col15 (type: bigint), VALUE._col16 (type: double), VALUE._col17 (type: double), VALUE._col18 (type: double), VALUE._col19 (type: double), VALUE._col20 (type: double), VALUE._col21 (type: double), VALUE._col22 (type: double), VALUE._col23 (type: double)
+                expressions: KEY.reducesinkkey0 (type: boolean), VALUE._col0 (type: float), VALUE._col1 (type: float), VALUE._col2 (type: double), VALUE._col3 (type: bigint), VALUE._col4 (type: decimal(23,3)), VALUE._col5 (type: double), VALUE._col6 (type: double), VALUE._col7 (type: float), VALUE._col8 (type: double), VALUE._col9 (type: double), VALUE._col10 (type: bigint), VALUE._col11 (type: double), VALUE._col12 (type: float), VALUE._col13 (type: double), VALUE._col14 (type: double), VALUE._col12 (type: float), VALUE._col15 (type: bigint), VALUE._col16 (type: double), VALUE._col17 (type: decimal(24,3)), VALUE._col18 (type: decimal(25,3)), VALUE._col19 (type: double), VALUE._col20 (type: decimal(25,3)), VALUE._col21 (type: double), VALUE._col22 (type: double), VALUE._col23 (type: double)
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24, _col25
-                Statistics: Num rows: 2389 Data size: 513643 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 5119 Data size: 1100602 Basic stats: COMPLETE Column stats: NONE
                 File Output Operator
                   compressed: false
-                  Statistics: Num rows: 2389 Data size: 513643 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 5119 Data size: 1100602 Basic stats: COMPLETE Column stats: NONE
                   table:
-                      input format: org.apache.hadoop.mapred.TextInputFormat
-                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                       serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -2737,7 +2760,6 @@ STAGE PLANS:
       Processor Tree:
         ListSink
 
-WARNING: Comparing a bigint and a double may result in a loss of precision.
 PREHOOK: query: SELECT   cboolean1,
          MAX(cfloat),
          (-(MAX(cfloat))),
@@ -2822,8 +2844,8 @@ ORDER BY cboolean1
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alltypesorc
 #### A masked pattern was here ####
-false  11.0    -11.0   -2.389090909090909      -17881597706    -1.7881597716175E10     3.8953387713327066E17   6.0     -0.8249999999999993     -2454.8879999999995     3.8953385925167296E17   -2145884705     1.66288903197104486E18  0.8249999999999993      4.7840233756130287E-17  4.098424268084119E-17   0.8249999999999993      -1051696618     28.692556844886422      2.980633855245E9        -4.032330473245E9       85.79562278396777       4.032330473245E9        -3983699.3106060605     3983699.3106060605      4.1896430920933255E15
-true   79.553  -79.553 -0.33034580136836733    -401322621137   -4.01322621147175E11    7.9255373737244976E16   34.727455139160156      -69.3780014038086       4856.6352637899645      7.9254972414623824E16   -2130544867     2.30133924842409523E18  69.3780014038086        3.456813247089758E-17   2.0387240975807185E-18  69.3780014038086        2182477964777   34.654968050508266      2.959326820263E9        2.179518637956737E12    9461.197516216069       -2.179518637956737E12   4.592756659884259E8     -4.592756659884259E8    1.002359020778021E21
+false  11.0    -11.0   -2.389090909090909      -17881597706    -17881597716.175        3.8953387713327066E17   6.0     -0.8249998      -2454.8879999999995     3.8953385925167296E17   -2145884705     1.66288903197104486E18  0.8249998       4.7840233756130287E-17  4.098424268084119E-17   0.8249998       -1051696618     28.692556844886422      2980633855.245  -4032330473.245 85.79562278396777       4032330473.245  -3983699.3106060605     3983699.3106060605      4.1896430920933255E15
+true   79.553  -79.553 -0.33034580136836733    -401322621137   -401322621147.175       7.9255373737244976E16   34.727455139160156      -69.378 4856.6352637899645      7.9254972414623824E16   -2130544867     2.30133924842409523E18  69.378  3.456813247089758E-17   2.0387240975807185E-18  69.378  2182477964777   34.654968050508266      2959326820.263  2179518637956.737       9461.197516216069       -2179518637956.737      4.592756659884259E8     -4.592756659884259E8    1.002359020778021E21
 PREHOOK: query: -- These tests verify COUNT on empty or null colulmns work correctly.
 create table test_count(i int) stored as orc
 PREHOOK: type: CREATETABLE
@@ -2847,6 +2869,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -2868,8 +2891,9 @@ STAGE PLANS:
                         Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
                         value expressions: _col0 (type: bigint)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Group By Operator
                 aggregations: count(VALUE._col0)
@@ -2880,8 +2904,8 @@ STAGE PLANS:
                   compressed: false
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
                   table:
-                      input format: org.apache.hadoop.mapred.TextInputFormat
-                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                       serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -2912,6 +2936,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -2935,8 +2960,9 @@ STAGE PLANS:
                         Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                         value expressions: _col0 (type: bigint)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Group By Operator
                 aggregations: count(VALUE._col0)
@@ -2947,8 +2973,8 @@ STAGE PLANS:
                   compressed: false
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                   table:
-                      input format: org.apache.hadoop.mapred.TextInputFormat
-                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                       serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -2966,22 +2992,38 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@test_count
 #### A masked pattern was here ####
 0
-PREHOOK: query: create table alltypesnull like alltypesorc
+PREHOOK: query: CREATE TABLE alltypesnull(
+    ctinyint TINYINT,
+    csmallint SMALLINT,
+    cint INT,
+    cbigint BIGINT,
+    cfloat FLOAT,
+    cdouble DOUBLE,
+    cstring1 STRING,
+    cstring2 STRING,
+    ctimestamp1 TIMESTAMP,
+    ctimestamp2 TIMESTAMP,
+    cboolean1 BOOLEAN,
+    cboolean2 BOOLEAN)
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@alltypesnull
-POSTHOOK: query: create table alltypesnull like alltypesorc
+POSTHOOK: query: CREATE TABLE alltypesnull(
+    ctinyint TINYINT,
+    csmallint SMALLINT,
+    cint INT,
+    cbigint BIGINT,
+    cfloat FLOAT,
+    cdouble DOUBLE,
+    cstring1 STRING,
+    cstring2 STRING,
+    ctimestamp1 TIMESTAMP,
+    ctimestamp2 TIMESTAMP,
+    cboolean1 BOOLEAN,
+    cboolean2 BOOLEAN)
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@alltypesnull
-PREHOOK: query: alter table alltypesnull set fileformat textfile
-PREHOOK: type: ALTERTABLE_FILEFORMAT
-PREHOOK: Input: default@alltypesnull
-PREHOOK: Output: default@alltypesnull
-POSTHOOK: query: alter table alltypesnull set fileformat textfile
-POSTHOOK: type: ALTERTABLE_FILEFORMAT
-POSTHOOK: Input: default@alltypesnull
-POSTHOOK: Output: default@alltypesnull
 PREHOOK: query: insert into table alltypesnull select null, null, null, null, null, null, null, null, null, null, null, null from alltypesorc
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alltypesorc
@@ -3012,6 +3054,18 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@alltypesnull
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@alltypesnullorc
+POSTHOOK: Lineage: alltypesnullorc.cbigint SIMPLE [(alltypesnull)alltypesnull.FieldSchema(name:cbigint, type:bigint, comment:null), ]
+POSTHOOK: Lineage: alltypesnullorc.cboolean1 SIMPLE [(alltypesnull)alltypesnull.FieldSchema(name:cboolean1, type:boolean, comment:null), ]
+POSTHOOK: Lineage: alltypesnullorc.cboolean2 SIMPLE [(alltypesnull)alltypesnull.FieldSchema(name:cboolean2, type:boolean, comment:null), ]
+POSTHOOK: Lineage: alltypesnullorc.cdouble SIMPLE [(alltypesnull)alltypesnull.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: alltypesnullorc.cfloat SIMPLE [(alltypesnull)alltypesnull.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: alltypesnullorc.cint SIMPLE [(alltypesnull)alltypesnull.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: alltypesnullorc.csmallint SIMPLE [(alltypesnull)alltypesnull.FieldSchema(name:csmallint, type:smallint, comment:null), ]
+POSTHOOK: Lineage: alltypesnullorc.cstring1 SIMPLE [(alltypesnull)alltypesnull.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: alltypesnullorc.cstring2 SIMPLE [(alltypesnull)alltypesnull.FieldSchema(name:cstring2, type:string, comment:null), ]
+POSTHOOK: Lineage: alltypesnullorc.ctimestamp1 SIMPLE [(alltypesnull)alltypesnull.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: alltypesnullorc.ctimestamp2 SIMPLE [(alltypesnull)alltypesnull.FieldSchema(name:ctimestamp2, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: alltypesnullorc.ctinyint SIMPLE [(alltypesnull)alltypesnull.FieldSchema(name:ctinyint, type:tinyint, comment:null), ]
 PREHOOK: query: explain
 select count(*) from alltypesnullorc
 PREHOOK: type: QUERY
@@ -3025,6 +3079,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -3046,8 +3101,9 @@ STAGE PLANS:
                         Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
                         value expressions: _col0 (type: bigint)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Group By Operator
                 aggregations: count(VALUE._col0)
@@ -3058,8 +3114,8 @@ STAGE PLANS:
                   compressed: false
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
                   table:
-                      input format: org.apache.hadoop.mapred.TextInputFormat
-                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                       serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -3090,6 +3146,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -3113,8 +3170,9 @@ STAGE PLANS:
                         Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                         value expressions: _col0 (type: bigint)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Group By Operator
                 aggregations: count(VALUE._col0)
@@ -3125,8 +3183,8 @@ STAGE PLANS:
                   compressed: false
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                   table:
-                      input format: org.apache.hadoop.mapred.TextInputFormat
-                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                       serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -3157,6 +3215,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -3180,8 +3239,9 @@ STAGE PLANS:
                         Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                         value expressions: _col0 (type: bigint)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Group By Operator
                 aggregations: count(VALUE._col0)
@@ -3192,8 +3252,8 @@ STAGE PLANS:
                   compressed: false
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                   table:
-                      input format: org.apache.hadoop.mapred.TextInputFormat
-                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                       serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -3224,6 +3284,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -3247,8 +3308,9 @@ STAGE PLANS:
                         Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                         value expressions: _col0 (type: bigint)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Group By Operator
                 aggregations: count(VALUE._col0)
@@ -3259,8 +3321,8 @@ STAGE PLANS:
                   compressed: false
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                   table:
-                      input format: org.apache.hadoop.mapred.TextInputFormat
-                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                       serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -3291,6 +3353,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -3314,8 +3377,9 @@ STAGE PLANS:
                         Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                         value expressions: _col0 (type: bigint)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Group By Operator
                 aggregations: count(VALUE._col0)
@@ -3326,8 +3390,8 @@ STAGE PLANS:
                   compressed: false
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                   table:
-                      input format: org.apache.hadoop.mapred.TextInputFormat
-                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                       serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
@@ -3358,6 +3422,7 @@ STAGE DEPENDENCIES:
 STAGE PLANS:
   Stage: Stage-1
     Tez
+#### A masked pattern was here ####
       Edges:
         Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
@@ -3381,8 +3446,9 @@ STAGE PLANS:
                         Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                         value expressions: _col0 (type: bigint)
             Execution mode: vectorized, llap
+            LLAP IO: all inputs
         Reducer 2 
-            Execution mode: vectorized, uber
+            Execution mode: vectorized, llap
             Reduce Operator Tree:
               Group By Operator
                 aggregations: count(VALUE._col0)
@@ -3393,8 +3459,8 @@ STAGE PLANS:
                   compressed: false
                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                   table:
-                      input format: org.apache.hadoop.mapred.TextInputFormat
-                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                       serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
 
   Stage: Stage-0
index 9bbc9b9..2e3331e 100644 (file)
@@ -201,20 +201,20 @@ STAGE PLANS:
                 aggregations: count(), sum(1), sum(0.2), count(1), count(_col2), count(_col3), count(_col4), count(_col5), max(_col6), min(_col7)
                 mode: hash
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
-                Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 1 Data size: 180 Basic stats: COMPLETE Column stats: NONE
                 Reduce Output Operator
                   sort order: 
-                  Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
-                  value expressions: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: double), _col3 (type: bigint), _col4 (type: bigint), _col5 (type: bigint), _col6 (type: bigint), _col7 (type: bigint), _col8 (type: int), _col9 (type: bigint)
+                  Statistics: Num rows: 1 Data size: 180 Basic stats: COMPLETE Column stats: NONE
+                  value expressions: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: decimal(11,1)), _col3 (type: bigint), _col4 (type: bigint), _col5 (type: bigint), _col6 (type: bigint), _col7 (type: bigint), _col8 (type: int), _col9 (type: bigint)
       Reduce Operator Tree:
         Group By Operator
           aggregations: count(VALUE._col0), sum(VALUE._col1), sum(VALUE._col2), count(VALUE._col3), count(VALUE._col4), count(VALUE._col5), count(VALUE._col6), count(VALUE._col7), max(VALUE._col8), min(VALUE._col9)
           mode: mergepartial
           outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
-          Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 1 Data size: 180 Basic stats: COMPLETE Column stats: NONE
           File Output Operator
             compressed: false
-            Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 1 Data size: 180 Basic stats: COMPLETE Column stats: NONE
             table:
                 input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                 output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -251,20 +251,20 @@ STAGE PLANS:
                 aggregations: count(), sum(1), sum(0.2), count(1), count(_col2), count(_col3), count(_col4), count(_col5), max(_col6), min(_col7)
                 mode: hash
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
-                Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 1 Data size: 180 Basic stats: COMPLETE Column stats: NONE
                 Reduce Output Operator
                   sort order: 
-                  Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
-                  value expressions: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: double), _col3 (type: bigint), _col4 (type: bigint), _col5 (type: bigint), _col6 (type: bigint), _col7 (type: bigint), _col8 (type: int), _col9 (type: bigint)
+                  Statistics: Num rows: 1 Data size: 180 Basic stats: COMPLETE Column stats: NONE
+                  value expressions: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: decimal(11,1)), _col3 (type: bigint), _col4 (type: bigint), _col5 (type: bigint), _col6 (type: bigint), _col7 (type: bigint), _col8 (type: int), _col9 (type: bigint)
       Reduce Operator Tree:
         Group By Operator
           aggregations: count(VALUE._col0), sum(VALUE._col1), sum(VALUE._col2), count(VALUE._col3), count(VALUE._col4), count(VALUE._col5), count(VALUE._col6), count(VALUE._col7), max(VALUE._col8), min(VALUE._col9)
           mode: mergepartial
           outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
-          Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 1 Data size: 180 Basic stats: COMPLETE Column stats: NONE
           File Output Operator
             compressed: false
-            Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 1 Data size: 180 Basic stats: COMPLETE Column stats: NONE
             table:
                 input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                 output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -301,24 +301,24 @@ STAGE PLANS:
                 aggregations: count(), sum(1), sum(0.2), count(1), count(_col2), count(_col3), count(_col4), count(_col5), max(_col6), min(_col7)
                 mode: hash
                 outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9
-                Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 1 Data size: 180 Basic stats: COMPLETE Column stats: NONE
                 Reduce Output Operator
                   sort order: 
-                  Statistics: Num rows: 1 Data size: 76 Basic stats: COMPLETE Column stats: NONE
-                  value expressions: _col0 (type: bigint), _col1 (type: bigint), _col2 (type: double), _col3 (type: bigint), _col4 (type: bigint), _col5 (type: bigint), _col6 (type: bigint), _col7 (type: bigint), _col8 (type: int), _col9 (type: bigint)
+                  Statistics: Num rows: 1 Data size: 180 Basic stats: COMPLETE Column stats: NONE
+