You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by gu...@apache.org on 2014/11/04 19:34:22 UTC

svn commit: r1636683 [1/2] - in /hive/trunk/ql/src: java/org/apache/hadoop/hive/ql/exec/vector/expressions/ test/queries/clientpositive/ test/results/clientpositive/ test/results/clientpositive/tez/

Author: gunther
Date: Tue Nov  4 18:34:22 2014
New Revision: 1636683

URL: http://svn.apache.org/r1636683
Log:
HIVE-8697: Vectorized round(decimal, negative) produces wrong results (Matt McCline, reviewed by Ashutosh Chauhan)

Added:
    hive/trunk/ql/src/test/queries/clientpositive/vector_decimal_round.q
    hive/trunk/ql/src/test/queries/clientpositive/vector_decimal_round_2.q
    hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_round.q.out
    hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_round_2.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_decimal_round.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_decimal_round_2.q.out
Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DecimalUtil.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DecimalUtil.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DecimalUtil.java?rev=1636683&r1=1636682&r2=1636683&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DecimalUtil.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DecimalUtil.java Tue Nov  4 18:34:22 2014
@@ -278,6 +278,24 @@ public class DecimalUtil {
     }
   }
 
+  public static void round(int i, HiveDecimal input, int decimalPlaces, DecimalColumnVector outputColVector) {
+    try {
+      outputColVector.set(i, RoundUtils.round(input, decimalPlaces));
+    } catch (ArithmeticException e) {
+      outputColVector.noNulls = false;
+      outputColVector.isNull[i] = true;
+    }
+  }
+
+  public static void round(int i, HiveDecimalWritable input, int decimalPlaces, DecimalColumnVector outputColVector) {
+    try {
+      outputColVector.set(i, RoundUtils.round(input.getHiveDecimal(), decimalPlaces));
+    } catch (ArithmeticException e) {
+      outputColVector.noNulls = false;
+      outputColVector.isNull[i] = true;
+    }
+  }
+
   public static void round(int i, HiveDecimal input, DecimalColumnVector outputColVector) {
     try {
       outputColVector.set(i, RoundUtils.round(input, outputColVector.scale));

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java?rev=1636683&r1=1636682&r2=1636683&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java Tue Nov  4 18:34:22 2014
@@ -73,7 +73,7 @@ public class FuncRoundWithNumDigitsDecim
       // All must be selected otherwise size would be zero
       // Repeating property will not change.
       outputIsNull[0] = inputIsNull[0];
-      DecimalUtil.round(0, vector[0], outputColVector);
+      DecimalUtil.round(0, vector[0], decimalPlaces, outputColVector);
       outputColVector.isRepeating = true;
     } else if (inputColVector.noNulls) {
       if (batch.selectedInUse) {
@@ -82,14 +82,14 @@ public class FuncRoundWithNumDigitsDecim
 
           // Set isNull because decimal operation can yield a null.
           outputIsNull[i] = false;
-          DecimalUtil.round(i, vector[i], outputColVector);
+          DecimalUtil.round(i, vector[i], decimalPlaces, outputColVector);
         }
       } else {
 
         // Set isNull because decimal operation can yield a null.
         Arrays.fill(outputIsNull, 0, n, false);
         for(int i = 0; i != n; i++) {
-          DecimalUtil.round(i, vector[i], outputColVector);
+          DecimalUtil.round(i, vector[i], decimalPlaces, outputColVector);
         }
       }
       outputColVector.isRepeating = false;
@@ -98,12 +98,12 @@ public class FuncRoundWithNumDigitsDecim
         for(int j = 0; j != n; j++) {
           int i = sel[j];
           outputIsNull[i] = inputIsNull[i];
-          DecimalUtil.round(i, vector[i], outputColVector);
+          DecimalUtil.round(i, vector[i], decimalPlaces, outputColVector);
         }
       } else {
         System.arraycopy(inputIsNull, 0, outputIsNull, 0, n);
         for(int i = 0; i != n; i++) {
-          DecimalUtil.round(i, vector[i], outputColVector);
+          DecimalUtil.round(i, vector[i], decimalPlaces, outputColVector);
         }
       }
       outputColVector.isRepeating = false;

Added: hive/trunk/ql/src/test/queries/clientpositive/vector_decimal_round.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/vector_decimal_round.q?rev=1636683&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/vector_decimal_round.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/vector_decimal_round.q Tue Nov  4 18:34:22 2014
@@ -0,0 +1,55 @@
+SET hive.vectorized.execution.enabled=true;
+set hive.fetch.task.conversion=minimal;
+
+create table decimal_tbl_txt (dec decimal(10,0)) 
+ROW FORMAT DELIMITED
+   FIELDS TERMINATED BY ' '
+STORED AS TEXTFILE;
+
+insert into table decimal_tbl_txt values(101);
+
+select * from decimal_tbl_txt;
+
+explain
+select dec, round(dec, -1) from decimal_tbl_txt order by dec;
+
+select dec, round(dec, -1) from decimal_tbl_txt order by dec;
+
+explain
+select dec, round(dec, -1) from decimal_tbl_txt order by round(dec, -1);
+
+select dec, round(dec, -1) from decimal_tbl_txt order by round(dec, -1);
+
+create table decimal_tbl_rc (dec decimal(10,0))
+row format serde 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe' stored as rcfile;
+
+insert into table decimal_tbl_rc values(101);
+
+select * from decimal_tbl_rc;
+
+explain
+select dec, round(dec, -1) from decimal_tbl_rc order by dec;
+
+select dec, round(dec, -1) from decimal_tbl_rc order by dec;
+
+explain
+select dec, round(dec, -1) from decimal_tbl_rc order by round(dec, -1);
+
+select dec, round(dec, -1) from decimal_tbl_rc order by round(dec, -1);
+
+create table decimal_tbl_orc (dec decimal(10,0))
+stored as orc;
+
+insert into table decimal_tbl_orc values(101);
+
+select * from decimal_tbl_orc;
+
+explain
+select dec, round(dec, -1) from decimal_tbl_orc order by dec;
+
+select dec, round(dec, -1) from decimal_tbl_orc order by dec;
+
+explain
+select dec, round(dec, -1) from decimal_tbl_orc order by round(dec, -1);
+
+select dec, round(dec, -1) from decimal_tbl_orc order by round(dec, -1);
\ No newline at end of file

