Author: jdere
Date: Fri Nov  7 21:58:56 2014
New Revision: 1637469

URL: http://svn.apache.org/r1637469
Log:
HIVE-8745: Joins on decimal keys return different results whether they are run 
as reduce join or map join
- This reverts HIVE-7373

Added:
    hive/trunk/ql/src/test/queries/clientpositive/decimal_join2.q
    hive/trunk/ql/src/test/results/clientpositive/decimal_join2.q.out
Modified:
    
hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/Decimal128.java
    
hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java
    
hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestDecimal128.java
    
hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestHiveDecimal.java
    
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestDecimalUtil.java
    
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java
    
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/sarg/TestSearchArgumentImpl.java
    
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFOPDivide.java
    
hive/trunk/ql/src/test/results/clientpositive/alter_partition_change_col.q.out
    hive/trunk/ql/src/test/results/clientpositive/avro_decimal.q.out
    hive/trunk/ql/src/test/results/clientpositive/avro_decimal_native.q.out
    hive/trunk/ql/src/test/results/clientpositive/char_pad_convert.q.out
    hive/trunk/ql/src/test/results/clientpositive/decimal_2.q.out
    hive/trunk/ql/src/test/results/clientpositive/decimal_3.q.out
    hive/trunk/ql/src/test/results/clientpositive/decimal_4.q.out
    hive/trunk/ql/src/test/results/clientpositive/decimal_5.q.out
    hive/trunk/ql/src/test/results/clientpositive/decimal_6.q.out
    hive/trunk/ql/src/test/results/clientpositive/decimal_precision.q.out
    hive/trunk/ql/src/test/results/clientpositive/decimal_trailing.q.out
    hive/trunk/ql/src/test/results/clientpositive/decimal_udf.q.out
    hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out
    hive/trunk/ql/src/test/results/clientpositive/parquet_decimal.q.out
    hive/trunk/ql/src/test/results/clientpositive/parquet_decimal1.q.out
    hive/trunk/ql/src/test/results/clientpositive/serde_regex.q.out
    hive/trunk/ql/src/test/results/clientpositive/tez/mapjoin_decimal.q.out
    hive/trunk/ql/src/test/results/clientpositive/tez/update_all_types.q.out
    hive/trunk/ql/src/test/results/clientpositive/tez/vector_between_in.q.out
    hive/trunk/ql/src/test/results/clientpositive/tez/vector_data_types.q.out
    hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_2.q.out
    hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_3.q.out
    hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_4.q.out
    hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_5.q.out
    hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_6.q.out
    
hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_aggregate.q.out
    hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_cast.q.out
    
hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_expressions.q.out
    
hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_mapjoin.q.out
    
hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_precision.q.out
    
hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_trailing.q.out
    hive/trunk/ql/src/test/results/clientpositive/tez/vector_decimal_udf.q.out
    
hive/trunk/ql/src/test/results/clientpositive/tez/vector_reduce_groupby_decimal.q.out
    hive/trunk/ql/src/test/results/clientpositive/udf_case.q.out
    hive/trunk/ql/src/test/results/clientpositive/udf_when.q.out
    hive/trunk/ql/src/test/results/clientpositive/update_all_types.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_aggregate_9.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_between_in.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_data_types.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_decimal_2.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_decimal_3.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_decimal_4.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_decimal_5.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_decimal_6.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_decimal_aggregate.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_decimal_cast.q.out
    
hive/trunk/ql/src/test/results/clientpositive/vector_decimal_expressions.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_decimal_precision.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_decimal_round_2.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_decimal_trailing.q.out
    hive/trunk/ql/src/test/results/clientpositive/vector_decimal_udf.q.out
    
hive/trunk/ql/src/test/results/clientpositive/vector_reduce_groupby_decimal.q.out
    hive/trunk/ql/src/test/results/clientpositive/windowing_decimal.q.out
    hive/trunk/ql/src/test/results/clientpositive/windowing_navfn.q.out
    hive/trunk/ql/src/test/results/clientpositive/windowing_rank.q.out
    
hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/binarysortable/BinarySortableSerDe.java

Modified: 
hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/Decimal128.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/Decimal128.java?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- 
hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/Decimal128.java 
(original)
+++ 
hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/Decimal128.java 
Fri Nov  7 21:58:56 2014
@@ -103,13 +103,6 @@ public final class Decimal128 extends Nu
   private short scale;
 
   /**
-   * This is the actual scale detected from the value passed to this 
Decimal128.
-   * The value is always equals or less than #scale. It is used to return the 
correct
-   * decimal string from {@link #getHiveDecimalString()}.
-   */
-  private short actualScale;
-
-  /**
    * -1 means negative, 0 means zero, 1 means positive.
    *
    * @serial
@@ -134,7 +127,6 @@ public final class Decimal128 extends Nu
     this.unscaledValue = new UnsignedInt128();
     this.scale = 0;
     this.signum = 0;
-    this.actualScale = 0;
   }
 
   /**
@@ -147,7 +139,6 @@ public final class Decimal128 extends Nu
     this.unscaledValue = new UnsignedInt128(o.unscaledValue);
     this.scale = o.scale;
     this.signum = o.signum;
-    this.actualScale = o.actualScale;
   }
 
   /**
@@ -187,7 +178,6 @@ public final class Decimal128 extends Nu
     checkScaleRange(scale);
     this.unscaledValue = new UnsignedInt128(unscaledVal);
     this.scale = scale;
-    this.actualScale = scale;
     if (unscaledValue.isZero()) {
       this.signum = 0;
     } else {
@@ -274,7 +264,6 @@ public final class Decimal128 extends Nu
     this.unscaledValue.update(o.unscaledValue);
     this.scale = o.scale;
     this.signum = o.signum;
-    this.actualScale = o.actualScale;
     return this;
   }
 
@@ -303,7 +292,7 @@ public final class Decimal128 extends Nu
 
   /**
    * Update the value of this object with the given {@code long} with the given
-   * scale.
+   * scal.
    *
    * @param val
    *          {@code long} value to be set to {@code Decimal128}.
@@ -325,8 +314,6 @@ public final class Decimal128 extends Nu
     if (scale != 0) {
       changeScaleDestructive(scale);
     }
-    // set actualScale to 0 because there is no fractional digits on integer 
values
-    this.actualScale = 0;
     return this;
   }
 
@@ -354,11 +341,6 @@ public final class Decimal128 extends Nu
     checkScaleRange(scale);
     this.scale = scale;
 
-    // Obtains the scale of the double value to keep a record of the original
-    // scale. This will be used to print the HiveDecimal string with the
-    // correct value scale.
-    this.actualScale = (short) BigDecimal.valueOf(val).scale();
-
     // Translate the double into sign, exponent and significand, according
     // to the formulae in JLS, Section 20.10.22.
     long valBits = Double.doubleToLongBits(val);
@@ -382,10 +364,6 @@ public final class Decimal128 extends Nu
       exponent++;
     }
 
-    // Calculate the real number of fractional digits from the double value
-    this.actualScale -= (exponent > 0) ? exponent : 0;
-    this.actualScale = (this.actualScale < 0) ? 0 : this.actualScale;
-
     // so far same as java.math.BigDecimal, but the scaling below is
     // specific to ANSI SQL Numeric.
 
@@ -448,7 +426,6 @@ public final class Decimal128 extends Nu
   public Decimal128 update(IntBuffer buf, int precision) {
     int scaleAndSignum = buf.get();
     this.scale = (short) (scaleAndSignum >> 16);
-    this.actualScale = this.scale;
     this.signum = (byte) (scaleAndSignum & 0xFF);
     this.unscaledValue.update(buf, precision);
     assert ((signum == 0) == unscaledValue.isZero());
@@ -465,7 +442,6 @@ public final class Decimal128 extends Nu
   public Decimal128 update128(IntBuffer buf) {
     int scaleAndSignum = buf.get();
     this.scale = (short) (scaleAndSignum >> 16);
-    this.actualScale = this.scale;
     this.signum = (byte) (scaleAndSignum & 0xFF);
     this.unscaledValue.update128(buf);
     assert ((signum == 0) == unscaledValue.isZero());
@@ -482,7 +458,6 @@ public final class Decimal128 extends Nu
   public Decimal128 update96(IntBuffer buf) {
     int scaleAndSignum = buf.get();
     this.scale = (short) (scaleAndSignum >> 16);
-    this.actualScale = this.scale;
     this.signum = (byte) (scaleAndSignum & 0xFF);
     this.unscaledValue.update96(buf);
     assert ((signum == 0) == unscaledValue.isZero());
@@ -499,7 +474,6 @@ public final class Decimal128 extends Nu
   public Decimal128 update64(IntBuffer buf) {
     int scaleAndSignum = buf.get();
     this.scale = (short) (scaleAndSignum >> 16);
-    this.actualScale = this.scale;
     this.signum = (byte) (scaleAndSignum & 0xFF);
     this.unscaledValue.update64(buf);
     assert ((signum == 0) == unscaledValue.isZero());
@@ -516,7 +490,6 @@ public final class Decimal128 extends Nu
   public Decimal128 update32(IntBuffer buf) {
     int scaleAndSignum = buf.get();
     this.scale = (short) (scaleAndSignum >> 16);
-    this.actualScale = this.scale;
     this.signum = (byte) (scaleAndSignum & 0xFF);
     this.unscaledValue.update32(buf);
     assert ((signum == 0) == unscaledValue.isZero());
@@ -537,7 +510,6 @@ public final class Decimal128 extends Nu
   public Decimal128 update(int[] array, int offset, int precision) {
     int scaleAndSignum = array[offset];
     this.scale = (short) (scaleAndSignum >> 16);
-    this.actualScale = this.scale;
     this.signum = (byte) (scaleAndSignum & 0xFF);
     this.unscaledValue.update(array, offset + 1, precision);
     return this;
@@ -555,7 +527,6 @@ public final class Decimal128 extends Nu
   public Decimal128 update128(int[] array, int offset) {
     int scaleAndSignum = array[offset];
     this.scale = (short) (scaleAndSignum >> 16);
-    this.actualScale = this.scale;
     this.signum = (byte) (scaleAndSignum & 0xFF);
     this.unscaledValue.update128(array, offset + 1);
     return this;
@@ -573,7 +544,6 @@ public final class Decimal128 extends Nu
   public Decimal128 update96(int[] array, int offset) {
     int scaleAndSignum = array[offset];
     this.scale = (short) (scaleAndSignum >> 16);
-    this.actualScale = this.scale;
     this.signum = (byte) (scaleAndSignum & 0xFF);
     this.unscaledValue.update96(array, offset + 1);
     return this;
@@ -591,7 +561,6 @@ public final class Decimal128 extends Nu
   public Decimal128 update64(int[] array, int offset) {
     int scaleAndSignum = array[offset];
     this.scale = (short) (scaleAndSignum >> 16);
-    this.actualScale = this.scale;
     this.signum = (byte) (scaleAndSignum & 0xFF);
     this.unscaledValue.update64(array, offset + 1);
     return this;
@@ -609,7 +578,6 @@ public final class Decimal128 extends Nu
   public Decimal128 update32(int[] array, int offset) {
     int scaleAndSignum = array[offset];
     this.scale = (short) (scaleAndSignum >> 16);
-    this.actualScale = this.scale;
     this.signum = (byte) (scaleAndSignum & 0xFF);
     this.unscaledValue.update32(array, offset + 1);
     return this;
@@ -632,6 +600,7 @@ public final class Decimal128 extends Nu
    * @param scale
    */
   public Decimal128 update(BigInteger bigInt, short scale) {
+    this.scale = scale;
     this.signum = (byte) bigInt.compareTo(BigInteger.ZERO);
     if (signum == 0) {
       update(0);
@@ -640,9 +609,6 @@ public final class Decimal128 extends Nu
     } else {
       unscaledValue.update(bigInt);
     }
-    this.scale = scale;
-    this.actualScale = scale;
-
     return this;
   }
 