Added: hive/trunk/ql/src/test/queries/clientpositive/vector_decimal_round_2.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/vector_decimal_round_2.q?rev=1636683&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/vector_decimal_round_2.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/vector_decimal_round_2.q Tue Nov  4 18:34:22 2014
@@ -0,0 +1,119 @@
+SET hive.vectorized.execution.enabled=true;
+set hive.fetch.task.conversion=minimal;
+
+create table decimal_tbl_1_orc (dec decimal(38,18)) 
+STORED AS ORC;
+
+insert into table decimal_tbl_1_orc values(55555);
+
+select * from decimal_tbl_1_orc;
+
+-- EXPLAIN
+-- SELECT dec, round(null), round(null, 0), round(125, null), 
+-- round(1.0/0.0, 0), round(power(-1.0,0.5), 0)
+-- FROM decimal_tbl_1_orc ORDER BY dec;
+
+-- SELECT dec, round(null), round(null, 0), round(125, null), 
+-- round(1.0/0.0, 0), round(power(-1.0,0.5), 0)
+-- FROM decimal_tbl_1_orc ORDER BY dec;
+
+EXPLAIN
+SELECT
+  round(dec) as d, round(dec, 0), round(dec, 1), round(dec, 2), round(dec, 3),
+  round(dec, -1), round(dec, -2), round(dec, -3), round(dec, -4),
+  round(dec, -5), round(dec, -6), round(dec, -7), round(dec, -8)
+FROM decimal_tbl_1_orc ORDER BY d;
+
+SELECT
+  round(dec) as d, round(dec, 0), round(dec, 1), round(dec, 2), round(dec, 3),
+  round(dec, -1), round(dec, -2), round(dec, -3), round(dec, -4),
+  round(dec, -5), round(dec, -6), round(dec, -7), round(dec, -8)
+FROM decimal_tbl_1_orc ORDER BY d;
+
+create table decimal_tbl_2_orc (pos decimal(38,18), neg decimal(38,18)) 
+STORED AS ORC;
+
+insert into table decimal_tbl_2_orc values(125.315, -125.315);
+
+select * from decimal_tbl_2_orc;
+
+EXPLAIN
+SELECT
+  round(pos) as p, round(pos, 0),
+  round(pos, 1), round(pos, 2), round(pos, 3), round(pos, 4),
+  round(pos, -1), round(pos, -2), round(pos, -3), round(pos, -4),
+  round(neg), round(neg, 0),
+  round(neg, 1), round(neg, 2), round(neg, 3), round(neg, 4),
+  round(neg, -1), round(neg, -2), round(neg, -3), round(neg, -4)
+FROM decimal_tbl_2_orc ORDER BY p;
+
+SELECT
+  round(pos) as p, round(pos, 0),
+  round(pos, 1), round(pos, 2), round(pos, 3), round(pos, 4),
+  round(pos, -1), round(pos, -2), round(pos, -3), round(pos, -4),
+  round(neg), round(neg, 0),
+  round(neg, 1), round(neg, 2), round(neg, 3), round(neg, 4),
+  round(neg, -1), round(neg, -2), round(neg, -3), round(neg, -4)
+FROM decimal_tbl_2_orc ORDER BY p;
+
+create table decimal_tbl_3_orc (dec decimal(38,18)) 
+STORED AS ORC;
+
+insert into table decimal_tbl_3_orc values(3.141592653589793);
+
+select * from decimal_tbl_3_orc;
+
+EXPLAIN
+SELECT
+  round(dec, -15) as d, round(dec, -16),
+  round(dec, -13), round(dec, -14),
+  round(dec, -11), round(dec, -12),
+  round(dec, -9), round(dec, -10),
+  round(dec, -7), round(dec, -8),
+  round(dec, -5), round(dec, -6),
+  round(dec, -3), round(dec, -4),
+  round(dec, -1), round(dec, -2),
+  round(dec, 0), round(dec, 1),
+  round(dec, 2), round(dec, 3),
+  round(dec, 4), round(dec, 5),
+  round(dec, 6), round(dec, 7),
+  round(dec, 8), round(dec, 9),
+  round(dec, 10), round(dec, 11),
+  round(dec, 12), round(dec, 13),
+  round(dec, 13), round(dec, 14),
+  round(dec, 15), round(dec, 16)
+FROM decimal_tbl_3_orc ORDER BY d;
+
+SELECT
+  round(dec, -15) as d, round(dec, -16),
+  round(dec, -13), round(dec, -14),
+  round(dec, -11), round(dec, -12),
+  round(dec, -9), round(dec, -10),
+  round(dec, -7), round(dec, -8),
+  round(dec, -5), round(dec, -6),
+  round(dec, -3), round(dec, -4),
+  round(dec, -1), round(dec, -2),
+  round(dec, 0), round(dec, 1),
+  round(dec, 2), round(dec, 3),
+  round(dec, 4), round(dec, 5),
+  round(dec, 6), round(dec, 7),
+  round(dec, 8), round(dec, 9),
+  round(dec, 10), round(dec, 11),
+  round(dec, 12), round(dec, 13),
+  round(dec, 13), round(dec, 14),
+  round(dec, 15), round(dec, 16)
+FROM decimal_tbl_3_orc ORDER BY d;
+
+create table decimal_tbl_4_orc (pos decimal(38,18), neg decimal(38,18)) 
+STORED AS ORC;
+
+insert into table decimal_tbl_4_orc values(1809242.3151111344, -1809242.3151111344);
+
+select * from decimal_tbl_4_orc;
+
+EXPLAIN
+SELECT round(pos, 9) as p, round(neg, 9), round(1809242.3151111344BD, 9), round(-1809242.3151111344BD, 9)
+FROM decimal_tbl_4_orc ORDER BY p;
+
+SELECT round(pos, 9) as p, round(neg, 9), round(1809242.3151111344BD, 9), round(-1809242.3151111344BD, 9)
+FROM decimal_tbl_4_orc ORDER BY p;