@@ -765,9 +731,6 @@ public final class Decimal128 extends Nu
       this.unscaledValue.addDestructive(accumulated);
     }
 
-    this.actualScale = (short) (fractionalDigits - exponent);
-    this.actualScale = (this.actualScale < 0) ? 0 : this.actualScale;
-
     int scaleAdjust = scale - fractionalDigits + exponent;
     if (scaleAdjust > 0) {
       this.unscaledValue.scaleUpTenDestructive((short) scaleAdjust);
@@ -961,7 +924,6 @@ public final class Decimal128 extends Nu
       this.unscaledValue.scaleUpTenDestructive((short) -scaleDown);
     }
     this.scale = scale;
-    this.actualScale = scale;
 
     this.unscaledValue.throwIfExceedsTenToThirtyEight();
   }
@@ -1163,7 +1125,6 @@ public final class Decimal128 extends Nu
     if (this.signum == 0 || right.signum == 0) {
       this.zeroClear();
       this.scale = newScale;
-      this.actualScale = newScale;
       return;
     }
 
@@ -1193,7 +1154,6 @@ public final class Decimal128 extends Nu
     }
 
     this.scale = newScale;
-    this.actualScale = newScale;
     this.signum = (byte) (this.signum * right.signum);
     if (this.unscaledValue.isZero()) {
       this.signum = 0; // because of scaling down, this could happen
@@ -1284,7 +1244,6 @@ public final class Decimal128 extends Nu
     }
     if (this.signum == 0) {
       this.scale = newScale;
-      this.actualScale = newScale;
       remainder.update(this);
       return;
     }
@@ -1312,7 +1271,6 @@ public final class Decimal128 extends Nu
     }
 
     this.scale = newScale;
-    this.actualScale = newScale;
     this.signum = (byte) (this.unscaledValue.isZero() ? 0
         : (this.signum * right.signum));
     remainder.scale = scale;
@@ -1773,13 +1731,17 @@ public final class Decimal128 extends Nu
   private int [] tmpArray = new int[2];
 
   /**
-   * Returns the string representation of this value. It returns the original
-   * {@code actualScale} fractional part when this value was created. However,
+   * Returns the string representation of this value. It discards the trailing 
zeros
+   * in the fractional part to match the HiveDecimal's string representation. 
However,
    * don't use this string representation for the reconstruction of the object.
    *
    * @return string representation of this value
    */
   public String getHiveDecimalString() {
+    if (this.signum == 0) {
+      return "0";
+    }
+
     StringBuilder buf = new StringBuilder(50);
     if (this.signum < 0) {
       buf.append('-');
@@ -1790,40 +1752,32 @@ public final class Decimal128 extends Nu
     int trailingZeros = tmpArray[1];
     int numIntegerDigits = unscaledLength - this.scale;
     if (numIntegerDigits > 0) {
+
       // write out integer part first
       // then write out fractional part
       for (int i=0; i < numIntegerDigits; i++) {
         buf.append(unscaled[i]);
       }
 
-      if (this.actualScale > 0) {
+      if (this.scale > trailingZeros) {
         buf.append('.');
-
-        if (trailingZeros > this.actualScale) {
-          for (int i=0; i < (trailingZeros - this.scale); i++) {
-            buf.append("0");
-          }
-        }
-
-        for (int i = numIntegerDigits; i < (numIntegerDigits + 
this.actualScale); i++) {
+        for (int i = numIntegerDigits; i < (unscaledLength - trailingZeros); 
i++) {
           buf.append(unscaled[i]);
         }
       }
     } else {
+
       // no integer part
       buf.append('0');
 
-      if (this.actualScale > 0) {
+      if (this.scale > trailingZeros) {
+
         // fractional part has, starting with zeros
         buf.append('.');
-
-        if (this.actualScale > trailingZeros) {
-          for (int i = unscaledLength; i < this.scale; ++i) {
-            buf.append('0');
-          }
+        for (int i = unscaledLength; i < this.scale; ++i) {
+          buf.append('0');
         }
-
-        for (int i = 0; i < (numIntegerDigits + this.actualScale); i++) {
+        for (int i = 0; i < (unscaledLength - trailingZeros); i++) {
           buf.append(unscaled[i]);
         }
       }
@@ -1882,10 +1836,9 @@ public final class Decimal128 extends Nu
 
   @Override
   public String toString() {
-    return toFormalString() + "(Decimal128: scale=" + scale + ", actualScale="
-        + this.actualScale + ", signum=" + signum + ", BigDecimal.toString="
-        + toBigDecimal().toString() + ", unscaledValue=[" + 
unscaledValue.toString()
-        + "])";
+    return toFormalString() + "(Decimal128: scale=" + scale + ", signum="
+        + signum + ", BigDecimal.toString=" + toBigDecimal().toString()
+        + ", unscaledValue=[" + unscaledValue.toString() + "])";
   }
 
   /**
@@ -2003,7 +1956,6 @@ public final class Decimal128 extends Nu
    */
   public Decimal128 fastUpdateFromInternalStorage(byte[] internalStorage, 
short scale) {
     this.scale = scale;
-    this.actualScale = scale;
     this.signum = 
this.unscaledValue.fastUpdateFromInternalStorage(internalStorage);
 
     return this;

Modified: 
hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- 
hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java 
(original)
+++ 
hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java 
Fri Nov  7 21:58:56 2014
@@ -30,6 +30,7 @@ import java.math.RoundingMode;
 public class HiveDecimal implements Comparable<HiveDecimal> {
   public static final int MAX_PRECISION = 38;
   public static final int MAX_SCALE = 38;
+
   /**
    * Default precision/scale when user doesn't specify in the column metadata, 
such as
    * decimal and decimal(8).
@@ -112,7 +113,7 @@ public class HiveDecimal implements Comp
 
   @Override
   public int hashCode() {
-    return trim(bd).hashCode();
+    return bd.hashCode();
   }
 
   @Override
@@ -168,7 +169,7 @@ public class HiveDecimal implements Comp
   }
 
   public HiveDecimal multiply(HiveDecimal dec) {
-    return create(bd.multiply(dec.bd), true);
+    return create(bd.multiply(dec.bd), false);
   }
 
   public BigInteger unscaledValue() {
@@ -201,7 +202,7 @@ public class HiveDecimal implements Comp
   }
 
   public HiveDecimal divide(HiveDecimal dec) {
-    return create(trim(bd.divide(dec.bd, MAX_SCALE, RoundingMode.HALF_UP)), 
true);
+    return create(bd.divide(dec.bd, MAX_SCALE, RoundingMode.HALF_UP), true);
   }
 
   /**
@@ -231,6 +232,8 @@ public class HiveDecimal implements Comp
       return null;
     }
 
+    bd = trim(bd);
+
     int intDigits = bd.precision() - bd.scale();
 
     if (intDigits > MAX_PRECISION) {
@@ -241,6 +244,8 @@ public class HiveDecimal implements Comp
     if (bd.scale() > maxScale ) {
       if (allowRounding) {
         bd = bd.setScale(maxScale, RoundingMode.HALF_UP);
+        // Trimming is again necessary, because rounding may introduce new 
trailing 0's.
+        bd = trim(bd);
       } else {
         bd = null;
       }
@@ -254,6 +259,8 @@ public class HiveDecimal implements Comp
       return null;
     }
 
+    bd = trim(bd);
+
     if (bd.scale() > maxScale) {
       bd = bd.setScale(maxScale, RoundingMode.HALF_UP);
     }

Modified: 
hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestDecimal128.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestDecimal128.java?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- 
hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestDecimal128.java
 (original)
+++ 
hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestDecimal128.java
 Fri Nov  7 21:58:56 2014
@@ -811,7 +811,7 @@ public class TestDecimal128 {
     assertEquals("0.00923076923", d2.getHiveDecimalString());
 
     Decimal128 d3 = new Decimal128("0.00923076000", (short) 15);
-    assertEquals("0.00923076000", d3.getHiveDecimalString());
+    assertEquals("0.00923076", d3.getHiveDecimalString());
 
     Decimal128 d4 = new Decimal128("4294967296.01", (short) 15);
     assertEquals("4294967296.01", d4.getHiveDecimalString());
@@ -849,37 +849,15 @@ public class TestDecimal128 {
     d11.update(hd6.bigDecimalValue());
     assertEquals(hd6.toString(), d11.getHiveDecimalString());
 
-    // The trailing zeros from a double value are trimmed automatically
-    // by the double data type
     Decimal128 d12 = new Decimal128(27.000, (short)3);
-    HiveDecimal hd7 = HiveDecimal.create(new BigDecimal("27.0"));
+    HiveDecimal hd7 = HiveDecimal.create(new BigDecimal("27.000"));
     assertEquals(hd7.toString(), d12.getHiveDecimalString());
-    assertEquals("27.0", d12.getHiveDecimalString());
+    assertEquals("27", d12.getHiveDecimalString());
 
     Decimal128 d13 = new Decimal128(1234123000, (short)3);
     HiveDecimal hd8 = HiveDecimal.create(new BigDecimal("1234123000"));
     assertEquals(hd8.toString(), d13.getHiveDecimalString());
     assertEquals("1234123000", d13.getHiveDecimalString());
-
-    Decimal128 d14 = new Decimal128(1.33e4, (short)10);
-    HiveDecimal hd9 = HiveDecimal.create(new BigDecimal("1.33e4"));
-    assertEquals(hd9.toString(), d14.getHiveDecimalString());
-    assertEquals("13300", d14.getHiveDecimalString());
-
-    Decimal128 d15 = new Decimal128(1.33e-4, (short)10);
-    HiveDecimal hd10 = HiveDecimal.create(new BigDecimal("1.33e-4"));
-    assertEquals(hd10.toString(), d15.getHiveDecimalString());
-    assertEquals("0.000133", d15.getHiveDecimalString());
-
-    Decimal128 d16 = new Decimal128("1.33e4", (short)10);
-    HiveDecimal hd11 = HiveDecimal.create(new BigDecimal("1.33e4"));
-    assertEquals(hd11.toString(), d16.getHiveDecimalString());
-    assertEquals("13300", d16.getHiveDecimalString());
-
-    Decimal128 d17 = new Decimal128("1.33e-4", (short)10);
-    HiveDecimal hd12 = HiveDecimal.create(new BigDecimal("1.33e-4"));
-    assertEquals(hd12.toString(), d17.getHiveDecimalString());
-    assertEquals("0.000133", d17.getHiveDecimalString());
   }
 
   @Test

Modified: 
hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestHiveDecimal.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestHiveDecimal.java?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- 
hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestHiveDecimal.java
 (original)
+++ 
hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestHiveDecimal.java
 Fri Nov  7 21:58:56 2014
@@ -57,35 +57,27 @@ public class TestHiveDecimal {
     Assert.assertEquals("-1786135888657847525803324040144343378.1", 
dec.toString());
 
     dec = HiveDecimal.create("005.34000");
-    Assert.assertEquals(dec.precision(), 6);
-    Assert.assertEquals(dec.scale(), 5);
+    Assert.assertEquals(dec.precision(), 3);
+    Assert.assertEquals(dec.scale(), 2);
 
     dec = 
HiveDecimal.create("178613588865784752580332404014434337809799306448796128931113691624");
     Assert.assertNull(dec);
 
-    // Leaving trailing zeros
-    Assert.assertEquals("0.0", HiveDecimal.enforcePrecisionScale(new 
BigDecimal("0.0"), 2, 1).toString());
-    Assert.assertEquals("0.00", HiveDecimal.enforcePrecisionScale(new 
BigDecimal("0.00"), 3, 2).toString());
-    Assert.assertEquals("0.0000", HiveDecimal.enforcePrecisionScale(new 
BigDecimal("0.0000"), 10, 4).toString());
-    Assert.assertEquals("100.00000", HiveDecimal.enforcePrecisionScale(new 
BigDecimal("100.00000"), 15, 5).toString());
-    Assert.assertEquals("100.00", HiveDecimal.enforcePrecisionScale(new 
BigDecimal("100.00"), 15, 5).toString());
-
-    // Rounding numbers
-    Assert.assertEquals("0.01", HiveDecimal.enforcePrecisionScale(new 
BigDecimal("0.012"), 3, 2).toString());
-    Assert.assertEquals("0.02", HiveDecimal.enforcePrecisionScale(new 
BigDecimal("0.015"), 3, 2).toString());
-    Assert.assertEquals("0.01", HiveDecimal.enforcePrecisionScale(new 
BigDecimal("0.0145"), 3, 2).toString());
-
     // Rounding numbers that increase int digits
     Assert.assertEquals("10",
         HiveDecimal.enforcePrecisionScale(new BigDecimal("9.5"), 2, 
0).toString());
     Assert.assertNull(HiveDecimal.enforcePrecisionScale(new BigDecimal("9.5"), 
1, 0));
     Assert.assertEquals("9",
         HiveDecimal.enforcePrecisionScale(new BigDecimal("9.4"), 1, 
0).toString());
+  }
 
-    // Integers with no scale values are not modified (zeros are not null)
-    Assert.assertEquals("0", HiveDecimal.enforcePrecisionScale(new 
BigDecimal("0"), 1, 0).toString());
-    Assert.assertEquals("30", HiveDecimal.enforcePrecisionScale(new 
BigDecimal("30"), 2, 0).toString());
-    Assert.assertEquals("5", HiveDecimal.enforcePrecisionScale(new 
BigDecimal("5"), 3, 2).toString());
+  @Test
+  @Concurrent(count=4)
+  @Repeating(repetition=100)
+  public void testTrailingZeroRemovalAfterEnforcement() {
+    String decStr = "8.090000000000000000000000000000000000000123456";
+    HiveDecimal dec = HiveDecimal.create(decStr);
+    Assert.assertEquals("8.09", dec.toString());
   }
 
   @Test
@@ -94,7 +86,7 @@ public class TestHiveDecimal {
   public void testMultiply() {
     HiveDecimal dec1 = HiveDecimal.create("0.00001786135888657847525803");
     HiveDecimal dec2 = HiveDecimal.create("3.0000123456789");
-    Assert.assertNotNull(dec1.multiply(dec2));
+    Assert.assertNull(dec1.multiply(dec2));
 
     dec1 = HiveDecimal.create("178613588865784752580323232232323444.4");
     dec2 = HiveDecimal.create("178613588865784752580302323232.3");
@@ -106,11 +98,11 @@ public class TestHiveDecimal {
 
     dec1 = HiveDecimal.create("3.140");
     dec2 = HiveDecimal.create("1.00");
-    Assert.assertEquals("3.14000", dec1.multiply(dec2).toString());
+    Assert.assertEquals("3.14", dec1.multiply(dec2).toString());
 
     dec1 = HiveDecimal.create("43.010");
     dec2 = HiveDecimal.create("2");
-    Assert.assertEquals("86.020", dec1.multiply(dec2).toString());
+    Assert.assertEquals("86.02", dec1.multiply(dec2).toString());
   }
 
   @Test
@@ -125,7 +117,7 @@ public class TestHiveDecimal {
     Assert.assertNull(dec1);
 
     dec1 = HiveDecimal.create("3.140");
-    Assert.assertEquals("9.859600", dec1.pow(2).toString());
+    Assert.assertEquals("9.8596", dec1.pow(2).toString());
   }
 
   @Test
@@ -155,7 +147,7 @@ public class TestHiveDecimal {
 
     dec1 = HiveDecimal.create("3.140");
     dec2 = HiveDecimal.create("1.00");
-    Assert.assertEquals("4.140", dec1.add(dec2).toString());
+    Assert.assertEquals("4.14", dec1.add(dec2).toString());
   }
 
 
@@ -165,7 +157,7 @@ public class TestHiveDecimal {
   public void testSubtract() {
       HiveDecimal dec1 = HiveDecimal.create("3.140");
       HiveDecimal dec2 = HiveDecimal.create("1.00");
-      Assert.assertEquals("2.140", dec1.subtract(dec2).toString());
+      Assert.assertEquals("2.14", dec1.subtract(dec2).toString());
   }
 
   @Test

Modified: 
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestDecimalUtil.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestDecimalUtil.java?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- 
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestDecimalUtil.java
 (original)
+++ 
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestDecimalUtil.java
 Fri Nov  7 21:58:56 2014
@@ -38,8 +38,9 @@ public class TestDecimalUtil {
     DecimalUtil.floor(0, d1, dcv);
     Assert.assertEquals(0, 
expected1.compareTo(dcv.vector[0].getHiveDecimal()));
 
+    // As of HIVE-8745, these decimal values should be trimmed of trailing 
zeros.
     HiveDecimal d2 = HiveDecimal.create("23.00000");
-    Assert.assertEquals(5, d2.scale());
+    Assert.assertEquals(0, d2.scale());
     HiveDecimal expected2 = HiveDecimal.create("23");
     DecimalUtil.floor(0, d2, dcv);
     Assert.assertEquals(0, 
expected2.compareTo(dcv.vector[0].getHiveDecimal()));
@@ -50,19 +51,19 @@ public class TestDecimalUtil {
     Assert.assertEquals(0, 
expected3.compareTo(dcv.vector[0].getHiveDecimal()));
 
     HiveDecimal d4 = HiveDecimal.create("-17.00000");
-    Assert.assertEquals(5, d4.scale());
+    Assert.assertEquals(0, d4.scale());
     HiveDecimal expected4 = HiveDecimal.create("-17");
     DecimalUtil.floor(0, d4, dcv);
     Assert.assertEquals(0, 
expected4.compareTo(dcv.vector[0].getHiveDecimal()));
 
     HiveDecimal d5 = HiveDecimal.create("-0.30000");
-    Assert.assertEquals(5, d5.scale());
+    Assert.assertEquals(1, d5.scale());
     HiveDecimal expected5 = HiveDecimal.create("-1");
     DecimalUtil.floor(0, d5, dcv);
     Assert.assertEquals(0, 
expected5.compareTo(dcv.vector[0].getHiveDecimal()));
 
     HiveDecimal d6 = HiveDecimal.create("0.30000");
-    Assert.assertEquals(5, d6.scale());
+    Assert.assertEquals(1, d6.scale());
     HiveDecimal expected6 = HiveDecimal.create("0");
     DecimalUtil.floor(0, d6, dcv);
     Assert.assertEquals(0, 
expected6.compareTo(dcv.vector[0].getHiveDecimal()));
@@ -76,8 +77,9 @@ public class TestDecimalUtil {
     DecimalUtil.ceiling(0, d1, dcv);
     Assert.assertEquals(0, 
expected1.compareTo(dcv.vector[0].getHiveDecimal()));
 
+    // As of HIVE-8745, these decimal values should be trimmed of trailing 
zeros.
     HiveDecimal d2 = HiveDecimal.create("23.00000");
-    Assert.assertEquals(5, d2.scale());
+    Assert.assertEquals(0, d2.scale());
     HiveDecimal expected2 = HiveDecimal.create("23");
     DecimalUtil.ceiling(0, d2, dcv);
     Assert.assertEquals(0, 
expected2.compareTo(dcv.vector[0].getHiveDecimal()));
@@ -88,19 +90,19 @@ public class TestDecimalUtil {
     Assert.assertEquals(0, 
expected3.compareTo(dcv.vector[0].getHiveDecimal()));
 
     HiveDecimal d4 = HiveDecimal.create("-17.00000");
-    Assert.assertEquals(5, d4.scale());
+    Assert.assertEquals(0, d4.scale());
     HiveDecimal expected4 = HiveDecimal.create("-17");
     DecimalUtil.ceiling(0, d4, dcv);
     Assert.assertEquals(0, 
expected4.compareTo(dcv.vector[0].getHiveDecimal()));
 
     HiveDecimal d5 = HiveDecimal.create("-0.30000");
-    Assert.assertEquals(5, d5.scale());
+    Assert.assertEquals(1, d5.scale());
     HiveDecimal expected5 = HiveDecimal.create("0");
     DecimalUtil.ceiling(0, d5, dcv);
     Assert.assertEquals(0, 
expected5.compareTo(dcv.vector[0].getHiveDecimal()));
 
     HiveDecimal d6 = HiveDecimal.create("0.30000");
-    Assert.assertEquals(5, d6.scale());
+    Assert.assertEquals(1, d6.scale());
     HiveDecimal expected6 = HiveDecimal.create("1");
     DecimalUtil.ceiling(0, d6, dcv);
     Assert.assertEquals(0, 
expected6.compareTo(dcv.vector[0].getHiveDecimal()));
@@ -127,8 +129,9 @@ public class TestDecimalUtil {
     DecimalUtil.round(0, d1, dcv);
     Assert.assertEquals(0, 
expected1.compareTo(dcv.vector[0].getHiveDecimal()));
 
+    // As of HIVE-8745, these decimal values should be trimmed of trailing 
zeros.
     HiveDecimal d2 = HiveDecimal.create("23.00000");
-    Assert.assertEquals(5, d2.scale());
+    Assert.assertEquals(0, d2.scale());
     HiveDecimal expected2 = HiveDecimal.create("23");
     DecimalUtil.round(0, d2, dcv);
     Assert.assertEquals(0, 
expected2.compareTo(dcv.vector[0].getHiveDecimal()));
@@ -139,7 +142,7 @@ public class TestDecimalUtil {
     Assert.assertEquals(0, 
expected3.compareTo(dcv.vector[0].getHiveDecimal()));
 
     HiveDecimal d4 = HiveDecimal.create("-17.00000");
-    Assert.assertEquals(5, d4.scale());
+    Assert.assertEquals(0, d4.scale());
     HiveDecimal expected4 = HiveDecimal.create("-17");
     DecimalUtil.round(0, d4, dcv);
     Assert.assertEquals(0, 
expected4.compareTo(dcv.vector[0].getHiveDecimal()));
@@ -163,8 +166,9 @@ public class TestDecimalUtil {
     DecimalUtil.round(0, d1, dcv);
     Assert.assertEquals(0, 
expected1.compareTo(dcv.vector[0].getHiveDecimal()));
 
+    // As of HIVE-8745, these decimal values should be trimmed of trailing 
zeros.
     HiveDecimal d2 = HiveDecimal.create("23.56700");
-    Assert.assertEquals(5, d2.scale());
+    Assert.assertEquals(3, d2.scale());
     HiveDecimal expected2 = HiveDecimal.create("23.567");
     DecimalUtil.round(0, d2, dcv);
     Assert.assertEquals(0, 
expected2.compareTo(dcv.vector[0].getHiveDecimal()));
@@ -175,7 +179,7 @@ public class TestDecimalUtil {
     Assert.assertEquals(0, 
expected3.compareTo(dcv.vector[0].getHiveDecimal()));
 
     HiveDecimal d4 = HiveDecimal.create("-17.23400");
-    Assert.assertEquals(5, d4.scale());
+    Assert.assertEquals(3, d4.scale());
     HiveDecimal expected4 = HiveDecimal.create("-17.234");
     DecimalUtil.round(0, d4, dcv);
     Assert.assertEquals(0, 
expected4.compareTo(dcv.vector[0].getHiveDecimal()));
@@ -204,8 +208,9 @@ public class TestDecimalUtil {
     DecimalUtil.negate(0, d2, dcv);
     Assert.assertEquals(0, 
expected2.compareTo(dcv.vector[0].getHiveDecimal()));
 
+    // As of HIVE-8745, these decimal values should be trimmed of trailing 
zeros.
     HiveDecimal d3 = HiveDecimal.create("0.00000");
-    Assert.assertEquals(5, d3.scale());
+    Assert.assertEquals(0, d3.scale());
     HiveDecimal expected3 = HiveDecimal.create("0");
     DecimalUtil.negate(0, d3, dcv);
     Assert.assertEquals(0, 
expected3.compareTo(dcv.vector[0].getHiveDecimal()));
@@ -223,7 +228,7 @@ public class TestDecimalUtil {
     Assert.assertEquals(-1, lcv.vector[0]);
 
     HiveDecimal d3 = HiveDecimal.create("0.00000");
-    Assert.assertEquals(5, d3.scale());
+    Assert.assertEquals(0, d3.scale());
     d3.setScale(5);
     DecimalUtil.sign(0, d3, lcv);
     Assert.assertEquals(0, lcv.vector[0]);

Modified: 
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- 
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java
 (original)
+++ 
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java
 Fri Nov  7 21:58:56 2014
@@ -323,18 +323,19 @@ public class TestVectorTypeCasts {
     expr.evaluate(b);
     BytesColumnVector r = (BytesColumnVector) b.cols[1];
 
-    byte[] v = toBytes("1.10");
+    // As of HIVE-8745, these decimal values should be trimmed of trailing 
zeros.
+    byte[] v = toBytes("1.1");
     assertTrue(((Integer) v.length).toString() + " " + r.length[0], v.length 
== r.length[0]);
     Assert.assertEquals(0,
         StringExpr.compare(v, 0, v.length,
             r.vector[0], r.start[0], r.length[0]));
 
-    v = toBytes("-2.20");
+    v = toBytes("-2.2");
     Assert.assertEquals(0,
         StringExpr.compare(v, 0, v.length,
             r.vector[1], r.start[1], r.length[1]));
 
-    v = toBytes("9999999999999999.00");
+    v = toBytes("9999999999999999");
     Assert.assertEquals(0,
         StringExpr.compare(v, 0, v.length,
             r.vector[2], r.start[2], r.length[2]));

Modified: 
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/sarg/TestSearchArgumentImpl.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/sarg/TestSearchArgumentImpl.java?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- 
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/sarg/TestSearchArgumentImpl.java
 (original)
+++ 
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/sarg/TestSearchArgumentImpl.java
 Fri Nov  7 21:58:56 2014
@@ -2830,7 +2830,7 @@ public class TestSearchArgumentImpl {
             .build();
     assertEquals("leaf-0 = (LESS_THAN x 1970-01-11)\n" +
         "leaf-1 = (LESS_THAN_EQUALS y hi)\n" +
-        "leaf-2 = (EQUALS z 1.0)\n" +
+        "leaf-2 = (EQUALS z 1)\n" +
         "expr = (and leaf-0 leaf-1 leaf-2)", sarg.toString());
 
     sarg = SearchArgumentFactory.newBuilder()

Modified: 
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFOPDivide.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFOPDivide.java?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- 
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFOPDivide.java
 (original)
+++ 
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFOPDivide.java
 Fri Nov  7 21:58:56 2014
@@ -187,7 +187,7 @@ public class TestGenericUDFOPDivide exte
     PrimitiveObjectInspector oi = (PrimitiveObjectInspector) 
udf.initialize(inputOIs);
     Assert.assertEquals(TypeInfoFactory.getDecimalTypeInfo(11, 7), 
oi.getTypeInfo());
     HiveDecimalWritable res = (HiveDecimalWritable) udf.evaluate(args);
-    Assert.assertEquals(HiveDecimal.create("0.0617100"), res.getHiveDecimal());
+    Assert.assertEquals(HiveDecimal.create("0.06171"), res.getHiveDecimal());
   }
 
   @Test

Added: hive/trunk/ql/src/test/queries/clientpositive/decimal_join2.q
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/decimal_join2.q?rev=1637469&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/decimal_join2.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/decimal_join2.q Fri Nov  7 
21:58:56 2014
@@ -0,0 +1,26 @@
+DROP TABLE IF EXISTS DECIMAL_3_txt;
+DROP TABLE IF EXISTS DECIMAL_3;
+
+CREATE TABLE DECIMAL_3_txt(key decimal(38,18), value int)
+ROW FORMAT DELIMITED
+   FIELDS TERMINATED BY ' '
+STORED AS TEXTFILE;
+
+LOAD DATA LOCAL INPATH '../../data/files/kv7.txt' INTO TABLE DECIMAL_3_txt;
+
+CREATE TABLE DECIMAL_3 STORED AS ORC AS SELECT * FROM DECIMAL_3_txt;
+
+set hive.auto.convert.join=false;
+EXPLAIN
+SELECT * FROM DECIMAL_3 a JOIN DECIMAL_3 b ON (a.key = b.key) ORDER BY a.key, 
a.value, b.key, b.value;
+
+SELECT * FROM DECIMAL_3 a JOIN DECIMAL_3 b ON (a.key = b.key) ORDER BY a.key, 
a.value, b.key, b.value;
+
+set hive.auto.convert.join=true;
+EXPLAIN
+SELECT * FROM DECIMAL_3 a JOIN DECIMAL_3 b ON (a.key = b.key) ORDER BY a.key, 
a.value, b.key, b.value;
+
+SELECT * FROM DECIMAL_3 a JOIN DECIMAL_3 b ON (a.key = b.key) ORDER BY a.key, 
a.value, b.key, b.value;
+
+DROP TABLE DECIMAL_3_txt;
+DROP TABLE DECIMAL_3;

Modified: 
hive/trunk/ql/src/test/results/clientpositive/alter_partition_change_col.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/alter_partition_change_col.q.out?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- 
hive/trunk/ql/src/test/results/clientpositive/alter_partition_change_col.q.out 
(original)
+++ 
hive/trunk/ql/src/test/results/clientpositive/alter_partition_change_col.q.out 
Fri Nov  7 21:58:56 2014
@@ -280,7 +280,7 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col1
 POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
 #### A masked pattern was here ####
-Beck   0.0     abc     123
+Beck   0       abc     123
 Beck   77.341  abc     123
 Beck   79.9    abc     123
 Cluck  5.96    abc     123
@@ -288,7 +288,7 @@ Mary        33.33   abc     123
 Mary   4.329   abc     123
 Snow   55.71   abc     123
 Tom    -12.25  abc     123
-Tom    19.00   abc     123
+Tom    19      abc     123
 Tom    234.79  abc     123
 PREHOOK: query: select * from alter_partition_change_col1 where 
p1='__HIVE_DEFAULT_PARTITION__'
 PREHOOK: type: QUERY
@@ -347,7 +347,7 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col1
 POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
 #### A masked pattern was here ####
-Beck   0.0     abc     123
+Beck   0       abc     123
 Beck   77.341  abc     123
 Beck   79.9    abc     123
 Cluck  5.96    abc     123
@@ -355,7 +355,7 @@ Mary        33.33   abc     123
 Mary   4.329   abc     123
 Snow   55.71   abc     123
 Tom    -12.25  abc     123
-Tom    19.00   abc     123
+Tom    19      abc     123
 Tom    234.79  abc     123
 PREHOOK: query: select * from alter_partition_change_col1 where 
p1='__HIVE_DEFAULT_PARTITION__'
 PREHOOK: type: QUERY
@@ -367,7 +367,7 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col1
 POSTHOOK: Input: 
default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
 #### A masked pattern was here ####
-Beck   0.0     __HIVE_DEFAULT_PARTITION__      123
+Beck   0       __HIVE_DEFAULT_PARTITION__      123
 Beck   77.341  __HIVE_DEFAULT_PARTITION__      123
 Beck   79.9    __HIVE_DEFAULT_PARTITION__      123
 Cluck  5.96    __HIVE_DEFAULT_PARTITION__      123
@@ -375,7 +375,7 @@ Mary        33.33   __HIVE_DEFAULT_PARTITION__      12
 Mary   4.329   __HIVE_DEFAULT_PARTITION__      123
 Snow   55.71   __HIVE_DEFAULT_PARTITION__      123
 Tom    -12.25  __HIVE_DEFAULT_PARTITION__      123
-Tom    19.00   __HIVE_DEFAULT_PARTITION__      123
+Tom    19      __HIVE_DEFAULT_PARTITION__      123
 Tom    234.79  __HIVE_DEFAULT_PARTITION__      123
 PREHOOK: query: -- Try out replace columns
 alter table alter_partition_change_col1 partition (p1='abc', p2='123') replace 
columns (c1 string)
@@ -449,7 +449,7 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col1
 POSTHOOK: Input: 
default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
 #### A masked pattern was here ####
-Beck   0.0     __HIVE_DEFAULT_PARTITION__      123
+Beck   0       __HIVE_DEFAULT_PARTITION__      123
 Beck   77.341  __HIVE_DEFAULT_PARTITION__      123
 Beck   79.9    __HIVE_DEFAULT_PARTITION__      123
 Cluck  5.96    __HIVE_DEFAULT_PARTITION__      123
@@ -457,7 +457,7 @@ Mary        33.33   __HIVE_DEFAULT_PARTITION__      12
 Mary   4.329   __HIVE_DEFAULT_PARTITION__      123
 Snow   55.71   __HIVE_DEFAULT_PARTITION__      123
 Tom    -12.25  __HIVE_DEFAULT_PARTITION__      123
-Tom    19.00   __HIVE_DEFAULT_PARTITION__      123
+Tom    19      __HIVE_DEFAULT_PARTITION__      123
 Tom    234.79  __HIVE_DEFAULT_PARTITION__      123
 PREHOOK: query: alter table alter_partition_change_col1 replace columns (c1 
string)
 PREHOOK: type: ALTERTABLE_REPLACECOLS
@@ -593,7 +593,7 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col1
 POSTHOOK: Input: 
default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
 #### A masked pattern was here ####
-Beck   0.0     __HIVE_DEFAULT_PARTITION__      123
+Beck   0       __HIVE_DEFAULT_PARTITION__      123
 Beck   77.341  __HIVE_DEFAULT_PARTITION__      123
 Beck   79.9    __HIVE_DEFAULT_PARTITION__      123
 Cluck  5.96    __HIVE_DEFAULT_PARTITION__      123
@@ -601,7 +601,7 @@ Mary        33.33   __HIVE_DEFAULT_PARTITION__      12
 Mary   4.329   __HIVE_DEFAULT_PARTITION__      123
 Snow   55.71   __HIVE_DEFAULT_PARTITION__      123
 Tom    -12.25  __HIVE_DEFAULT_PARTITION__      123
-Tom    19.00   __HIVE_DEFAULT_PARTITION__      123
+Tom    19      __HIVE_DEFAULT_PARTITION__      123
 Tom    234.79  __HIVE_DEFAULT_PARTITION__      123
 PREHOOK: query: alter table alter_partition_change_col1 partition (p1='abc', 
p2='123') add columns (c2 decimal(14,4))
 PREHOOK: type: ALTERTABLE_ADDCOLS
@@ -638,7 +638,7 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col1
 POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
 #### A masked pattern was here ####
-Beck   0.0     abc     123
+Beck   0       abc     123
 Beck   77.341  abc     123
 Beck   79.9    abc     123
 Cluck  5.96    abc     123
@@ -646,7 +646,7 @@ Mary        33.33   abc     123
 Mary   4.329   abc     123
 Snow   55.71   abc     123
 Tom    -12.25  abc     123
-Tom    19.00   abc     123
+Tom    19      abc     123
 Tom    234.79  abc     123
 PREHOOK: query: select * from alter_partition_change_col1 where 
p1='__HIVE_DEFAULT_PARTITION__'
 PREHOOK: type: QUERY
@@ -658,7 +658,7 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col1
 POSTHOOK: Input: 
default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
 #### A masked pattern was here ####
-Beck   0.0     __HIVE_DEFAULT_PARTITION__      123
+Beck   0       __HIVE_DEFAULT_PARTITION__      123
 Beck   77.341  __HIVE_DEFAULT_PARTITION__      123
 Beck   79.9    __HIVE_DEFAULT_PARTITION__      123
 Cluck  5.96    __HIVE_DEFAULT_PARTITION__      123
@@ -666,7 +666,7 @@ Mary        33.33   __HIVE_DEFAULT_PARTITION__      12
 Mary   4.329   __HIVE_DEFAULT_PARTITION__      123
 Snow   55.71   __HIVE_DEFAULT_PARTITION__      123
 Tom    -12.25  __HIVE_DEFAULT_PARTITION__      123
-Tom    19.00   __HIVE_DEFAULT_PARTITION__      123
+Tom    19      __HIVE_DEFAULT_PARTITION__      123
 Tom    234.79  __HIVE_DEFAULT_PARTITION__      123
 PREHOOK: query: -- Try changing column for all partitions at once
 alter table alter_partition_change_col1 partition (p1, p2='123') change column 
c2 c2 decimal(10,0)

Modified: hive/trunk/ql/src/test/results/clientpositive/avro_decimal.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/avro_decimal.q.out?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/avro_decimal.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/avro_decimal.q.out Fri Nov  7 
21:58:56 2014
@@ -106,9 +106,9 @@ Mary        4.33
 Cluck  5.96
 Tom    -12.25
 Mary   33.33
-Tom    19.00
-Beck   0.00
-Beck   79.90
+Tom    19
+Beck   0
+Beck   79.9
 PREHOOK: query: DROP TABLE IF EXISTS avro_dec1
 PREHOOK: type: DROPTABLE
 POSTHOOK: query: DROP TABLE IF EXISTS avro_dec1
@@ -175,10 +175,10 @@ POSTHOOK: Input: default@avro_dec1
 77.3
 55.7
 4.3
-6.0
+6
 12.3
 33.3
-19.0
+19
 3.2
 79.9
 PREHOOK: query: DROP TABLE dec

Modified: 
hive/trunk/ql/src/test/results/clientpositive/avro_decimal_native.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/avro_decimal_native.q.out?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/avro_decimal_native.q.out 
(original)
+++ hive/trunk/ql/src/test/results/clientpositive/avro_decimal_native.q.out Fri 
Nov  7 21:58:56 2014
@@ -92,9 +92,9 @@ Mary  4.33
 Cluck  5.96
 Tom    -12.25
 Mary   33.33
-Tom    19.00
-Beck   0.00
-Beck   79.90
+Tom    19
+Beck   0
+Beck   79.9
 PREHOOK: query: DROP TABLE IF EXISTS avro_dec1
 PREHOOK: type: DROPTABLE
 POSTHOOK: query: DROP TABLE IF EXISTS avro_dec1
@@ -143,10 +143,10 @@ POSTHOOK: Input: default@avro_dec1
 77.3
 55.7
 4.3
-6.0
+6
 12.3
 33.3
-19.0
+19
 3.2
 79.9
 PREHOOK: query: DROP TABLE dec

Modified: hive/trunk/ql/src/test/results/clientpositive/char_pad_convert.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/char_pad_convert.q.out?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/char_pad_convert.q.out 
(original)
+++ hive/trunk/ql/src/test/results/clientpositive/char_pad_convert.q.out Fri 
Nov  7 21:58:56 2014
@@ -144,7 +144,7 @@ select lpad(f, 4, ' '),
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@over1k
 #### A masked pattern was here ####
-74.7   42      zzzzzTRUE       20      dd45.40 yard du
+74.7   42      zzzzzTRUE       20      ddd45.4 yard du
 26.4   37      zzzzzTRUE       20      dd29.62 history
 96.9   18      zzzzFALSE       20      dd27.32 history
 13.0   34      zzzzFALSE       20      dd23.91 topolog
@@ -190,7 +190,7 @@ POSTHOOK: query: select rpad(f, 4, ' '),
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@over1k
 #### A masked pattern was here ####
-74.7   42      TRUEzzzzz       20      45.40dd yard du
+74.7   42      TRUEzzzzz       20      45.4ddd yard du
 26.4   37      TRUEzzzzz       20      29.62dd history
 96.9   18      FALSEzzzz       20      27.32dd history
 13.0   34      FALSEzzzz       20      23.91dd topolog

Modified: hive/trunk/ql/src/test/results/clientpositive/decimal_2.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/decimal_2.q.out?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/decimal_2.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/decimal_2.q.out Fri Nov  7 
21:58:56 2014
@@ -264,7 +264,7 @@ POSTHOOK: query: select cast(0.999999999
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@decimal_2
 #### A masked pattern was here ####
-1.0
+1
 PREHOOK: query: select cast('0.99999999999999999999' as decimal(20,20)) from 
decimal_2
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_2

Modified: hive/trunk/ql/src/test/results/clientpositive/decimal_3.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/decimal_3.q.out?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/decimal_3.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/decimal_3.q.out Fri Nov  7 
21:58:56 2014
@@ -33,7 +33,7 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@decimal_3
 #### A masked pattern was here ####
 NULL   0
--1234567890.1234567890 -1234567890
+-1234567890.123456789  -1234567890
 -4400  4400
 -1255.49       -1255
 -1.122 -11
@@ -42,7 +42,7 @@ NULL  0
 -0.333 0
 -0.33  0
 -0.3   0
-0.000000000000000000   0
+0      0
 0      0
 0      0
 0.01   0
@@ -53,8 +53,8 @@ NULL  0
 0.33   0
 0.333  0
 1      1
-1.0    1
-1.000000000000000000   1
+1      1
+1      1
 1.12   1
 1.122  1
 2      2
@@ -62,14 +62,14 @@ NULL        0
 3.14   3
 3.14   3
 3.14   3
-3.140  4
+3.14   4
 10     10
 20     20
 100    100
-124.00 124
+124    124
 125.2  125
 200    200
-1234567890.1234567800  1234567890
+1234567890.12345678    1234567890
 PREHOOK: query: SELECT * FROM DECIMAL_3 ORDER BY key DESC, value DESC
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_3
@@ -78,14 +78,14 @@ POSTHOOK: query: SELECT * FROM DECIMAL_3
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@decimal_3
 #### A masked pattern was here ####
-1234567890.1234567800  1234567890
+1234567890.12345678    1234567890
 200    200
 125.2  125
-124.00 124
+124    124
 100    100
 20     20
 10     10
-3.140  4
+3.14   4
 3.14   3
 3.14   3
 3.14   3
@@ -93,8 +93,8 @@ POSTHOOK: Input: default@decimal_3
 2      2
 1.122  1
 1.12   1
-1.000000000000000000   1
-1.0    1
+1      1
+1      1
 1      1
 0.333  0
 0.33   0
@@ -105,7 +105,7 @@ POSTHOOK: Input: default@decimal_3
 0.01   0
 0      0
 0      0
-0.000000000000000000   0
+0      0
 -0.3   0
 -0.33  0
 -0.333 0
@@ -114,7 +114,7 @@ POSTHOOK: Input: default@decimal_3
 -1.122 -11
 -1255.49       -1255
 -4400  4400
--1234567890.1234567890 -1234567890
+-1234567890.123456789  -1234567890
 NULL   0
 PREHOOK: query: SELECT * FROM DECIMAL_3 ORDER BY key, value
 PREHOOK: type: QUERY
@@ -125,7 +125,7 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@decimal_3
 #### A masked pattern was here ####
 NULL   0
--1234567890.1234567890 -1234567890
+-1234567890.123456789  -1234567890
 -4400  4400
 -1255.49       -1255
 -1.122 -11
@@ -134,7 +134,7 @@ NULL        0
 -0.333 0
 -0.33  0
 -0.3   0
-0.000000000000000000   0
+0      0
 0      0
 0      0
 0.01   0
@@ -145,8 +145,8 @@ NULL        0
 0.33   0
 0.333  0
 1      1
-1.0    1
-1.000000000000000000   1
+1      1
+1      1
 1.12   1
 1.122  1
 2      2
@@ -154,14 +154,14 @@ NULL      0
 3.14   3
 3.14   3
 3.14   3
-3.140  4
+3.14   4
 10     10
 20     20
 100    100
-124.00 124
+124    124
 125.2  125
 200    200
-1234567890.1234567800  1234567890
+1234567890.12345678    1234567890
 PREHOOK: query: SELECT DISTINCT key FROM DECIMAL_3 ORDER BY key
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_3
@@ -171,7 +171,7 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@decimal_3
 #### A masked pattern was here ####
 NULL
--1234567890.1234567890
+-1234567890.123456789
 -4400
 -1255.49
 -1.122
@@ -179,7 +179,7 @@ NULL
 -0.333
 -0.33
 -0.3
-0.000000000000000000
+0
 0.01
 0.02
 0.1
@@ -195,10 +195,10 @@ NULL
 10
 20
 100
-124.00
+124
 125.2
 200
-1234567890.1234567800
+1234567890.12345678
 PREHOOK: query: SELECT key, sum(value) FROM DECIMAL_3 GROUP BY key ORDER BY key
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_3
@@ -208,7 +208,7 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@decimal_3
 #### A masked pattern was here ####
 NULL   0
--1234567890.1234567890 -1234567890
+-1234567890.123456789  -1234567890
 -4400  4400
 -1255.49       -1255
 -1.122 -11
@@ -216,7 +216,7 @@ NULL        0
 -0.333 0
 -0.33  0
 -0.3   0
-0.000000000000000000   0
+0      0
 0.01   0
 0.02   0
 0.1    0
@@ -232,10 +232,10 @@ NULL      0
 10     10
 20     20
 100    100
-124.00 124
+124    124
 125.2  125
 200    200
-1234567890.1234567800  1234567890
+1234567890.12345678    1234567890
 PREHOOK: query: SELECT value, sum(key) FROM DECIMAL_3 GROUP BY value ORDER BY 
value
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_3
@@ -244,23 +244,23 @@ POSTHOOK: query: SELECT value, sum(key) 
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@decimal_3
 #### A masked pattern was here ####
--1234567890    -1234567890.1234567890
+-1234567890    -1234567890.123456789
 -1255  -1255.49
 -11    -1.122
 -1     -2.24
-0      0.330000000000000000
-1      5.242000000000000000
+0      0.33
+1      5.242
 2      4
 3      9.42
-4      3.140
+4      3.14
 10     10
 20     20
 100    100
-124    124.00
+124    124
 125    125.2
 200    200
 4400   -4400
-1234567890     1234567890.1234567800
+1234567890     1234567890.12345678
 PREHOOK: query: SELECT * FROM DECIMAL_3 a JOIN DECIMAL_3 b ON (a.key = b.key) 
ORDER BY a.key, a.value, b.value
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_3
@@ -269,7 +269,7 @@ POSTHOOK: query: SELECT * FROM DECIMAL_3
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@decimal_3
 #### A masked pattern was here ####
--1234567890.1234567890 -1234567890     -1234567890.1234567890  -1234567890
+-1234567890.123456789  -1234567890     -1234567890.123456789   -1234567890
 -4400  4400    -4400   4400
 -1255.49       -1255   -1255.49        -1255
 -1.122 -11     -1.122  -11
@@ -280,7 +280,11 @@ POSTHOOK: Input: default@decimal_3
 -0.333 0       -0.333  0
 -0.33  0       -0.33   0
 -0.3   0       -0.3    0
-0.000000000000000000   0       0.000000000000000000    0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0      0       0       0
 0      0       0       0
 0      0       0       0
 0      0       0       0
@@ -293,8 +297,14 @@ POSTHOOK: Input: default@decimal_3
 0.33   0       0.33    0
 0.333  0       0.333   0
 1      1       1       1
-1.0    1       1.0     1
-1.000000000000000000   1       1.000000000000000000    1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
 1.12   1       1.12    1
 1.122  1       1.122   1
 2      2       2       2
@@ -310,14 +320,20 @@ POSTHOOK: Input: default@decimal_3
 3.14   3       3.14    3
 3.14   3       3.14    3
 3.14   3       3.14    3
-3.140  4       3.140   4
+3.14   3       3.14    4
+3.14   3       3.14    4
+3.14   3       3.14    4
+3.14   4       3.14    3
+3.14   4       3.14    3
+3.14   4       3.14    3
+3.14   4       3.14    4
 10     10      10      10
 20     20      20      20
 100    100     100     100
-124.00 124     124.00  124
+124    124     124     124
 125.2  125     125.2   125
 200    200     200     200
-1234567890.1234567800  1234567890      1234567890.1234567800   1234567890
+1234567890.12345678    1234567890      1234567890.12345678     1234567890
 PREHOOK: query: SELECT * FROM DECIMAL_3 WHERE key=3.14 ORDER BY key, value
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_3
@@ -329,7 +345,7 @@ POSTHOOK: Input: default@decimal_3
 3.14   3
 3.14   3
 3.14   3
-3.140  4
+3.14   4
 PREHOOK: query: SELECT * FROM DECIMAL_3 WHERE key=3.140 ORDER BY key, value
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_3
@@ -341,7 +357,7 @@ POSTHOOK: Input: default@decimal_3
 3.14   3
 3.14   3
 3.14   3
-3.140  4
+3.14   4
 PREHOOK: query: DROP TABLE DECIMAL_3
 PREHOOK: type: DROPTABLE
 PREHOOK: Input: default@decimal_3

Modified: hive/trunk/ql/src/test/results/clientpositive/decimal_4.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/decimal_4.q.out?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/decimal_4.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/decimal_4.q.out Fri Nov  7 
21:58:56 2014
@@ -57,7 +57,7 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@decimal_4_1
 #### A masked pattern was here ####
 NULL   0
--1234567890.1234567890 -1234567890
+-1234567890.123456789  -1234567890
 -4400  4400
 -1255.49       -1255
 -1.122 -11
@@ -66,7 +66,7 @@ NULL  0
 -0.333 0
 -0.33  0
 -0.3   0
-0.0000000000000000000000000    0
+0      0
 0      0
 0      0
 0.01   0
@@ -78,7 +78,7 @@ NULL  0
 0.333  0
 0.9999999999999999999999999    1
 1      1
-1.0    1
+1      1
 1.12   1
 1.122  1
 2      2
@@ -86,14 +86,14 @@ NULL        0
 3.14   3
 3.14   3
 3.14   3
-3.140  4
+3.14   4
 10     10
 20     20
 100    100
-124.00 124
+124    124
 125.2  125
 200    200
-1234567890.1234567800  1234567890
+1234567890.12345678    1234567890
 PREHOOK: query: SELECT * FROM DECIMAL_4_2 ORDER BY key
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_4_2
@@ -103,7 +103,7 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@decimal_4_2
 #### A masked pattern was here ####
 NULL   NULL
--1234567890.1234567890 -3703703670.3703703670
+-1234567890.123456789  -3703703670.370370367
 -4400  -13200
 -1255.49       -3766.47
 -1.122 -3.366
@@ -112,7 +112,7 @@ NULL        NULL
 -0.333 -0.999
 -0.33  -0.99
 -0.3   -0.9
-0.0000000000000000000000000    0.0000000000000000000000000
+0      0
 0      0
 0      0
 0.01   0.03
@@ -124,7 +124,7 @@ NULL        NULL
 0.333  0.999
 0.9999999999999999999999999    2.9999999999999999999999997
 1      3
-1.0    3.0
+1      3
 1.12   3.36
 1.122  3.366
 2      6
@@ -132,14 +132,14 @@ NULL      NULL
 3.14   9.42
 3.14   9.42
 3.14   9.42
-3.140  9.420
+3.14   9.42
 10     30
 20     60
 100    300
-124.00 372.00
+124    372
 125.2  375.6
 200    600
-1234567890.1234567800  3703703670.3703703400
+1234567890.12345678    3703703670.37037034
 PREHOOK: query: DROP TABLE DECIMAL_4_1
 PREHOOK: type: DROPTABLE
 PREHOOK: Input: default@decimal_4_1

Modified: hive/trunk/ql/src/test/results/clientpositive/decimal_5.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/decimal_5.q.out?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/decimal_5.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/decimal_5.q.out Fri Nov  7 
21:58:56 2014
@@ -43,7 +43,7 @@ NULL
 -0.333
 -0.33
 -0.3
-0.00000
+0
 0
 0
 0.01
@@ -54,8 +54,8 @@ NULL
 0.33
 0.333
 1
-1.0
-1.00000
+1
+1
 1.12
 1.122
 2
@@ -63,11 +63,11 @@ NULL
 3.14
 3.14
 3.14
-3.140
+3.14
 10
 20
 100
-124.00
+124
 125.2
 200
 PREHOOK: query: SELECT DISTINCT key FROM DECIMAL_5 ORDER BY key
@@ -86,7 +86,7 @@ NULL
 -0.333
 -0.33
 -0.3
-0.00000
+0
 0.01
 0.02
 0.1
@@ -102,7 +102,7 @@ NULL
 10
 20
 100
-124.00
+124
 125.2
 200
 PREHOOK: query: SELECT cast(key as decimal) FROM DECIMAL_5
@@ -161,7 +161,7 @@ POSTHOOK: Input: default@decimal_5
 #### A masked pattern was here ####
 NULL
 NULL
-0.000
+0
 0
 100
 10
@@ -180,7 +180,7 @@ NULL
 -0.3
 -0.33
 -0.333
-1.0
+1
 2
 3.14
 -1.12
@@ -188,13 +188,13 @@ NULL
 -1.122
 1.12
 1.122
-124.00
+124
 125.2
 NULL
 3.14
 3.14
-3.140
-1.000
+3.14
+1
 NULL
 NULL
 PREHOOK: query: DROP TABLE DECIMAL_5

Modified: hive/trunk/ql/src/test/results/clientpositive/decimal_6.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/decimal_6.q.out?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/decimal_6.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/decimal_6.q.out Fri Nov  7 
21:58:56 2014
@@ -91,16 +91,16 @@ NULL
 -0.333
 -0.3
 -0.3
-0.00000
-0.0000
+0
+0
 0
 0
 0.333
 0.333
-1.0
-1.0
-1.0000
-1.00000
+1
+1
+1
+1
 1.12
 1.12
 1.122
@@ -111,14 +111,14 @@ NULL
 3.14
 3.14
 3.14
-3.140
-3.140
+3.14
+3.14
 10
 10
 10.7343
 10.73433
-124.00
-124.00
+124
+124
 125.2
 125.2
 23232.23435

Added: hive/trunk/ql/src/test/results/clientpositive/decimal_join2.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/decimal_join2.q.out?rev=1637469&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/decimal_join2.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/decimal_join2.q.out Fri Nov  
7 21:58:56 2014
@@ -0,0 +1,371 @@
+PREHOOK: query: DROP TABLE IF EXISTS DECIMAL_3_txt
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE IF EXISTS DECIMAL_3_txt
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: DROP TABLE IF EXISTS DECIMAL_3
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE IF EXISTS DECIMAL_3
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE DECIMAL_3_txt(key decimal(38,18), value int)
+ROW FORMAT DELIMITED
+   FIELDS TERMINATED BY ' '
+STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@DECIMAL_3_txt
+POSTHOOK: query: CREATE TABLE DECIMAL_3_txt(key decimal(38,18), value int)
+ROW FORMAT DELIMITED
+   FIELDS TERMINATED BY ' '
+STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@DECIMAL_3_txt
+PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/kv7.txt' INTO TABLE 
DECIMAL_3_txt
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@decimal_3_txt
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/kv7.txt' INTO TABLE 
DECIMAL_3_txt
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@decimal_3_txt
+PREHOOK: query: CREATE TABLE DECIMAL_3 STORED AS ORC AS SELECT * FROM 
DECIMAL_3_txt
+PREHOOK: type: CREATETABLE_AS_SELECT
+PREHOOK: Input: default@decimal_3_txt
+PREHOOK: Output: database:default
+PREHOOK: Output: default@DECIMAL_3
+POSTHOOK: query: CREATE TABLE DECIMAL_3 STORED AS ORC AS SELECT * FROM 
DECIMAL_3_txt
+POSTHOOK: type: CREATETABLE_AS_SELECT
+POSTHOOK: Input: default@decimal_3_txt
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@DECIMAL_3
+PREHOOK: query: EXPLAIN
+SELECT * FROM DECIMAL_3 a JOIN DECIMAL_3 b ON (a.key = b.key) ORDER BY a.key, 
a.value, b.key, b.value
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT * FROM DECIMAL_3 a JOIN DECIMAL_3 b ON (a.key = b.key) ORDER BY a.key, 
a.value, b.key, b.value
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-2 depends on stages: Stage-1
+  Stage-0 depends on stages: Stage-2
+
+STAGE PLANS:
+  Stage: Stage-1
+    Map Reduce
+      Map Operator Tree:
+          TableScan
+            alias: b
+            Statistics: Num rows: 38 Data size: 4296 Basic stats: COMPLETE 
Column stats: NONE
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 19 Data size: 2148 Basic stats: COMPLETE 
Column stats: NONE
+              Reduce Output Operator
+                key expressions: key (type: decimal(38,18))
+                sort order: +
+                Map-reduce partition columns: key (type: decimal(38,18))
+                Statistics: Num rows: 19 Data size: 2148 Basic stats: COMPLETE 
Column stats: NONE
+                value expressions: value (type: int)
+          TableScan
+            alias: a
+            Statistics: Num rows: 38 Data size: 4296 Basic stats: COMPLETE 
Column stats: NONE
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 19 Data size: 2148 Basic stats: COMPLETE 
Column stats: NONE
+              Reduce Output Operator
+                key expressions: key (type: decimal(38,18))
+                sort order: +
+                Map-reduce partition columns: key (type: decimal(38,18))
+                Statistics: Num rows: 19 Data size: 2148 Basic stats: COMPLETE 
Column stats: NONE
+                value expressions: value (type: int)
+      Reduce Operator Tree:
+        Join Operator
+          condition map:
+               Inner Join 0 to 1
+          condition expressions:
+            0 {KEY.reducesinkkey0} {VALUE._col0}
+            1 {KEY.reducesinkkey0} {VALUE._col0}
+          outputColumnNames: _col0, _col1, _col5, _col6
+          Statistics: Num rows: 20 Data size: 2362 Basic stats: COMPLETE 
Column stats: NONE
+          Select Operator
+            expressions: _col0 (type: decimal(38,18)), _col1 (type: int), 
_col5 (type: decimal(38,18)), _col6 (type: int)
+            outputColumnNames: _col0, _col1, _col2, _col3
+            Statistics: Num rows: 20 Data size: 2362 Basic stats: COMPLETE 
Column stats: NONE
+            File Output Operator
+              compressed: false
+              table:
+                  input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
+                  output format: 
org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+                  serde: 
org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+  Stage: Stage-2
+    Map Reduce
+      Map Operator Tree:
+          TableScan
+            Reduce Output Operator
+              key expressions: _col0 (type: decimal(38,18)), _col1 (type: 
int), _col2 (type: decimal(38,18)), _col3 (type: int)
+              sort order: ++++
+              Statistics: Num rows: 20 Data size: 2362 Basic stats: COMPLETE 
Column stats: NONE
+      Reduce Operator Tree:
+        Select Operator
+          expressions: KEY.reducesinkkey0 (type: decimal(38,18)), 
KEY.reducesinkkey1 (type: int), KEY.reducesinkkey2 (type: decimal(38,18)), 
KEY.reducesinkkey3 (type: int)
+          outputColumnNames: _col0, _col1, _col2, _col3
+          Statistics: Num rows: 20 Data size: 2362 Basic stats: COMPLETE 
Column stats: NONE
+          File Output Operator
+            compressed: false
+            Statistics: Num rows: 20 Data size: 2362 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 * FROM DECIMAL_3 a JOIN DECIMAL_3 b ON (a.key = b.key) 
ORDER BY a.key, a.value, b.key, b.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_3
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM DECIMAL_3 a JOIN DECIMAL_3 b ON (a.key = b.key) 
ORDER BY a.key, a.value, b.key, b.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_3
+#### A masked pattern was here ####
+-1234567890.123456789  -1234567890     -1234567890.123456789   -1234567890
+-4400  4400    -4400   4400
+-1255.49       -1255   -1255.49        -1255
+-1.122 -11     -1.122  -11
+-1.12  -1      -1.12   -1
+-1.12  -1      -1.12   -1
+-1.12  -1      -1.12   -1
+-1.12  -1      -1.12   -1
+-0.333 0       -0.333  0
+-0.33  0       -0.33   0
+-0.3   0       -0.3    0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0.01   0       0.01    0
+0.02   0       0.02    0
+0.1    0       0.1     0
+0.2    0       0.2     0
+0.3    0       0.3     0
+0.33   0       0.33    0
+0.333  0       0.333   0
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1.12   1       1.12    1
+1.122  1       1.122   1
+2      2       2       2
+2      2       2       2
+2      2       2       2
+2      2       2       2
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    4
+3.14   3       3.14    4
+3.14   3       3.14    4
+3.14   4       3.14    3
+3.14   4       3.14    3
+3.14   4       3.14    3
+3.14   4       3.14    4
+10     10      10      10
+20     20      20      20
+100    100     100     100
+124    124     124     124
+125.2  125     125.2   125
+200    200     200     200
+1234567890.12345678    1234567890      1234567890.12345678     1234567890
+PREHOOK: query: EXPLAIN
+SELECT * FROM DECIMAL_3 a JOIN DECIMAL_3 b ON (a.key = b.key) ORDER BY a.key, 
a.value, b.key, b.value
+PREHOOK: type: QUERY
+POSTHOOK: query: EXPLAIN
+SELECT * FROM DECIMAL_3 a JOIN DECIMAL_3 b ON (a.key = b.key) ORDER BY a.key, 
a.value, b.key, b.value
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-5 is a root stage
+  Stage-2 depends on stages: Stage-5
+  Stage-0 depends on stages: Stage-2
+
+STAGE PLANS:
+  Stage: Stage-5
+    Map Reduce Local Work
+      Alias -> Map Local Tables:
+        a 
+          Fetch Operator
+            limit: -1
+      Alias -> Map Local Operator Tree:
+        a 
+          TableScan
+            alias: a
+            Statistics: Num rows: 38 Data size: 4296 Basic stats: COMPLETE 
Column stats: NONE
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 19 Data size: 2148 Basic stats: COMPLETE 
Column stats: NONE
+              HashTable Sink Operator
+                condition expressions:
+                  0 {value}
+                  1 {key} {value}
+                keys:
+                  0 key (type: decimal(38,18))
+                  1 key (type: decimal(38,18))
+
+  Stage: Stage-2
+    Map Reduce
+      Map Operator Tree:
+          TableScan
+            alias: b
+            Statistics: Num rows: 38 Data size: 4296 Basic stats: COMPLETE 
Column stats: NONE
+            Filter Operator
+              predicate: key is not null (type: boolean)
+              Statistics: Num rows: 19 Data size: 2148 Basic stats: COMPLETE 
Column stats: NONE
+              Map Join Operator
+                condition map:
+                     Inner Join 0 to 1
+                condition expressions:
+                  0 {key} {value}
+                  1 {key} {value}
+                keys:
+                  0 key (type: decimal(38,18))
+                  1 key (type: decimal(38,18))
+                outputColumnNames: _col0, _col1, _col5, _col6
+                Statistics: Num rows: 20 Data size: 2362 Basic stats: COMPLETE 
Column stats: NONE
+                Select Operator
+                  expressions: _col0 (type: decimal(38,18)), _col1 (type: 
int), _col5 (type: decimal(38,18)), _col6 (type: int)
+                  outputColumnNames: _col0, _col1, _col2, _col3
+                  Statistics: Num rows: 20 Data size: 2362 Basic stats: 
COMPLETE Column stats: NONE
+                  Reduce Output Operator
+                    key expressions: _col0 (type: decimal(38,18)), _col1 
(type: int), _col2 (type: decimal(38,18)), _col3 (type: int)
+                    sort order: ++++
+                    Statistics: Num rows: 20 Data size: 2362 Basic stats: 
COMPLETE Column stats: NONE
+      Local Work:
+        Map Reduce Local Work
+      Reduce Operator Tree:
+        Select Operator
+          expressions: KEY.reducesinkkey0 (type: decimal(38,18)), 
KEY.reducesinkkey1 (type: int), KEY.reducesinkkey2 (type: decimal(38,18)), 
KEY.reducesinkkey3 (type: int)
+          outputColumnNames: _col0, _col1, _col2, _col3
+          Statistics: Num rows: 20 Data size: 2362 Basic stats: COMPLETE 
Column stats: NONE
+          File Output Operator
+            compressed: false
+            Statistics: Num rows: 20 Data size: 2362 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 * FROM DECIMAL_3 a JOIN DECIMAL_3 b ON (a.key = b.key) 
ORDER BY a.key, a.value, b.key, b.value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@decimal_3
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM DECIMAL_3 a JOIN DECIMAL_3 b ON (a.key = b.key) 
ORDER BY a.key, a.value, b.key, b.value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@decimal_3
+#### A masked pattern was here ####
+-1234567890.123456789  -1234567890     -1234567890.123456789   -1234567890
+-4400  4400    -4400   4400
+-1255.49       -1255   -1255.49        -1255
+-1.122 -11     -1.122  -11
+-1.12  -1      -1.12   -1
+-1.12  -1      -1.12   -1
+-1.12  -1      -1.12   -1
+-1.12  -1      -1.12   -1
+-0.333 0       -0.333  0
+-0.33  0       -0.33   0
+-0.3   0       -0.3    0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0      0       0       0
+0.01   0       0.01    0
+0.02   0       0.02    0
+0.1    0       0.1     0
+0.2    0       0.2     0
+0.3    0       0.3     0
+0.33   0       0.33    0
+0.333  0       0.333   0
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1      1       1       1
+1.12   1       1.12    1
+1.122  1       1.122   1
+2      2       2       2
+2      2       2       2
+2      2       2       2
+2      2       2       2
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    3
+3.14   3       3.14    4
+3.14   3       3.14    4
+3.14   3       3.14    4
+3.14   4       3.14    3
+3.14   4       3.14    3
+3.14   4       3.14    3
+3.14   4       3.14    4
+10     10      10      10
+20     20      20      20
+100    100     100     100
+124    124     124     124
+125.2  125     125.2   125
+200    200     200     200
+1234567890.12345678    1234567890      1234567890.12345678     1234567890
+PREHOOK: query: DROP TABLE DECIMAL_3_txt
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@decimal_3_txt
+PREHOOK: Output: default@decimal_3_txt
+POSTHOOK: query: DROP TABLE DECIMAL_3_txt
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@decimal_3_txt
+POSTHOOK: Output: default@decimal_3_txt
+PREHOOK: query: DROP TABLE DECIMAL_3
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@decimal_3
+PREHOOK: Output: default@decimal_3
+POSTHOOK: query: DROP TABLE DECIMAL_3
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@decimal_3
+POSTHOOK: Output: default@decimal_3

Modified: hive/trunk/ql/src/test/results/clientpositive/decimal_precision.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/decimal_precision.q.out?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/decimal_precision.q.out 
(original)
+++ hive/trunk/ql/src/test/results/clientpositive/decimal_precision.q.out Fri 
Nov  7 21:58:56 2014
@@ -76,13 +76,13 @@ NULL
 NULL
 NULL
 NULL
-0.0000000000
-0.0000000000
-0.0000000000
-0.0000000000
 0
-0.1234567890
-0.1234567890
+0
+0
+0
+0
+0.123456789
+0.123456789
 1.2345678901
 1.2345678901
 1.2345678901
@@ -106,7 +106,7 @@ NULL
 123456789.0123456
 123456789.0123456789
 1234567890.123456
-1234567890.1234567890
+1234567890.123456789
 PREHOOK: query: SELECT dec, dec + 1, dec - 1 FROM DECIMAL_PRECISION ORDER BY 
dec
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_precision
@@ -159,13 +159,13 @@ NULL      NULL    NULL
 NULL   NULL    NULL
 NULL   NULL    NULL
 NULL   NULL    NULL
-0.0000000000   1.0000000000    -1.0000000000
-0.0000000000   1.0000000000    -1.0000000000
-0.0000000000   1.0000000000    -1.0000000000
-0.0000000000   1.0000000000    -1.0000000000
 0      1       -1
-0.1234567890   1.1234567890    -0.8765432110
-0.1234567890   1.1234567890    -0.8765432110
+0      1       -1
+0      1       -1
+0      1       -1
+0      1       -1
+0.123456789    1.123456789     -0.876543211
+0.123456789    1.123456789     -0.876543211
 1.2345678901   2.2345678901    0.2345678901
 1.2345678901   2.2345678901    0.2345678901
 1.2345678901   2.2345678901    0.2345678901
@@ -189,7 +189,7 @@ NULL        NULL    NULL
 123456789.0123456      123456790.0123456       123456788.0123456
 123456789.0123456789   123456790.0123456789    123456788.0123456789
 1234567890.123456      1234567891.123456       1234567889.123456
-1234567890.1234567890  1234567891.1234567890   1234567889.1234567890
+1234567890.123456789   1234567891.123456789    1234567889.123456789
 PREHOOK: query: SELECT dec, dec * 2, dec / 3  FROM DECIMAL_PRECISION ORDER BY 
dec
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_precision
@@ -242,13 +242,13 @@ NULL      NULL    NULL
 NULL   NULL    NULL
 NULL   NULL    NULL
 NULL   NULL    NULL
-0.0000000000   0.0000000000    0
-0.0000000000   0.0000000000    0
-0.0000000000   0.0000000000    0
-0.0000000000   0.0000000000    0
 0      0       0
-0.1234567890   0.2469135780    0.041152263
-0.1234567890   0.2469135780    0.041152263
+0      0       0
+0      0       0
+0      0       0
+0      0       0
+0.123456789    0.246913578     0.041152263
+0.123456789    0.246913578     0.041152263
 1.2345678901   2.4691357802    0.411522630033
 1.2345678901   2.4691357802    0.411522630033
 1.2345678901   2.4691357802    0.411522630033
@@ -258,9 +258,9 @@ NULL        NULL    NULL
 123.4567890123 246.9135780246  41.1522630041
 123.4567890123 246.9135780246  41.1522630041
 123.4567890123 246.9135780246  41.1522630041
-1234.5678901235        2469.1357802470 411.522630041167
-1234.5678901235        2469.1357802470 411.522630041167
-1234.5678901235        2469.1357802470 411.522630041167
+1234.5678901235        2469.135780247  411.522630041167
+1234.5678901235        2469.135780247  411.522630041167
+1234.5678901235        2469.135780247  411.522630041167
 12345.6789012346       24691.3578024692        4115.226300411533
 12345.6789012346       24691.3578024692        4115.226300411533
 123456.7890123456      246913.5780246912       41152.2630041152
@@ -272,7 +272,7 @@ NULL        NULL    NULL
 123456789.0123456      246913578.0246912       41152263.0041152
 123456789.0123456789   246913578.0246913578    41152263.0041152263
 1234567890.123456      2469135780.246912       411522630.041152
-1234567890.1234567890  2469135780.2469135780   411522630.041152263
+1234567890.123456789   2469135780.246913578    411522630.041152263
 PREHOOK: query: SELECT dec, dec / 9 FROM DECIMAL_PRECISION ORDER BY dec
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_precision
@@ -325,13 +325,13 @@ NULL      NULL
 NULL   NULL
 NULL   NULL
 NULL   NULL
-0.0000000000   0
-0.0000000000   0
-0.0000000000   0
-0.0000000000   0
 0      0
-0.1234567890   0.013717421
-0.1234567890   0.013717421
+0      0
+0      0
+0      0
+0      0
+0.123456789    0.013717421
+0.123456789    0.013717421
 1.2345678901   0.137174210011
 1.2345678901   0.137174210011
 1.2345678901   0.137174210011
@@ -355,7 +355,7 @@ NULL        NULL
 123456789.0123456      13717421.001371733333
 123456789.0123456789   13717421.0013717421
 1234567890.123456      137174210.013717333333
-1234567890.1234567890  137174210.013717421
+1234567890.123456789   137174210.013717421
 PREHOOK: query: SELECT dec, dec / 27 FROM DECIMAL_PRECISION ORDER BY dec
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_precision
@@ -408,13 +408,13 @@ NULL      NULL
 NULL   NULL
 NULL   NULL
 NULL   NULL
-0.0000000000   0
-0.0000000000   0
-0.0000000000   0
-0.0000000000   0
 0      0
-0.1234567890   0.0045724736667
-0.1234567890   0.0045724736667
+0      0
+0      0
+0      0
+0      0
+0.123456789    0.0045724736667
+0.123456789    0.0045724736667
 1.2345678901   0.0457247366704
 1.2345678901   0.0457247366704
 1.2345678901   0.0457247366704
@@ -438,7 +438,7 @@ NULL        NULL
 123456789.0123456      4572473.6671239111111
 123456789.0123456789   4572473.6671239140333
 1234567890.123456      45724736.6712391111111
-1234567890.1234567890  45724736.6712391403333
+1234567890.123456789   45724736.6712391403333
 PREHOOK: query: SELECT dec, dec * dec FROM DECIMAL_PRECISION ORDER BY dec
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_precision
@@ -491,13 +491,13 @@ NULL      NULL
 NULL   NULL
 NULL   NULL
 NULL   NULL
-0.0000000000   0.00000000000000000000
-0.0000000000   0.00000000000000000000
-0.0000000000   0.00000000000000000000
-0.0000000000   0.00000000000000000000
 0      0
-0.1234567890   0.01524157875019052100
-0.1234567890   0.01524157875019052100
+0      0
+0      0
+0      0
+0      0
+0.123456789    0.015241578750190521
+0.123456789    0.015241578750190521
 1.2345678901   1.52415787526596567801
 1.2345678901   1.52415787526596567801
 1.2345678901   1.52415787526596567801
@@ -521,7 +521,7 @@ NULL        NULL
 123456789.0123456      15241578753238817.26870921383936
 123456789.0123456789   15241578753238836.75019051998750190521
 1234567890.123456      NULL
-1234567890.1234567890  NULL
+1234567890.123456789   NULL
 PREHOOK: query: EXPLAIN SELECT avg(dec), sum(dec) FROM DECIMAL_PRECISION
 PREHOOK: type: QUERY
 POSTHOOK: query: EXPLAIN SELECT avg(dec), sum(dec) FROM DECIMAL_PRECISION

Modified: hive/trunk/ql/src/test/results/clientpositive/decimal_trailing.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/decimal_trailing.q.out?rev=1637469&r1=1637468&r2=1637469&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/decimal_trailing.q.out 
(original)
+++ hive/trunk/ql/src/test/results/clientpositive/decimal_trailing.q.out Fri 
Nov  7 21:58:56 2014
@@ -43,13 +43,13 @@ POSTHOOK: Input: default@decimal_trailin
 0      0       0
 1      0       0
 2      NULL    NULL
-3      1.0000  1.00000000
-4      10.0000 10.00000000
-5      100.0000        100.00000000
-6      1000.0000       1000.00000000
-7      10000.0000      10000.00000000
-8      100000.0000     100000.00000000
-9      NULL    1000000.00000000
+3      1       1
+4      10      10
+5      100     100
+6      1000    1000
+7      10000   10000
+8      100000  100000
+9      NULL    1000000
 10     NULL    NULL
 11     NULL    NULL
 12     NULL    NULL
@@ -58,18 +58,18 @@ POSTHOOK: Input: default@decimal_trailin
 15     NULL    NULL
 16     NULL    NULL
 17     NULL    NULL
-18     1.0000  1.00000000
-19     10.000  10.0000000
-20     100.00  100.000000
-21     1000.0  1000.00000
-22     100000  10000.0000
-23     0.0000  0.00000000
-24     0.000   0.0000000
-25     0.00    0.000000
-26     0.0     0.00000
-27     0       0.00000
-28     12313.2000      134134.31252500
-29     99999.9990      134134.31242553
+18     1       1
+19     10      10
+20     100     100
+21     1000    1000
+22     100000  10000
+23     0       0
+24     0       0
+25     0       0
+26     0       0
+27     0       0
+28     12313.2 134134.312525
+29     99999.999       134134.31242553
 PREHOOK: query: DROP TABLE DECIMAL_TRAILING
 PREHOOK: type: DROPTABLE
 PREHOOK: Input: default@decimal_trailing


Reply via email to