Added: hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_round.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_round.q.out?rev=1636683&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_round.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_round.q.out Tue Nov  4 18:34:22 2014
@@ -0,0 +1,456 @@
+PREHOOK: query: create table decimal_tbl_txt (dec decimal(10,0)) 
+ROW FORMAT DELIMITED
+   FIELDS TERMINATED BY ' '
+STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@decimal_tbl_txt
+POSTHOOK: query: create table decimal_tbl_txt (dec decimal(10,0)) 
+ROW FORMAT DELIMITED
+   FIELDS TERMINATED BY ' '
+STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@decimal_tbl_txt
+PREHOOK: query: insert into table decimal_tbl_txt values(101)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@decimal_tbl_txt
+POSTHOOK: query: insert into table decimal_tbl_txt values(101)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@decimal_tbl_txt
+POSTHOOK: Lineage: decimal_tbl_txt.dec EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: select * from decimal_tbl_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_txt
+#### A masked pattern was here ####
+POSTHOOK: query: select * from decimal_tbl_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_txt
+#### A masked pattern was here ####
+101
+PREHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_txt order by dec
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_txt order by dec
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: decimal_tbl_txt
+                  Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                  Select Operator
+                    expressions: dec (type: decimal(10,0)), round(dec, -1) (type: decimal(11,0))
+                    outputColumnNames: _col0, _col1
+                    Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: _col0 (type: decimal(10,0))
+                      sort order: +
+                      Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                      value expressions: _col1 (type: decimal(11,0))
+        Reducer 2 
+            Reduce Operator Tree:
+              Select Operator
+                expressions: KEY.reducesinkkey0 (type: decimal(10,0)), VALUE._col0 (type: decimal(11,0))
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                File Output Operator
+                  compressed: false
+                  Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                  table:
+                      input format: org.apache.hadoop.mapred.TextInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Execution mode: vectorized
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select dec, round(dec, -1) from decimal_tbl_txt order by dec
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_txt
+#### A masked pattern was here ####
+POSTHOOK: query: select dec, round(dec, -1) from decimal_tbl_txt order by dec
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_txt
+#### A masked pattern was here ####
+101	100
+PREHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_txt order by round(dec, -1)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_txt order by round(dec, -1)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: decimal_tbl_txt
+                  Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                  Select Operator
+                    expressions: dec (type: decimal(10,0))
+                    outputColumnNames: _col0
+                    Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: round(_col0, (- 1)) (type: decimal(11,0))
+                      sort order: +
+                      Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                      value expressions: _col0 (type: decimal(10,0))
+        Reducer 2 
+            Reduce Operator Tree:
+              Select Operator
+                expressions: VALUE._col0 (type: decimal(10,0)), KEY.reducesinkkey0 (type: decimal(11,0))
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                File Output Operator
+                  compressed: false
+                  Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                  table:
+                      input format: org.apache.hadoop.mapred.TextInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Execution mode: vectorized
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select dec, round(dec, -1) from decimal_tbl_txt order by round(dec, -1)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_txt
+#### A masked pattern was here ####
+POSTHOOK: query: select dec, round(dec, -1) from decimal_tbl_txt order by round(dec, -1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_txt
+#### A masked pattern was here ####
+101	100
+PREHOOK: query: create table decimal_tbl_rc (dec decimal(10,0))
+row format serde 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe' stored as rcfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@decimal_tbl_rc
+POSTHOOK: query: create table decimal_tbl_rc (dec decimal(10,0))
+row format serde 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe' stored as rcfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@decimal_tbl_rc
+PREHOOK: query: insert into table decimal_tbl_rc values(101)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@decimal_tbl_rc
+POSTHOOK: query: insert into table decimal_tbl_rc values(101)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@decimal_tbl_rc
+POSTHOOK: Lineage: decimal_tbl_rc.dec EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: select * from decimal_tbl_rc
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_rc
+#### A masked pattern was here ####
+POSTHOOK: query: select * from decimal_tbl_rc
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_rc
+#### A masked pattern was here ####
+101
+PREHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_rc order by dec
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_rc order by dec
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: decimal_tbl_rc
+                  Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                  Select Operator
+                    expressions: dec (type: decimal(10,0)), round(dec, -1) (type: decimal(11,0))
+                    outputColumnNames: _col0, _col1
+                    Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: _col0 (type: decimal(10,0))
+                      sort order: +
+                      Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                      value expressions: _col1 (type: decimal(11,0))
+        Reducer 2 
+            Reduce Operator Tree:
+              Select Operator
+                expressions: KEY.reducesinkkey0 (type: decimal(10,0)), VALUE._col0 (type: decimal(11,0))
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                File Output Operator
+                  compressed: false
+                  Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                  table:
+                      input format: org.apache.hadoop.mapred.TextInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Execution mode: vectorized
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select dec, round(dec, -1) from decimal_tbl_rc order by dec
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_rc
+#### A masked pattern was here ####
+POSTHOOK: query: select dec, round(dec, -1) from decimal_tbl_rc order by dec
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_rc
+#### A masked pattern was here ####
+101	100
+PREHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_rc order by round(dec, -1)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_rc order by round(dec, -1)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: decimal_tbl_rc
+                  Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                  Select Operator
+                    expressions: dec (type: decimal(10,0))
+                    outputColumnNames: _col0
+                    Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: round(_col0, (- 1)) (type: decimal(11,0))
+                      sort order: +
+                      Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                      value expressions: _col0 (type: decimal(10,0))
+        Reducer 2 
+            Reduce Operator Tree:
+              Select Operator
+                expressions: VALUE._col0 (type: decimal(10,0)), KEY.reducesinkkey0 (type: decimal(11,0))
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                File Output Operator
+                  compressed: false
+                  Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                  table:
+                      input format: org.apache.hadoop.mapred.TextInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Execution mode: vectorized
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select dec, round(dec, -1) from decimal_tbl_rc order by round(dec, -1)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_rc
+#### A masked pattern was here ####
+POSTHOOK: query: select dec, round(dec, -1) from decimal_tbl_rc order by round(dec, -1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_rc
+#### A masked pattern was here ####
+101	100
+PREHOOK: query: create table decimal_tbl_orc (dec decimal(10,0))
+stored as orc
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@decimal_tbl_orc
+POSTHOOK: query: create table decimal_tbl_orc (dec decimal(10,0))
+stored as orc
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@decimal_tbl_orc
+PREHOOK: query: insert into table decimal_tbl_orc values(101)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@decimal_tbl_orc
+POSTHOOK: query: insert into table decimal_tbl_orc values(101)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@decimal_tbl_orc
+POSTHOOK: Lineage: decimal_tbl_orc.dec EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: select * from decimal_tbl_orc
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_orc
+#### A masked pattern was here ####
+POSTHOOK: query: select * from decimal_tbl_orc
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_orc
+#### A masked pattern was here ####
+101
+PREHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_orc order by dec
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_orc order by dec
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: decimal_tbl_orc
+                  Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                  Select Operator
+                    expressions: dec (type: decimal(10,0)), round(dec, -1) (type: decimal(11,0))
+                    outputColumnNames: _col0, _col1
+                    Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: _col0 (type: decimal(10,0))
+                      sort order: +
+                      Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                      value expressions: _col1 (type: decimal(11,0))
+            Execution mode: vectorized
+        Reducer 2 
+            Reduce Operator Tree:
+              Select Operator
+                expressions: KEY.reducesinkkey0 (type: decimal(10,0)), VALUE._col0 (type: decimal(11,0))
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                File Output Operator
+                  compressed: false
+                  Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                  table:
+                      input format: org.apache.hadoop.mapred.TextInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Execution mode: vectorized
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select dec, round(dec, -1) from decimal_tbl_orc order by dec
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_orc
+#### A masked pattern was here ####
+POSTHOOK: query: select dec, round(dec, -1) from decimal_tbl_orc order by dec
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_orc
+#### A masked pattern was here ####
+101	100
+PREHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_orc order by round(dec, -1)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_orc order by round(dec, -1)
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: decimal_tbl_orc
+                  Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                  Select Operator
+                    expressions: dec (type: decimal(10,0))
+                    outputColumnNames: _col0
+                    Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: round(_col0, (- 1)) (type: decimal(11,0))
+                      sort order: +
+                      Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                      value expressions: _col0 (type: decimal(10,0))
+            Execution mode: vectorized
+        Reducer 2 
+            Reduce Operator Tree:
+              Select Operator
+                expressions: VALUE._col0 (type: decimal(10,0)), KEY.reducesinkkey0 (type: decimal(11,0))
+                outputColumnNames: _col0, _col1
+                Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                File Output Operator
+                  compressed: false
+                  Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                  table:
+                      input format: org.apache.hadoop.mapred.TextInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Execution mode: vectorized
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select dec, round(dec, -1) from decimal_tbl_orc order by round(dec, -1)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_orc
+#### A masked pattern was here ####
+POSTHOOK: query: select dec, round(dec, -1) from decimal_tbl_orc order by round(dec, -1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_orc
+#### A masked pattern was here ####
+101	100

Added: hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_round_2.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_round_2.q.out?rev=1636683&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_round_2.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_round_2.q.out Tue Nov  4 18:34:22 2014
@@ -0,0 +1,499 @@
+PREHOOK: query: create table decimal_tbl_1_orc (dec decimal(38,18)) 
+STORED AS ORC
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@decimal_tbl_1_orc
+POSTHOOK: query: create table decimal_tbl_1_orc (dec decimal(38,18)) 
+STORED AS ORC
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@decimal_tbl_1_orc
+PREHOOK: query: insert into table decimal_tbl_1_orc values(55555)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@decimal_tbl_1_orc
+POSTHOOK: query: insert into table decimal_tbl_1_orc values(55555)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@decimal_tbl_1_orc
+POSTHOOK: Lineage: decimal_tbl_1_orc.dec EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: select * from decimal_tbl_1_orc
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_1_orc
+#### A masked pattern was here ####
+POSTHOOK: query: select * from decimal_tbl_1_orc
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_1_orc
+#### A masked pattern was here ####
+55555
+PREHOOK: query: -- EXPLAIN
+-- SELECT dec, round(null), round(null, 0), round(125, null), 
+-- round(1.0/0.0, 0), round(power(-1.0,0.5), 0)
+-- FROM decimal_tbl_1_orc ORDER BY dec;
+
+-- SELECT dec, round(null), round(null, 0), round(125, null), 
+-- round(1.0/0.0, 0), round(power(-1.0,0.5), 0)
+-- FROM decimal_tbl_1_orc ORDER BY dec;
+
+EXPLAIN
+SELECT
+  round(dec) as d, round(dec, 0), round(dec, 1), round(dec, 2), round(dec, 3),
+  round(dec, -1), round(dec, -2), round(dec, -3), round(dec, -4),
+  round(dec, -5), round(dec, -6), round(dec, -7), round(dec, -8)
+FROM decimal_tbl_1_orc ORDER BY d
+PREHOOK: type: QUERY
+POSTHOOK: query: -- EXPLAIN
+-- SELECT dec, round(null), round(null, 0), round(125, null), 
+-- round(1.0/0.0, 0), round(power(-1.0,0.5), 0)
+-- FROM decimal_tbl_1_orc ORDER BY dec;
+
+-- SELECT dec, round(null), round(null, 0), round(125, null), 
+-- round(1.0/0.0, 0), round(power(-1.0,0.5), 0)
+-- FROM decimal_tbl_1_orc ORDER BY dec;
+
+EXPLAIN
+SELECT
+  round(dec) as d, round(dec, 0), round(dec, 1), round(dec, 2), round(dec, 3),
+  round(dec, -1), round(dec, -2), round(dec, -3), round(dec, -4),
+  round(dec, -5), round(dec, -6), round(dec, -7), round(dec, -8)
+FROM decimal_tbl_1_orc ORDER BY d
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: decimal_tbl_1_orc
+                  Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                  Select Operator
+                    expressions: round(dec) (type: decimal(21,0)), round(dec, 0) (type: decimal(21,0)), round(dec, 1) (type: decimal(22,1)), round(dec, 2) (type: decimal(23,2)), round(dec, 3) (type: decimal(24,3)), round(dec, -1) (type: decimal(21,0)), round(dec, -2) (type: decimal(21,0)), round(dec, -3) (type: decimal(21,0)), round(dec, -4) (type: decimal(21,0)), round(dec, -5) (type: decimal(21,0)), round(dec, -6) (type: decimal(21,0)), round(dec, -7) (type: decimal(21,0)), round(dec, -8) (type: decimal(21,0))
+                    outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12
+                    Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: _col0 (type: decimal(21,0))
+                      sort order: +
+                      Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                      value expressions: _col1 (type: decimal(21,0)), _col2 (type: decimal(22,1)), _col3 (type: decimal(23,2)), _col4 (type: decimal(24,3)), _col5 (type: decimal(21,0)), _col6 (type: decimal(21,0)), _col7 (type: decimal(21,0)), _col8 (type: decimal(21,0)), _col9 (type: decimal(21,0)), _col10 (type: decimal(21,0)), _col11 (type: decimal(21,0)), _col12 (type: decimal(21,0))
+            Execution mode: vectorized
+        Reducer 2 
+            Reduce Operator Tree:
+              Select Operator
+                expressions: KEY.reducesinkkey0 (type: decimal(21,0)), VALUE._col0 (type: decimal(21,0)), VALUE._col1 (type: decimal(22,1)), VALUE._col2 (type: decimal(23,2)), VALUE._col3 (type: decimal(24,3)), VALUE._col4 (type: decimal(21,0)), VALUE._col5 (type: decimal(21,0)), VALUE._col6 (type: decimal(21,0)), VALUE._col7 (type: decimal(21,0)), VALUE._col8 (type: decimal(21,0)), VALUE._col9 (type: decimal(21,0)), VALUE._col10 (type: decimal(21,0)), VALUE._col11 (type: decimal(21,0))
+                outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12
+                Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                File Output Operator
+                  compressed: false
+                  Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                  table:
+                      input format: org.apache.hadoop.mapred.TextInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Execution mode: vectorized
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: SELECT
+  round(dec) as d, round(dec, 0), round(dec, 1), round(dec, 2), round(dec, 3),
+  round(dec, -1), round(dec, -2), round(dec, -3), round(dec, -4),
+  round(dec, -5), round(dec, -6), round(dec, -7), round(dec, -8)
+FROM decimal_tbl_1_orc ORDER BY d
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_1_orc
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT
+  round(dec) as d, round(dec, 0), round(dec, 1), round(dec, 2), round(dec, 3),
+  round(dec, -1), round(dec, -2), round(dec, -3), round(dec, -4),
+  round(dec, -5), round(dec, -6), round(dec, -7), round(dec, -8)
+FROM decimal_tbl_1_orc ORDER BY d
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_1_orc
+#### A masked pattern was here ####
+55555	55555	55555.0	55555.00	55555.000	55560	55600	56000	60000	100000	0	0	0
+PREHOOK: query: create table decimal_tbl_2_orc (pos decimal(38,18), neg decimal(38,18)) 
+STORED AS ORC
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@decimal_tbl_2_orc
+POSTHOOK: query: create table decimal_tbl_2_orc (pos decimal(38,18), neg decimal(38,18)) 
+STORED AS ORC
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@decimal_tbl_2_orc
+PREHOOK: query: insert into table decimal_tbl_2_orc values(125.315, -125.315)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@decimal_tbl_2_orc
+POSTHOOK: query: insert into table decimal_tbl_2_orc values(125.315, -125.315)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@decimal_tbl_2_orc
+POSTHOOK: Lineage: decimal_tbl_2_orc.neg EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: decimal_tbl_2_orc.pos EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: select * from decimal_tbl_2_orc
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_2_orc
+#### A masked pattern was here ####
+POSTHOOK: query: select * from decimal_tbl_2_orc
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_2_orc
+#### A masked pattern was here ####
+125.315	-125.315
+PREHOOK: query: EXPLAIN
+SELECT
+  round(pos) as p, round(pos, 0),
+  round(pos, 1), round(pos, 2), round(pos, 3), round(pos, 4),
+  round(pos, -1), round(pos, -2), round(pos, -3), round(pos, -4),
+  round(neg), round(neg, 0),
+  round(neg, 1), round(neg, 2), round(neg, 3), round(neg, 4),
+  round(neg, -1), round(neg, -2), round(neg, -3), round(neg, -4)
+FROM decimal_tbl_2_orc ORDER BY p
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT
+  round(pos) as p, round(pos, 0),
+  round(pos, 1), round(pos, 2), round(pos, 3), round(pos, 4),
+  round(pos, -1), round(pos, -2), round(pos, -3), round(pos, -4),
+  round(neg), round(neg, 0),
+  round(neg, 1), round(neg, 2), round(neg, 3), round(neg, 4),
+  round(neg, -1), round(neg, -2), round(neg, -3), round(neg, -4)
+FROM decimal_tbl_2_orc ORDER BY p
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: decimal_tbl_2_orc
+                  Statistics: Num rows: 1 Data size: 224 Basic stats: COMPLETE Column stats: NONE
+                  Select Operator
+                    expressions: round(pos) (type: decimal(21,0)), round(pos, 0) (type: decimal(21,0)), round(pos, 1) (type: decimal(22,1)), round(pos, 2) (type: decimal(23,2)), round(pos, 3) (type: decimal(24,3)), round(pos, 4) (type: decimal(25,4)), round(pos, -1) (type: decimal(21,0)), round(pos, -2) (type: decimal(21,0)), round(pos, -3) (type: decimal(21,0)), round(pos, -4) (type: decimal(21,0)), round(neg) (type: decimal(21,0)), round(neg, 0) (type: decimal(21,0)), round(neg, 1) (type: decimal(22,1)), round(neg, 2) (type: decimal(23,2)), round(neg, 3) (type: decimal(24,3)), round(neg, 4) (type: decimal(25,4)), round(neg, -1) (type: decimal(21,0)), round(neg, -2) (type: decimal(21,0)), round(neg, -3) (type: decimal(21,0)), round(neg, -4) (type: decimal(21,0))
+                    outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19
+                    Statistics: Num rows: 1 Data size: 224 Basic stats: COMPLETE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: _col0 (type: decimal(21,0))
+                      sort order: +
+                      Statistics: Num rows: 1 Data size: 224 Basic stats: COMPLETE Column stats: NONE
+                      value expressions: _col1 (type: decimal(21,0)), _col2 (type: decimal(22,1)), _col3 (type: decimal(23,2)), _col4 (type: decimal(24,3)), _col5 (type: decimal(25,4)), _col6 (type: decimal(21,0)), _col7 (type: decimal(21,0)), _col8 (type: decimal(21,0)), _col9 (type: decimal(21,0)), _col10 (type: decimal(21,0)), _col11 (type: decimal(21,0)), _col12 (type: decimal(22,1)), _col13 (type: decimal(23,2)), _col14 (type: decimal(24,3)), _col15 (type: decimal(25,4)), _col16 (type: decimal(21,0)), _col17 (type: decimal(21,0)), _col18 (type: decimal(21,0)), _col19 (type: decimal(21,0))
+            Execution mode: vectorized
+        Reducer 2 
+            Reduce Operator Tree:
+              Select Operator
+                expressions: KEY.reducesinkkey0 (type: decimal(21,0)), VALUE._col0 (type: decimal(21,0)), VALUE._col1 (type: decimal(22,1)), VALUE._col2 (type: decimal(23,2)), VALUE._col3 (type: decimal(24,3)), VALUE._col4 (type: decimal(25,4)), VALUE._col5 (type: decimal(21,0)), VALUE._col6 (type: decimal(21,0)), VALUE._col7 (type: decimal(21,0)), VALUE._col8 (type: decimal(21,0)), VALUE._col9 (type: decimal(21,0)), VALUE._col10 (type: decimal(21,0)), VALUE._col11 (type: decimal(22,1)), VALUE._col12 (type: decimal(23,2)), VALUE._col13 (type: decimal(24,3)), VALUE._col14 (type: decimal(25,4)), VALUE._col15 (type: decimal(21,0)), VALUE._col16 (type: decimal(21,0)), VALUE._col17 (type: decimal(21,0)), VALUE._col18 (type: decimal(21,0))
+                outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19
+                Statistics: Num rows: 1 Data size: 224 Basic stats: COMPLETE Column stats: NONE
+                File Output Operator
+                  compressed: false
+                  Statistics: Num rows: 1 Data size: 224 Basic stats: COMPLETE Column stats: NONE
+                  table:
+                      input format: org.apache.hadoop.mapred.TextInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Execution mode: vectorized
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: SELECT
+  round(pos) as p, round(pos, 0),
+  round(pos, 1), round(pos, 2), round(pos, 3), round(pos, 4),
+  round(pos, -1), round(pos, -2), round(pos, -3), round(pos, -4),
+  round(neg), round(neg, 0),
+  round(neg, 1), round(neg, 2), round(neg, 3), round(neg, 4),
+  round(neg, -1), round(neg, -2), round(neg, -3), round(neg, -4)
+FROM decimal_tbl_2_orc ORDER BY p
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_2_orc
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT
+  round(pos) as p, round(pos, 0),
+  round(pos, 1), round(pos, 2), round(pos, 3), round(pos, 4),
+  round(pos, -1), round(pos, -2), round(pos, -3), round(pos, -4),
+  round(neg), round(neg, 0),
+  round(neg, 1), round(neg, 2), round(neg, 3), round(neg, 4),
+  round(neg, -1), round(neg, -2), round(neg, -3), round(neg, -4)
+FROM decimal_tbl_2_orc ORDER BY p
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_2_orc
+#### A masked pattern was here ####
+125	125	125.3	125.32	125.315	125.3150	130	100	0	0	-125	-125	-125.3	-125.32	-125.315	-125.3150	-130	-100	0	0
+PREHOOK: query: create table decimal_tbl_3_orc (dec decimal(38,18)) 
+STORED AS ORC
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@decimal_tbl_3_orc
+POSTHOOK: query: create table decimal_tbl_3_orc (dec decimal(38,18)) 
+STORED AS ORC
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@decimal_tbl_3_orc
+PREHOOK: query: insert into table decimal_tbl_3_orc values(3.141592653589793)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@decimal_tbl_3_orc
+POSTHOOK: query: insert into table decimal_tbl_3_orc values(3.141592653589793)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@decimal_tbl_3_orc
+POSTHOOK: Lineage: decimal_tbl_3_orc.dec EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: select * from decimal_tbl_3_orc
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_3_orc
+#### A masked pattern was here ####
+POSTHOOK: query: select * from decimal_tbl_3_orc
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_3_orc
+#### A masked pattern was here ####
+3.141592653589793
+PREHOOK: query: EXPLAIN
+SELECT
+  round(dec, -15) as d, round(dec, -16),
+  round(dec, -13), round(dec, -14),
+  round(dec, -11), round(dec, -12),
+  round(dec, -9), round(dec, -10),
+  round(dec, -7), round(dec, -8),
+  round(dec, -5), round(dec, -6),
+  round(dec, -3), round(dec, -4),
+  round(dec, -1), round(dec, -2),
+  round(dec, 0), round(dec, 1),
+  round(dec, 2), round(dec, 3),
+  round(dec, 4), round(dec, 5),
+  round(dec, 6), round(dec, 7),
+  round(dec, 8), round(dec, 9),
+  round(dec, 10), round(dec, 11),
+  round(dec, 12), round(dec, 13),
+  round(dec, 13), round(dec, 14),
+  round(dec, 15), round(dec, 16)
+FROM decimal_tbl_3_orc ORDER BY d
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT
+  round(dec, -15) as d, round(dec, -16),
+  round(dec, -13), round(dec, -14),
+  round(dec, -11), round(dec, -12),
+  round(dec, -9), round(dec, -10),
+  round(dec, -7), round(dec, -8),
+  round(dec, -5), round(dec, -6),
+  round(dec, -3), round(dec, -4),
+  round(dec, -1), round(dec, -2),
+  round(dec, 0), round(dec, 1),
+  round(dec, 2), round(dec, 3),
+  round(dec, 4), round(dec, 5),
+  round(dec, 6), round(dec, 7),
+  round(dec, 8), round(dec, 9),
+  round(dec, 10), round(dec, 11),
+  round(dec, 12), round(dec, 13),
+  round(dec, 13), round(dec, 14),
+  round(dec, 15), round(dec, 16)
+FROM decimal_tbl_3_orc ORDER BY d
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: decimal_tbl_3_orc
+                  Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                  Select Operator
+                    expressions: round(dec, -15) (type: decimal(21,0)), round(dec, -16) (type: decimal(21,0)), round(dec, -5) (type: decimal(21,0)), round(dec, -6) (type: decimal(21,0)), round(dec, -3) (type: decimal(21,0)), round(dec, -4) (type: decimal(21,0)), round(dec, -1) (type: decimal(21,0)), round(dec, -2) (type: decimal(21,0)), round(dec, 0) (type: decimal(21,0)), round(dec, 1) (type: decimal(22,1)), round(dec, 2) (type: decimal(23,2)), round(dec, 3) (type: decimal(24,3)), round(dec, -13) (type: decimal(21,0)), round(dec, 4) (type: decimal(25,4)), round(dec, 5) (type: decimal(26,5)), round(dec, 6) (type: decimal(27,6)), round(dec, 7) (type: decimal(28,7)), round(dec, 8) (type: decimal(29,8)), round(dec, 9) (type: decimal(30,9)), round(dec, 10) (type: decimal(31,10)), round(dec, 11) (type: decimal(32,11)), round(dec, 12) (type: decimal(33,12)), round(dec, 13) (type: decimal(34,13)), round(dec, -14) (type: decimal(21,0)), round(dec, 14) (type: decimal(35,14)), round(dec, 15) 
 (type: decimal(36,15)), round(dec, 16) (type: decimal(37,16)), round(dec, -11) (type: decimal(21,0)), round(dec, -12) (type: decimal(21,0)), round(dec, -9) (type: decimal(21,0)), round(dec, -10) (type: decimal(21,0)), round(dec, -7) (type: decimal(21,0)), round(dec, -8) (type: decimal(21,0))
+                    outputColumnNames: _col0, _col1, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col2, _col20, _col21, _col22, _col23, _col24, _col25, _col26, _col27, _col28, _col29, _col3, _col31, _col32, _col33, _col4, _col5, _col6, _col7, _col8, _col9
+                    Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: _col0 (type: decimal(21,0))
+                      sort order: +
+                      Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                      value expressions: _col1 (type: decimal(21,0)), _col2 (type: decimal(21,0)), _col3 (type: decimal(21,0)), _col4 (type: decimal(21,0)), _col5 (type: decimal(21,0)), _col6 (type: decimal(21,0)), _col7 (type: decimal(21,0)), _col8 (type: decimal(21,0)), _col9 (type: decimal(21,0)), _col10 (type: decimal(21,0)), _col11 (type: decimal(21,0)), _col12 (type: decimal(21,0)), _col13 (type: decimal(21,0)), _col14 (type: decimal(21,0)), _col15 (type: decimal(21,0)), _col16 (type: decimal(21,0)), _col17 (type: decimal(22,1)), _col18 (type: decimal(23,2)), _col19 (type: decimal(24,3)), _col20 (type: decimal(25,4)), _col21 (type: decimal(26,5)), _col22 (type: decimal(27,6)), _col23 (type: decimal(28,7)), _col24 (type: decimal(29,8)), _col25 (type: decimal(30,9)), _col26 (type: decimal(31,10)), _col27 (type: decimal(32,11)), _col28 (type: decimal(33,12)), _col29 (type: decimal(34,13)), _col31 (type: decimal(35,14)), _col32 (type: decimal(36,15)), _col33 (type: decimal(37,16))
+            Execution mode: vectorized
+        Reducer 2 
+            Reduce Operator Tree:
+              Select Operator
+                expressions: KEY.reducesinkkey0 (type: decimal(21,0)), VALUE._col0 (type: decimal(21,0)), VALUE._col1 (type: decimal(21,0)), VALUE._col2 (type: decimal(21,0)), VALUE._col3 (type: decimal(21,0)), VALUE._col4 (type: decimal(21,0)), VALUE._col5 (type: decimal(21,0)), VALUE._col6 (type: decimal(21,0)), VALUE._col7 (type: decimal(21,0)), VALUE._col8 (type: decimal(21,0)), VALUE._col9 (type: decimal(21,0)), VALUE._col10 (type: decimal(21,0)), VALUE._col11 (type: decimal(21,0)), VALUE._col12 (type: decimal(21,0)), VALUE._col13 (type: decimal(21,0)), VALUE._col14 (type: decimal(21,0)), VALUE._col15 (type: decimal(21,0)), VALUE._col16 (type: decimal(22,1)), VALUE._col17 (type: decimal(23,2)), VALUE._col18 (type: decimal(24,3)), VALUE._col19 (type: decimal(25,4)), VALUE._col20 (type: decimal(26,5)), VALUE._col21 (type: decimal(27,6)), VALUE._col22 (type: decimal(28,7)), VALUE._col23 (type: decimal(29,8)), VALUE._col24 (type: decimal(30,9)), VALUE._col25 (type: decimal(31,10)),
  VALUE._col26 (type: decimal(32,11)), VALUE._col27 (type: decimal(33,12)), VALUE._col28 (type: decimal(34,13)), VALUE._col28 (type: decimal(34,13)), VALUE._col29 (type: decimal(35,14)), VALUE._col30 (type: decimal(36,15)), VALUE._col31 (type: decimal(37,16))
+                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
+                Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                File Output Operator
+                  compressed: false
+                  Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                  table:
+                      input format: org.apache.hadoop.mapred.TextInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Execution mode: vectorized
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: SELECT
+  round(dec, -15) as d, round(dec, -16),
+  round(dec, -13), round(dec, -14),
+  round(dec, -11), round(dec, -12),
+  round(dec, -9), round(dec, -10),
+  round(dec, -7), round(dec, -8),
+  round(dec, -5), round(dec, -6),
+  round(dec, -3), round(dec, -4),
+  round(dec, -1), round(dec, -2),
+  round(dec, 0), round(dec, 1),
+  round(dec, 2), round(dec, 3),
+  round(dec, 4), round(dec, 5),
+  round(dec, 6), round(dec, 7),
+  round(dec, 8), round(dec, 9),
+  round(dec, 10), round(dec, 11),
+  round(dec, 12), round(dec, 13),
+  round(dec, 13), round(dec, 14),
+  round(dec, 15), round(dec, 16)
+FROM decimal_tbl_3_orc ORDER BY d
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_3_orc
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT
+  round(dec, -15) as d, round(dec, -16),
+  round(dec, -13), round(dec, -14),
+  round(dec, -11), round(dec, -12),
+  round(dec, -9), round(dec, -10),
+  round(dec, -7), round(dec, -8),
+  round(dec, -5), round(dec, -6),
+  round(dec, -3), round(dec, -4),
+  round(dec, -1), round(dec, -2),
+  round(dec, 0), round(dec, 1),
+  round(dec, 2), round(dec, 3),
+  round(dec, 4), round(dec, 5),
+  round(dec, 6), round(dec, 7),
+  round(dec, 8), round(dec, 9),
+  round(dec, 10), round(dec, 11),
+  round(dec, 12), round(dec, 13),
+  round(dec, 13), round(dec, 14),
+  round(dec, 15), round(dec, 16)
+FROM decimal_tbl_3_orc ORDER BY d
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_3_orc
+#### A masked pattern was here ####
+0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	3	3.1	3.14	3.142	3.1416	3.14159	3.141593	3.1415927	3.14159265	3.141592654	3.1415926536	3.14159265359	3.141592653590	3.1415926535898	3.1415926535898	3.14159265358979	3.141592653589793	3.1415926535897930
+PREHOOK: query: create table decimal_tbl_4_orc (pos decimal(38,18), neg decimal(38,18)) 
+STORED AS ORC
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@decimal_tbl_4_orc
+POSTHOOK: query: create table decimal_tbl_4_orc (pos decimal(38,18), neg decimal(38,18)) 
+STORED AS ORC
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@decimal_tbl_4_orc
+PREHOOK: query: insert into table decimal_tbl_4_orc values(1809242.3151111344, -1809242.3151111344)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__4
+PREHOOK: Output: default@decimal_tbl_4_orc
+POSTHOOK: query: insert into table decimal_tbl_4_orc values(1809242.3151111344, -1809242.3151111344)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__4
+POSTHOOK: Output: default@decimal_tbl_4_orc
+POSTHOOK: Lineage: decimal_tbl_4_orc.neg EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2, type:string, comment:), ]
+POSTHOOK: Lineage: decimal_tbl_4_orc.pos EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: select * from decimal_tbl_4_orc
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_4_orc
+#### A masked pattern was here ####
+POSTHOOK: query: select * from decimal_tbl_4_orc
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_4_orc
+#### A masked pattern was here ####
+1809242.3151111344	-1809242.3151111344
+PREHOOK: query: EXPLAIN
+SELECT round(pos, 9) as p, round(neg, 9), round(1809242.3151111344BD, 9), round(-1809242.3151111344BD, 9)
+FROM decimal_tbl_4_orc ORDER BY p
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT round(pos, 9) as p, round(neg, 9), round(1809242.3151111344BD, 9), round(-1809242.3151111344BD, 9)
+FROM decimal_tbl_4_orc ORDER BY p
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Tez
+      Edges:
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
+#### A masked pattern was here ####
+      Vertices:
+        Map 1 
+            Map Operator Tree:
+                TableScan
+                  alias: decimal_tbl_4_orc
+                  Statistics: Num rows: 1 Data size: 224 Basic stats: COMPLETE Column stats: NONE
+                  Select Operator
+                    expressions: round(pos, 9) (type: decimal(30,9)), round(neg, 9) (type: decimal(30,9)), round(1809242.3151111344, 9) (type: decimal(17,9)), round((- 1809242.3151111344), 9) (type: decimal(17,9))
+                    outputColumnNames: _col0, _col1, _col2, _col3
+                    Statistics: Num rows: 1 Data size: 224 Basic stats: COMPLETE Column stats: NONE
+                    Reduce Output Operator
+                      key expressions: _col0 (type: decimal(30,9))
+                      sort order: +
+                      Statistics: Num rows: 1 Data size: 224 Basic stats: COMPLETE Column stats: NONE
+                      value expressions: _col1 (type: decimal(30,9)), _col2 (type: decimal(17,9)), _col3 (type: decimal(17,9))
+        Reducer 2 
+            Reduce Operator Tree:
+              Select Operator
+                expressions: KEY.reducesinkkey0 (type: decimal(30,9)), VALUE._col0 (type: decimal(30,9)), VALUE._col1 (type: decimal(17,9)), VALUE._col2 (type: decimal(17,9))
+                outputColumnNames: _col0, _col1, _col2, _col3
+                Statistics: Num rows: 1 Data size: 224 Basic stats: COMPLETE Column stats: NONE
+                File Output Operator
+                  compressed: false
+                  Statistics: Num rows: 1 Data size: 224 Basic stats: COMPLETE Column stats: NONE
+                  table:
+                      input format: org.apache.hadoop.mapred.TextInputFormat
+                      output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+            Execution mode: vectorized
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: SELECT round(pos, 9) as p, round(neg, 9), round(1809242.3151111344BD, 9), round(-1809242.3151111344BD, 9)
+FROM decimal_tbl_4_orc ORDER BY p
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_4_orc
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT round(pos, 9) as p, round(neg, 9), round(1809242.3151111344BD, 9), round(-1809242.3151111344BD, 9)
+FROM decimal_tbl_4_orc ORDER BY p
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_4_orc
+#### A masked pattern was here ####
+1809242.315111134	-1809242.315111134	1809242.315111134	-1809242.315111134

Added: hive/trunk/ql/src/test/results/clientpositive/vector_decimal_round.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/vector_decimal_round.q.out?rev=1636683&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/vector_decimal_round.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/vector_decimal_round.q.out Tue Nov  4 18:34:22 2014
@@ -0,0 +1,414 @@
+PREHOOK: query: create table decimal_tbl_txt (dec decimal(10,0)) 
+ROW FORMAT DELIMITED
+   FIELDS TERMINATED BY ' '
+STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@decimal_tbl_txt
+POSTHOOK: query: create table decimal_tbl_txt (dec decimal(10,0)) 
+ROW FORMAT DELIMITED
+   FIELDS TERMINATED BY ' '
+STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@decimal_tbl_txt
+PREHOOK: query: insert into table decimal_tbl_txt values(101)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@decimal_tbl_txt
+POSTHOOK: query: insert into table decimal_tbl_txt values(101)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@decimal_tbl_txt
+POSTHOOK: Lineage: decimal_tbl_txt.dec EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: select * from decimal_tbl_txt
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_txt
+#### A masked pattern was here ####
+POSTHOOK: query: select * from decimal_tbl_txt
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_txt
+#### A masked pattern was here ####
+101
+PREHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_txt order by dec
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_txt order by dec
+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_tbl_txt
+            Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+            Select Operator
+              expressions: dec (type: decimal(10,0)), round(dec, -1) (type: decimal(11,0))
+              outputColumnNames: _col0, _col1
+              Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+              Reduce Output Operator
+                key expressions: _col0 (type: decimal(10,0))
+                sort order: +
+                Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                value expressions: _col1 (type: decimal(11,0))
+      Reduce Operator Tree:
+        Select Operator
+          expressions: KEY.reducesinkkey0 (type: decimal(10,0)), VALUE._col0 (type: decimal(11,0))
+          outputColumnNames: _col0, _col1
+          Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+          File Output Operator
+            compressed: false
+            Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+            table:
+                input format: org.apache.hadoop.mapred.TextInputFormat
+                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select dec, round(dec, -1) from decimal_tbl_txt order by dec
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_txt
+#### A masked pattern was here ####
+POSTHOOK: query: select dec, round(dec, -1) from decimal_tbl_txt order by dec
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_txt
+#### A masked pattern was here ####
+101	100
+PREHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_txt order by round(dec, -1)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_txt order by round(dec, -1)
+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_tbl_txt
+            Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+            Select Operator
+              expressions: dec (type: decimal(10,0))
+              outputColumnNames: _col0
+              Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+              Reduce Output Operator
+                key expressions: round(_col0, (- 1)) (type: decimal(11,0))
+                sort order: +
+                Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                value expressions: _col0 (type: decimal(10,0))
+      Reduce Operator Tree:
+        Select Operator
+          expressions: VALUE._col0 (type: decimal(10,0)), KEY.reducesinkkey0 (type: decimal(11,0))
+          outputColumnNames: _col0, _col1
+          Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+          File Output Operator
+            compressed: false
+            Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+            table:
+                input format: org.apache.hadoop.mapred.TextInputFormat
+                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select dec, round(dec, -1) from decimal_tbl_txt order by round(dec, -1)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_txt
+#### A masked pattern was here ####
+POSTHOOK: query: select dec, round(dec, -1) from decimal_tbl_txt order by round(dec, -1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_txt
+#### A masked pattern was here ####
+101	100
+PREHOOK: query: create table decimal_tbl_rc (dec decimal(10,0))
+row format serde 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe' stored as rcfile
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@decimal_tbl_rc
+POSTHOOK: query: create table decimal_tbl_rc (dec decimal(10,0))
+row format serde 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe' stored as rcfile
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@decimal_tbl_rc
+PREHOOK: query: insert into table decimal_tbl_rc values(101)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@decimal_tbl_rc
+POSTHOOK: query: insert into table decimal_tbl_rc values(101)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@decimal_tbl_rc
+POSTHOOK: Lineage: decimal_tbl_rc.dec EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: select * from decimal_tbl_rc
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_rc
+#### A masked pattern was here ####
+POSTHOOK: query: select * from decimal_tbl_rc
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_rc
+#### A masked pattern was here ####
+101
+PREHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_rc order by dec
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_rc order by dec
+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_tbl_rc
+            Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+            Select Operator
+              expressions: dec (type: decimal(10,0)), round(dec, -1) (type: decimal(11,0))
+              outputColumnNames: _col0, _col1
+              Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+              Reduce Output Operator
+                key expressions: _col0 (type: decimal(10,0))
+                sort order: +
+                Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                value expressions: _col1 (type: decimal(11,0))
+      Reduce Operator Tree:
+        Select Operator
+          expressions: KEY.reducesinkkey0 (type: decimal(10,0)), VALUE._col0 (type: decimal(11,0))
+          outputColumnNames: _col0, _col1
+          Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+          File Output Operator
+            compressed: false
+            Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+            table:
+                input format: org.apache.hadoop.mapred.TextInputFormat
+                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select dec, round(dec, -1) from decimal_tbl_rc order by dec
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_rc
+#### A masked pattern was here ####
+POSTHOOK: query: select dec, round(dec, -1) from decimal_tbl_rc order by dec
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_rc
+#### A masked pattern was here ####
+101	100
+PREHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_rc order by round(dec, -1)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_rc order by round(dec, -1)
+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_tbl_rc
+            Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+            Select Operator
+              expressions: dec (type: decimal(10,0))
+              outputColumnNames: _col0
+              Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+              Reduce Output Operator
+                key expressions: round(_col0, (- 1)) (type: decimal(11,0))
+                sort order: +
+                Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+                value expressions: _col0 (type: decimal(10,0))
+      Reduce Operator Tree:
+        Select Operator
+          expressions: VALUE._col0 (type: decimal(10,0)), KEY.reducesinkkey0 (type: decimal(11,0))
+          outputColumnNames: _col0, _col1
+          Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+          File Output Operator
+            compressed: false
+            Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE
+            table:
+                input format: org.apache.hadoop.mapred.TextInputFormat
+                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select dec, round(dec, -1) from decimal_tbl_rc order by round(dec, -1)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_rc
+#### A masked pattern was here ####
+POSTHOOK: query: select dec, round(dec, -1) from decimal_tbl_rc order by round(dec, -1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_rc
+#### A masked pattern was here ####
+101	100
+PREHOOK: query: create table decimal_tbl_orc (dec decimal(10,0))
+stored as orc
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@decimal_tbl_orc
+POSTHOOK: query: create table decimal_tbl_orc (dec decimal(10,0))
+stored as orc
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@decimal_tbl_orc
+PREHOOK: query: insert into table decimal_tbl_orc values(101)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@decimal_tbl_orc
+POSTHOOK: query: insert into table decimal_tbl_orc values(101)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@decimal_tbl_orc
+POSTHOOK: Lineage: decimal_tbl_orc.dec EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: select * from decimal_tbl_orc
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_orc
+#### A masked pattern was here ####
+POSTHOOK: query: select * from decimal_tbl_orc
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_orc
+#### A masked pattern was here ####
+101
+PREHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_orc order by dec
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_orc order by dec
+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_tbl_orc
+            Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+            Select Operator
+              expressions: dec (type: decimal(10,0)), round(dec, -1) (type: decimal(11,0))
+              outputColumnNames: _col0, _col1
+              Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+              Reduce Output Operator
+                key expressions: _col0 (type: decimal(10,0))
+                sort order: +
+                Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                value expressions: _col1 (type: decimal(11,0))
+      Execution mode: vectorized
+      Reduce Operator Tree:
+        Select Operator
+          expressions: KEY.reducesinkkey0 (type: decimal(10,0)), VALUE._col0 (type: decimal(11,0))
+          outputColumnNames: _col0, _col1
+          Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+          File Output Operator
+            compressed: false
+            Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+            table:
+                input format: org.apache.hadoop.mapred.TextInputFormat
+                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select dec, round(dec, -1) from decimal_tbl_orc order by dec
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_orc
+#### A masked pattern was here ####
+POSTHOOK: query: select dec, round(dec, -1) from decimal_tbl_orc order by dec
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_orc
+#### A masked pattern was here ####
+101	100
+PREHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_orc order by round(dec, -1)
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select dec, round(dec, -1) from decimal_tbl_orc order by round(dec, -1)
+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_tbl_orc
+            Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+            Select Operator
+              expressions: dec (type: decimal(10,0))
+              outputColumnNames: _col0
+              Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+              Reduce Output Operator
+                key expressions: round(_col0, (- 1)) (type: decimal(11,0))
+                sort order: +
+                Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+                value expressions: _col0 (type: decimal(10,0))
+      Execution mode: vectorized
+      Reduce Operator Tree:
+        Select Operator
+          expressions: VALUE._col0 (type: decimal(10,0)), KEY.reducesinkkey0 (type: decimal(11,0))
+          outputColumnNames: _col0, _col1
+          Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+          File Output Operator
+            compressed: false
+            Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE
+            table:
+                input format: org.apache.hadoop.mapred.TextInputFormat
+                output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: -1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select dec, round(dec, -1) from decimal_tbl_orc order by round(dec, -1)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_tbl_orc
+#### A masked pattern was here ####
+POSTHOOK: query: select dec, round(dec, -1) from decimal_tbl_orc order by round(dec, -1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_tbl_orc
+#### A masked pattern was here ####
+101	100