You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2013/04/16 22:13:55 UTC

svn commit: r1468592 - in /hive/branches/branch-0.11: common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java data/files/kv8.txt ql/src/test/results/clientpositive/decimal_precision.q.out ql/src/test/results/clientpositive/decimal_udf.q.out

Author: hashutosh
Date: Tue Apr 16 20:13:54 2013
New Revision: 1468592

URL: http://svn.apache.org/r1468592
Log:
HIVE-4320 : Consider extending max limit for precision to 38 (Gunther Hagleitner via Ashutosh Chauhan)

Modified:
    hive/branches/branch-0.11/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java
    hive/branches/branch-0.11/data/files/kv8.txt
    hive/branches/branch-0.11/ql/src/test/results/clientpositive/decimal_precision.q.out
    hive/branches/branch-0.11/ql/src/test/results/clientpositive/decimal_udf.q.out

Modified: hive/branches/branch-0.11/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.11/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java?rev=1468592&r1=1468591&r2=1468592&view=diff
==============================================================================
--- hive/branches/branch-0.11/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java (original)
+++ hive/branches/branch-0.11/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java Tue Apr 16 20:13:54 2013
@@ -31,7 +31,7 @@ public class HiveDecimal implements Comp
 
   public static final HiveDecimal ZERO = new HiveDecimal(BigDecimal.ZERO);
 
-  public static final int MAX_PRECISION = 36; // multiple of 9 for compact representation
+  public static final int MAX_PRECISION = 38; // fits into 128 bits
 
   public static final HiveDecimal ONE = new HiveDecimal(BigDecimal.ONE);
 

Modified: hive/branches/branch-0.11/data/files/kv8.txt
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.11/data/files/kv8.txt?rev=1468592&r1=1468591&r2=1468592&view=diff
==============================================================================
--- hive/branches/branch-0.11/data/files/kv8.txt (original)
+++ hive/branches/branch-0.11/data/files/kv8.txt Tue Apr 16 20:13:54 2013
@@ -1,60 +1,62 @@
-1234567890123456789012345678901234567
-1.234567890123456789012345678901234567
-12.34567890123456789012345678901234567
-123.4567890123456789012345678901234567
-1234.567890123456789012345678901234567
-123456789012345678901234567890123456
-0.12345678901234567890123456789012345
-1.23456789012345678901234567890123456
-12.3456789012345678901234567890123456
-123.456789012345678901234567890123456
-1234.56789012345678901234567890123456
-12345.6789012345678901234567890123456
-123456.789012345678901234567890123456
-1234567.89012345678901234567890123456
-12345678.9012345678901234567890123456
-123456789.012345678901234567890123456
-1234567890.12345678901234567890123456
-12345678901.2345678901234567890123456
-123456789012.345678901234567890123456
-1234567890123.45678901234567890123456
-12345678901234.5678901234567890123456
-123456789012345.678901234567890123456
-1234567890123456.78901234567890123456
-12345678901234567.8901234567890123456
-123456789012345678.901234567890123456
-1234567890123456789.01234567890123456
-12345678901234567890.1234567890123456
-123456789012345678901.234567890123456
-1234567890123456789012.34567890123456
-12345678901234567890123.4567890123456
-123456789012345678901234.567890123456
-1234567890123456789012345.67890123456
-12345678901234567890123456.7890123456
-123456789012345678901234567.890123456
-1234567890123456789012345678.90123456
-12345678901234567890123456789.0123456
-123456789012345678901234567890.123456
-1234567890123456789012345678901.23456
-12345678901234567890123456789012.3456
-123456789012345678901234567890123.456
-1234567890123456789012345678901234.56
-12345678901234567890123456789012345.6
-123456789012345678901234567890123456.0
-123456789012345678901234567890123456.00
-123456789012345678901234567890123456.000
-000123456789012345678901234567890123456.000
+123456789012345678901234567890123456789
+1.23456789012345678901234567890123456789
+12.3456789012345678901234567890123456789
+123.456789012345678901234567890123456789
+1234.56789012345678901234567890123456789
+12345678901234567890123456789012345678
+0.1234567890123456789012345678901234578
+1.2345678901234567890123456789012345678
+12.345678901234567890123456789012345678
+123.45678901234567890123456789012345678
+1234.5678901234567890123456789012345678
+12345.678901234567890123456789012345678
+123456.78901234567890123456789012345678
+1234567.8901234567890123456789012345678
+12345678.901234567890123456789012345678
+123456789.01234567890123456789012345678
+1234567890.1234567890123456789012345678
+12345678901.234567890123456789012345678
+123456789012.34567890123456789012345678
+1234567890123.4567890123456789012345678
+12345678901234.567890123456789012345678
+123456789012345.67890123456789012345678
+1234567890123456.7890123456789012345678
+12345678901234567.890123456789012345678
+123456789012345678.90123456789012345678
+1234567890123456789.0123456789012345678
+12345678901234567890.123456789012345678
+123456789012345678901.23456789012345678
+1234567890123456789012.3456789012345678
+12345678901234567890123.456789012345678
+123456789012345678901234.56789012345678
+1234567890123456789012345.6789012345678
+12345678901234567890123456.789012345678
+123456789012345678901234567.89012345678
+1234567890123456789012345678.9012345678
+12345678901234567890123456789.012345678
+123456789012345678901234567890.12345678
+1234567890123456789012345678901.2345678
+12345678901234567890123456789012.345678
+123456789012345678901234567890123.45678
+1234567890123456789012345678901234.5678
+12345678901234567890123456789012345.678
+123456789012345678901234567890123456.78
+12345678901234567890123456789012345.67.8
+12345678901234567890123456789012345678.0
+12345678901234567890123456789012345678.00
+12345678901234567890123456789012345678.000
+00012345678901234567890123456789012345678.000
+99999999999999999999999999999999999999
 999999999999999999999999999999999999
-9999999999999999999999999999999999
-999999999999999999999999999999999
+99999999999999999999999999999999999
+-99999999999999999999999999999999999999
 -999999999999999999999999999999999999
--9999999999999999999999999999999999
--999999999999999999999999999999999
-0000000000000000000000000000000000000000000
-0.00000000000000000000000000000000001
--0.00000000000000000000000000000000001
-0.000000000000000000000000000000000001
--0.000000000000000000000000000000000001
+-99999999999999999999999999999999999
+000000000000000000000000000000000000000000000
+0.0000000000000000000000000000000000001
+-0.0000000000000000000000000000000000001
+0.00000000000000000000000000000000000001
+-0.00000000000000000000000000000000000001
 0.123456789012345
 1.234567890123456
 12.34567890123456

Modified: hive/branches/branch-0.11/ql/src/test/results/clientpositive/decimal_precision.q.out
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.11/ql/src/test/results/clientpositive/decimal_precision.q.out?rev=1468592&r1=1468591&r2=1468592&view=diff
==============================================================================
--- hive/branches/branch-0.11/ql/src/test/results/clientpositive/decimal_precision.q.out (original)
+++ hive/branches/branch-0.11/ql/src/test/results/clientpositive/decimal_precision.q.out Tue Apr 16 20:13:54 2013
@@ -34,72 +34,74 @@ NULL
 NULL
 NULL
 NULL
+NULL
+-99999999999999999999999999999999999999
 -999999999999999999999999999999999999
--9999999999999999999999999999999999
--999999999999999999999999999999999
--0.00000000000000000000000000000000001
+-99999999999999999999999999999999999
+-0.0000000000000000000000000000000000001
 0
-0.00000000000000000000000000000000001
+0.0000000000000000000000000000000000001
 0.123456789012345
-0.12345678901234567890123456789012345
+0.1234567890123456789012345678901234578
 1.234567890123456
-1.23456789012345678901234567890123456
+1.2345678901234567890123456789012345678
 12.34567890123456
-12.3456789012345678901234567890123456
+12.345678901234567890123456789012345678
 123.4567890123456
-123.456789012345678901234567890123456
+123.45678901234567890123456789012345678
 1234.567890123456
-1234.56789012345678901234567890123456
+1234.5678901234567890123456789012345678
 12345.67890123456
-12345.6789012345678901234567890123456
+12345.678901234567890123456789012345678
 123456.7890123456
-123456.789012345678901234567890123456
+123456.78901234567890123456789012345678
 1234567.890123456
-1234567.89012345678901234567890123456
+1234567.8901234567890123456789012345678
 12345678.90123456
-12345678.9012345678901234567890123456
+12345678.901234567890123456789012345678
 123456789.0123456
-123456789.012345678901234567890123456
+123456789.01234567890123456789012345678
 1234567890.123456
-1234567890.12345678901234567890123456
+1234567890.1234567890123456789012345678
 12345678901.23456
-12345678901.2345678901234567890123456
+12345678901.234567890123456789012345678
 123456789012.3456
-123456789012.345678901234567890123456
+123456789012.34567890123456789012345678
 1234567890123.456
-1234567890123.45678901234567890123456
+1234567890123.4567890123456789012345678
 12345678901234.56
-12345678901234.5678901234567890123456
+12345678901234.567890123456789012345678
 123456789012345.6
-123456789012345.678901234567890123456
-1234567890123456.78901234567890123456
-12345678901234567.8901234567890123456
-123456789012345678.901234567890123456
-1234567890123456789.01234567890123456
-12345678901234567890.1234567890123456
-123456789012345678901.234567890123456
-1234567890123456789012.34567890123456
-12345678901234567890123.4567890123456
-123456789012345678901234.567890123456
-1234567890123456789012345.67890123456
-12345678901234567890123456.7890123456
-123456789012345678901234567.890123456
-1234567890123456789012345678.90123456
-12345678901234567890123456789.0123456
-123456789012345678901234567890.123456
-1234567890123456789012345678901.23456
-12345678901234567890123456789012.3456
-123456789012345678901234567890123.456
-999999999999999999999999999999999
-1234567890123456789012345678901234.56
-9999999999999999999999999999999999
-12345678901234567890123456789012345.6
-123456789012345678901234567890123456
-123456789012345678901234567890123456
-123456789012345678901234567890123456
-123456789012345678901234567890123456
-123456789012345678901234567890123456
+123456789012345.67890123456789012345678
+1234567890123456.7890123456789012345678
+12345678901234567.890123456789012345678
+123456789012345678.90123456789012345678
+1234567890123456789.0123456789012345678
+12345678901234567890.123456789012345678
+123456789012345678901.23456789012345678
+1234567890123456789012.3456789012345678
+12345678901234567890123.456789012345678
+123456789012345678901234.56789012345678
+1234567890123456789012345.6789012345678
+12345678901234567890123456.789012345678
+123456789012345678901234567.89012345678
+1234567890123456789012345678.9012345678
+12345678901234567890123456789.012345678
+123456789012345678901234567890.12345678
+1234567890123456789012345678901.2345678
+12345678901234567890123456789012.345678
+123456789012345678901234567890123.45678
+1234567890123456789012345678901234.5678
+12345678901234567890123456789012345.678
+99999999999999999999999999999999999
+123456789012345678901234567890123456.78
 999999999999999999999999999999999999
+12345678901234567890123456789012345678
+12345678901234567890123456789012345678
+12345678901234567890123456789012345678
+12345678901234567890123456789012345678
+12345678901234567890123456789012345678
+99999999999999999999999999999999999999
 PREHOOK: query: SELECT dec, dec + 1, dec - 1 FROM DECIMAL_PRECISION ORDER BY dec
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_precision
@@ -115,72 +117,74 @@ NULL	NULL	NULL
 NULL	NULL	NULL
 NULL	NULL	NULL
 NULL	NULL	NULL
--999999999999999999999999999999999999	-999999999999999999999999999999999998	NULL
--9999999999999999999999999999999999	-9999999999999999999999999999999998	-10000000000000000000000000000000000
--999999999999999999999999999999999	-999999999999999999999999999999998	-1000000000000000000000000000000000
--0.00000000000000000000000000000000001	0.99999999999999999999999999999999999	-1.00000000000000000000000000000000001
+NULL	NULL	NULL
+-99999999999999999999999999999999999999	-99999999999999999999999999999999999998	NULL
+-999999999999999999999999999999999999	-999999999999999999999999999999999998	-1000000000000000000000000000000000000
+-99999999999999999999999999999999999	-99999999999999999999999999999999998	-100000000000000000000000000000000000
+-0.0000000000000000000000000000000000001	0.9999999999999999999999999999999999999	-1.0000000000000000000000000000000000001
 0	1	-1
-0.00000000000000000000000000000000001	1.00000000000000000000000000000000001	-0.99999999999999999999999999999999999
+0.0000000000000000000000000000000000001	1.0000000000000000000000000000000000001	-0.9999999999999999999999999999999999999
 0.123456789012345	1.123456789012345	-0.876543210987655
-0.12345678901234567890123456789012345	1.12345678901234567890123456789012345	-0.87654321098765432109876543210987655
+0.1234567890123456789012345678901234578	1.1234567890123456789012345678901234578	-0.8765432109876543210987654321098765422
 1.234567890123456	2.234567890123456	0.234567890123456
-1.23456789012345678901234567890123456	2.23456789012345678901234567890123456	0.23456789012345678901234567890123456
+1.2345678901234567890123456789012345678	2.2345678901234567890123456789012345678	0.2345678901234567890123456789012345678
 12.34567890123456	13.34567890123456	11.34567890123456
-12.3456789012345678901234567890123456	13.3456789012345678901234567890123456	11.3456789012345678901234567890123456
+12.345678901234567890123456789012345678	13.345678901234567890123456789012345678	11.345678901234567890123456789012345678
 123.4567890123456	124.4567890123456	122.4567890123456
-123.456789012345678901234567890123456	124.456789012345678901234567890123456	122.456789012345678901234567890123456
+123.45678901234567890123456789012345678	124.45678901234567890123456789012345678	122.45678901234567890123456789012345678
 1234.567890123456	1235.567890123456	1233.567890123456
-1234.56789012345678901234567890123456	1235.56789012345678901234567890123456	1233.56789012345678901234567890123456
+1234.5678901234567890123456789012345678	1235.5678901234567890123456789012345678	1233.5678901234567890123456789012345678
 12345.67890123456	12346.67890123456	12344.67890123456
-12345.6789012345678901234567890123456	12346.6789012345678901234567890123456	12344.6789012345678901234567890123456
+12345.678901234567890123456789012345678	12346.678901234567890123456789012345678	12344.678901234567890123456789012345678
 123456.7890123456	123457.7890123456	123455.7890123456
-123456.789012345678901234567890123456	123457.789012345678901234567890123456	123455.789012345678901234567890123456
+123456.78901234567890123456789012345678	123457.78901234567890123456789012345678	123455.78901234567890123456789012345678
 1234567.890123456	1234568.890123456	1234566.890123456
-1234567.89012345678901234567890123456	1234568.89012345678901234567890123456	1234566.89012345678901234567890123456
+1234567.8901234567890123456789012345678	1234568.8901234567890123456789012345678	1234566.8901234567890123456789012345678
 12345678.90123456	12345679.90123456	12345677.90123456
-12345678.9012345678901234567890123456	12345679.9012345678901234567890123456	12345677.9012345678901234567890123456
+12345678.901234567890123456789012345678	12345679.901234567890123456789012345678	12345677.901234567890123456789012345678
 123456789.0123456	123456790.0123456	123456788.0123456
-123456789.012345678901234567890123456	123456790.012345678901234567890123456	123456788.012345678901234567890123456
+123456789.01234567890123456789012345678	123456790.01234567890123456789012345678	123456788.01234567890123456789012345678
 1234567890.123456	1234567891.123456	1234567889.123456
-1234567890.12345678901234567890123456	1234567891.12345678901234567890123456	1234567889.12345678901234567890123456
+1234567890.1234567890123456789012345678	1234567891.1234567890123456789012345678	1234567889.1234567890123456789012345678
 12345678901.23456	12345678902.23456	12345678900.23456
-12345678901.2345678901234567890123456	12345678902.2345678901234567890123456	12345678900.2345678901234567890123456
+12345678901.234567890123456789012345678	12345678902.234567890123456789012345678	12345678900.234567890123456789012345678
 123456789012.3456	123456789013.3456	123456789011.3456
-123456789012.345678901234567890123456	123456789013.345678901234567890123456	123456789011.345678901234567890123456
+123456789012.34567890123456789012345678	123456789013.34567890123456789012345678	123456789011.34567890123456789012345678
 1234567890123.456	1234567890124.456	1234567890122.456
-1234567890123.45678901234567890123456	1234567890124.45678901234567890123456	1234567890122.45678901234567890123456
+1234567890123.4567890123456789012345678	1234567890124.4567890123456789012345678	1234567890122.4567890123456789012345678
 12345678901234.56	12345678901235.56	12345678901233.56
-12345678901234.5678901234567890123456	12345678901235.5678901234567890123456	12345678901233.5678901234567890123456
+12345678901234.567890123456789012345678	12345678901235.567890123456789012345678	12345678901233.567890123456789012345678
 123456789012345.6	123456789012346.6	123456789012344.6
-123456789012345.678901234567890123456	123456789012346.678901234567890123456	123456789012344.678901234567890123456
-1234567890123456.78901234567890123456	1234567890123457.78901234567890123456	1234567890123455.78901234567890123456
-12345678901234567.8901234567890123456	12345678901234568.8901234567890123456	12345678901234566.8901234567890123456
-123456789012345678.901234567890123456	123456789012345679.901234567890123456	123456789012345677.901234567890123456
-1234567890123456789.01234567890123456	1234567890123456790.01234567890123456	1234567890123456788.01234567890123456
-12345678901234567890.1234567890123456	12345678901234567891.1234567890123456	12345678901234567889.1234567890123456
-123456789012345678901.234567890123456	123456789012345678902.234567890123456	123456789012345678900.234567890123456
-1234567890123456789012.34567890123456	1234567890123456789013.34567890123456	1234567890123456789011.34567890123456
-12345678901234567890123.4567890123456	12345678901234567890124.4567890123456	12345678901234567890122.4567890123456
-123456789012345678901234.567890123456	123456789012345678901235.567890123456	123456789012345678901233.567890123456
-1234567890123456789012345.67890123456	1234567890123456789012346.67890123456	1234567890123456789012344.67890123456
-12345678901234567890123456.7890123456	12345678901234567890123457.7890123456	12345678901234567890123455.7890123456
-123456789012345678901234567.890123456	123456789012345678901234568.890123456	123456789012345678901234566.890123456
-1234567890123456789012345678.90123456	1234567890123456789012345679.90123456	1234567890123456789012345677.90123456
-12345678901234567890123456789.0123456	12345678901234567890123456790.0123456	12345678901234567890123456788.0123456
-123456789012345678901234567890.123456	123456789012345678901234567891.123456	123456789012345678901234567889.123456
-1234567890123456789012345678901.23456	1234567890123456789012345678902.23456	1234567890123456789012345678900.23456
-12345678901234567890123456789012.3456	12345678901234567890123456789013.3456	12345678901234567890123456789011.3456
-123456789012345678901234567890123.456	123456789012345678901234567890124.456	123456789012345678901234567890122.456
-999999999999999999999999999999999	1000000000000000000000000000000000	999999999999999999999999999999998
-1234567890123456789012345678901234.56	1234567890123456789012345678901235.56	1234567890123456789012345678901233.56
-9999999999999999999999999999999999	10000000000000000000000000000000000	9999999999999999999999999999999998
-12345678901234567890123456789012345.6	12345678901234567890123456789012346.6	12345678901234567890123456789012344.6
-123456789012345678901234567890123456	123456789012345678901234567890123457	123456789012345678901234567890123455
-123456789012345678901234567890123456	123456789012345678901234567890123457	123456789012345678901234567890123455
-123456789012345678901234567890123456	123456789012345678901234567890123457	123456789012345678901234567890123455
-123456789012345678901234567890123456	123456789012345678901234567890123457	123456789012345678901234567890123455
-123456789012345678901234567890123456	123456789012345678901234567890123457	123456789012345678901234567890123455
-999999999999999999999999999999999999	NULL	999999999999999999999999999999999998
+123456789012345.67890123456789012345678	123456789012346.67890123456789012345678	123456789012344.67890123456789012345678
+1234567890123456.7890123456789012345678	1234567890123457.7890123456789012345678	1234567890123455.7890123456789012345678
+12345678901234567.890123456789012345678	12345678901234568.890123456789012345678	12345678901234566.890123456789012345678
+123456789012345678.90123456789012345678	123456789012345679.90123456789012345678	123456789012345677.90123456789012345678
+1234567890123456789.0123456789012345678	1234567890123456790.0123456789012345678	1234567890123456788.0123456789012345678
+12345678901234567890.123456789012345678	12345678901234567891.123456789012345678	12345678901234567889.123456789012345678
+123456789012345678901.23456789012345678	123456789012345678902.23456789012345678	123456789012345678900.23456789012345678
+1234567890123456789012.3456789012345678	1234567890123456789013.3456789012345678	1234567890123456789011.3456789012345678
+12345678901234567890123.456789012345678	12345678901234567890124.456789012345678	12345678901234567890122.456789012345678
+123456789012345678901234.56789012345678	123456789012345678901235.56789012345678	123456789012345678901233.56789012345678
+1234567890123456789012345.6789012345678	1234567890123456789012346.6789012345678	1234567890123456789012344.6789012345678
+12345678901234567890123456.789012345678	12345678901234567890123457.789012345678	12345678901234567890123455.789012345678
+123456789012345678901234567.89012345678	123456789012345678901234568.89012345678	123456789012345678901234566.89012345678
+1234567890123456789012345678.9012345678	1234567890123456789012345679.9012345678	1234567890123456789012345677.9012345678
+12345678901234567890123456789.012345678	12345678901234567890123456790.012345678	12345678901234567890123456788.012345678
+123456789012345678901234567890.12345678	123456789012345678901234567891.12345678	123456789012345678901234567889.12345678
+1234567890123456789012345678901.2345678	1234567890123456789012345678902.2345678	1234567890123456789012345678900.2345678
+12345678901234567890123456789012.345678	12345678901234567890123456789013.345678	12345678901234567890123456789011.345678
+123456789012345678901234567890123.45678	123456789012345678901234567890124.45678	123456789012345678901234567890122.45678
+1234567890123456789012345678901234.5678	1234567890123456789012345678901235.5678	1234567890123456789012345678901233.5678
+12345678901234567890123456789012345.678	12345678901234567890123456789012346.678	12345678901234567890123456789012344.678
+99999999999999999999999999999999999	100000000000000000000000000000000000	99999999999999999999999999999999998
+123456789012345678901234567890123456.78	123456789012345678901234567890123457.78	123456789012345678901234567890123455.78
+999999999999999999999999999999999999	1000000000000000000000000000000000000	999999999999999999999999999999999998
+12345678901234567890123456789012345678	12345678901234567890123456789012345679	12345678901234567890123456789012345677
+12345678901234567890123456789012345678	12345678901234567890123456789012345679	12345678901234567890123456789012345677
+12345678901234567890123456789012345678	12345678901234567890123456789012345679	12345678901234567890123456789012345677
+12345678901234567890123456789012345678	12345678901234567890123456789012345679	12345678901234567890123456789012345677
+12345678901234567890123456789012345678	12345678901234567890123456789012345679	12345678901234567890123456789012345677
+99999999999999999999999999999999999999	NULL	99999999999999999999999999999999999998
 PREHOOK: query: SELECT dec, dec * 2, dec / 3  FROM DECIMAL_PRECISION ORDER BY dec
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_precision
@@ -196,72 +200,74 @@ NULL	NULL	NULL
 NULL	NULL	NULL
 NULL	NULL	NULL
 NULL	NULL	NULL
--999999999999999999999999999999999999	NULL	-333333333333333333333333333333333333
--9999999999999999999999999999999999	-19999999999999999999999999999999998	-3333333333333333333333333333333333
--999999999999999999999999999999999	-1999999999999999999999999999999998	-333333333333333333333333333333333
--0.00000000000000000000000000000000001	-0.00000000000000000000000000000000002	0
+NULL	NULL	NULL
+-99999999999999999999999999999999999999	NULL	-33333333333333333333333333333333333333
+-999999999999999999999999999999999999	-1999999999999999999999999999999999998	-333333333333333333333333333333333333
+-99999999999999999999999999999999999	-199999999999999999999999999999999998	-33333333333333333333333333333333333
+-0.0000000000000000000000000000000000001	-0.0000000000000000000000000000000000002	0
 0	0	0
-0.00000000000000000000000000000000001	0.00000000000000000000000000000000002	0
+0.0000000000000000000000000000000000001	0.0000000000000000000000000000000000002	0
 0.123456789012345	0.24691357802469	0.041152263004115
-0.12345678901234567890123456789012345	0.2469135780246913578024691357802469	0.04115226300411522630041152263004115
+0.1234567890123456789012345678901234578	0.2469135780246913578024691357802469156	0.0411522630041152263004115226300411526
 1.234567890123456	2.469135780246912	0.411522630041152
-1.23456789012345678901234567890123456	2.46913578024691357802469135780246912	0.41152263004115226300411522630041152
+1.2345678901234567890123456789012345678	2.4691357802469135780246913578024691356	0.4115226300411522630041152263004115226
 12.34567890123456	24.69135780246912	4.11522630041152
-12.3456789012345678901234567890123456	24.6913578024691357802469135780246912	4.1152263004115226300411522630041152
+12.345678901234567890123456789012345678	24.691357802469135780246913578024691356	4.115226300411522630041152263004115226
 123.4567890123456	246.9135780246912	41.1522630041152
-123.456789012345678901234567890123456	246.913578024691357802469135780246912	41.152263004115226300411522630041152
+123.45678901234567890123456789012345678	246.91357802469135780246913578024691356	41.15226300411522630041152263004115226
 1234.567890123456	2469.135780246912	411.522630041152
-1234.56789012345678901234567890123456	2469.13578024691357802469135780246912	411.52263004115226300411522630041152
+1234.5678901234567890123456789012345678	2469.1357802469135780246913578024691356	411.5226300411522630041152263004115226
 12345.67890123456	24691.35780246912	4115.22630041152
-12345.6789012345678901234567890123456	24691.3578024691357802469135780246912	4115.2263004115226300411522630041152
+12345.678901234567890123456789012345678	24691.357802469135780246913578024691356	4115.226300411522630041152263004115226
 123456.7890123456	246913.5780246912	41152.2630041152
-123456.789012345678901234567890123456	246913.578024691357802469135780246912	41152.263004115226300411522630041152
+123456.78901234567890123456789012345678	246913.57802469135780246913578024691356	41152.26300411522630041152263004115226
 1234567.890123456	2469135.780246912	411522.630041152
-1234567.89012345678901234567890123456	2469135.78024691357802469135780246912	411522.63004115226300411522630041152
+1234567.8901234567890123456789012345678	2469135.7802469135780246913578024691356	411522.6300411522630041152263004115226
 12345678.90123456	24691357.80246912	4115226.30041152
-12345678.9012345678901234567890123456	24691357.8024691357802469135780246912	4115226.3004115226300411522630041152
+12345678.901234567890123456789012345678	24691357.802469135780246913578024691356	4115226.300411522630041152263004115226
 123456789.0123456	246913578.0246912	41152263.0041152
-123456789.012345678901234567890123456	246913578.024691357802469135780246912	41152263.004115226300411522630041152
+123456789.01234567890123456789012345678	246913578.02469135780246913578024691356	41152263.00411522630041152263004115226
 1234567890.123456	2469135780.246912	411522630.041152
-1234567890.12345678901234567890123456	2469135780.24691357802469135780246912	411522630.04115226300411522630041152
+1234567890.1234567890123456789012345678	2469135780.2469135780246913578024691356	411522630.0411522630041152263004115226
 12345678901.23456	24691357802.46912	4115226300.41152
-12345678901.2345678901234567890123456	24691357802.4691357802469135780246912	4115226300.4115226300411522630041152
+12345678901.234567890123456789012345678	24691357802.469135780246913578024691356	4115226300.411522630041152263004115226
 123456789012.3456	246913578024.6912	41152263004.1152
-123456789012.345678901234567890123456	246913578024.691357802469135780246912	41152263004.115226300411522630041152
+123456789012.34567890123456789012345678	246913578024.69135780246913578024691356	41152263004.11522630041152263004115226
 1234567890123.456	2469135780246.912	411522630041.152
-1234567890123.45678901234567890123456	2469135780246.91357802469135780246912	411522630041.15226300411522630041152
+1234567890123.4567890123456789012345678	2469135780246.9135780246913578024691356	411522630041.1522630041152263004115226
 12345678901234.56	24691357802469.12	4115226300411.52
-12345678901234.5678901234567890123456	24691357802469.1357802469135780246912	4115226300411.5226300411522630041152
+12345678901234.567890123456789012345678	24691357802469.135780246913578024691356	4115226300411.522630041152263004115226
 123456789012345.6	246913578024691.2	41152263004115.2
-123456789012345.678901234567890123456	246913578024691.357802469135780246912	41152263004115.226300411522630041152
-1234567890123456.78901234567890123456	2469135780246913.57802469135780246912	411522630041152.26300411522630041152
-12345678901234567.8901234567890123456	24691357802469135.7802469135780246912	4115226300411522.6300411522630041152
-123456789012345678.901234567890123456	246913578024691357.802469135780246912	41152263004115226.300411522630041152
-1234567890123456789.01234567890123456	2469135780246913578.02469135780246912	411522630041152263.00411522630041152
-12345678901234567890.1234567890123456	24691357802469135780.2469135780246912	4115226300411522630.0411522630041152
-123456789012345678901.234567890123456	246913578024691357802.469135780246912	41152263004115226300.411522630041152
-1234567890123456789012.34567890123456	2469135780246913578024.69135780246912	411522630041152263004.11522630041152
-12345678901234567890123.4567890123456	24691357802469135780246.9135780246912	4115226300411522630041.1522630041152
-123456789012345678901234.567890123456	246913578024691357802469.135780246912	41152263004115226300411.522630041152
-1234567890123456789012345.67890123456	2469135780246913578024691.35780246912	411522630041152263004115.22630041152
-12345678901234567890123456.7890123456	24691357802469135780246913.5780246912	4115226300411522630041152.2630041152
-123456789012345678901234567.890123456	246913578024691357802469135.780246912	41152263004115226300411522.630041152
-1234567890123456789012345678.90123456	2469135780246913578024691357.80246912	411522630041152263004115226.30041152
-12345678901234567890123456789.0123456	24691357802469135780246913578.0246912	4115226300411522630041152263.0041152
-123456789012345678901234567890.123456	246913578024691357802469135780.246912	41152263004115226300411522630.041152
-1234567890123456789012345678901.23456	2469135780246913578024691357802.46912	411522630041152263004115226300.41152
-12345678901234567890123456789012.3456	24691357802469135780246913578024.6912	4115226300411522630041152263004.1152
-123456789012345678901234567890123.456	246913578024691357802469135780246.912	41152263004115226300411522630041.152
-999999999999999999999999999999999	1999999999999999999999999999999998	333333333333333333333333333333333
-1234567890123456789012345678901234.56	2469135780246913578024691357802469.12	411522630041152263004115226300411.52
-9999999999999999999999999999999999	19999999999999999999999999999999998	3333333333333333333333333333333333
-12345678901234567890123456789012345.6	24691357802469135780246913578024691.2	4115226300411522630041152263004115.2
-123456789012345678901234567890123456	246913578024691357802469135780246912	41152263004115226300411522630041152
-123456789012345678901234567890123456	246913578024691357802469135780246912	41152263004115226300411522630041152
-123456789012345678901234567890123456	246913578024691357802469135780246912	41152263004115226300411522630041152
-123456789012345678901234567890123456	246913578024691357802469135780246912	41152263004115226300411522630041152
-123456789012345678901234567890123456	246913578024691357802469135780246912	41152263004115226300411522630041152
-999999999999999999999999999999999999	NULL	333333333333333333333333333333333333
+123456789012345.67890123456789012345678	246913578024691.35780246913578024691356	41152263004115.22630041152263004115226
+1234567890123456.7890123456789012345678	2469135780246913.5780246913578024691356	411522630041152.2630041152263004115226
+12345678901234567.890123456789012345678	24691357802469135.780246913578024691356	4115226300411522.630041152263004115226
+123456789012345678.90123456789012345678	246913578024691357.80246913578024691356	41152263004115226.30041152263004115226
+1234567890123456789.0123456789012345678	2469135780246913578.0246913578024691356	411522630041152263.0041152263004115226
+12345678901234567890.123456789012345678	24691357802469135780.246913578024691356	4115226300411522630.041152263004115226
+123456789012345678901.23456789012345678	246913578024691357802.46913578024691356	41152263004115226300.41152263004115226
+1234567890123456789012.3456789012345678	2469135780246913578024.6913578024691356	411522630041152263004.1152263004115226
+12345678901234567890123.456789012345678	24691357802469135780246.913578024691356	4115226300411522630041.152263004115226
+123456789012345678901234.56789012345678	246913578024691357802469.13578024691356	41152263004115226300411.52263004115226
+1234567890123456789012345.6789012345678	2469135780246913578024691.3578024691356	411522630041152263004115.2263004115226
+12345678901234567890123456.789012345678	24691357802469135780246913.578024691356	4115226300411522630041152.263004115226
+123456789012345678901234567.89012345678	246913578024691357802469135.78024691356	41152263004115226300411522.63004115226
+1234567890123456789012345678.9012345678	2469135780246913578024691357.8024691356	411522630041152263004115226.3004115226
+12345678901234567890123456789.012345678	24691357802469135780246913578.024691356	4115226300411522630041152263.004115226
+123456789012345678901234567890.12345678	246913578024691357802469135780.24691356	41152263004115226300411522630.04115226
+1234567890123456789012345678901.2345678	2469135780246913578024691357802.4691356	411522630041152263004115226300.4115226
+12345678901234567890123456789012.345678	24691357802469135780246913578024.691356	4115226300411522630041152263004.115226
+123456789012345678901234567890123.45678	246913578024691357802469135780246.91356	41152263004115226300411522630041.15226
+1234567890123456789012345678901234.5678	2469135780246913578024691357802469.1356	411522630041152263004115226300411.5226
+12345678901234567890123456789012345.678	24691357802469135780246913578024691.356	4115226300411522630041152263004115.226
+99999999999999999999999999999999999	199999999999999999999999999999999998	33333333333333333333333333333333333
+123456789012345678901234567890123456.78	246913578024691357802469135780246913.56	41152263004115226300411522630041152.26
+999999999999999999999999999999999999	1999999999999999999999999999999999998	333333333333333333333333333333333333
+12345678901234567890123456789012345678	24691357802469135780246913578024691356	4115226300411522630041152263004115226
+12345678901234567890123456789012345678	24691357802469135780246913578024691356	4115226300411522630041152263004115226
+12345678901234567890123456789012345678	24691357802469135780246913578024691356	4115226300411522630041152263004115226
+12345678901234567890123456789012345678	24691357802469135780246913578024691356	4115226300411522630041152263004115226
+12345678901234567890123456789012345678	24691357802469135780246913578024691356	4115226300411522630041152263004115226
+99999999999999999999999999999999999999	NULL	33333333333333333333333333333333333333
 PREHOOK: query: SELECT dec, dec / 9 FROM DECIMAL_PRECISION ORDER BY dec
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_precision
@@ -277,72 +283,74 @@ NULL	NULL
 NULL	NULL
 NULL	NULL
 NULL	NULL
+NULL	NULL
+-99999999999999999999999999999999999999	-11111111111111111111111111111111111111
 -999999999999999999999999999999999999	-111111111111111111111111111111111111
--9999999999999999999999999999999999	-1111111111111111111111111111111111
--999999999999999999999999999999999	-111111111111111111111111111111111
--0.00000000000000000000000000000000001	0
+-99999999999999999999999999999999999	-11111111111111111111111111111111111
+-0.0000000000000000000000000000000000001	0
 0	0
-0.00000000000000000000000000000000001	0
-0.123456789012345	0.01371742100137166666666666666666667
-0.12345678901234567890123456789012345	0.01371742100137174210013717421001372
-1.234567890123456	0.13717421001371733333333333333333333
-1.23456789012345678901234567890123456	0.13717421001371742100137174210013717
-12.34567890123456	1.37174210013717333333333333333333333
-12.3456789012345678901234567890123456	1.37174210013717421001371742100137173
-123.4567890123456	13.7174210013717333333333333333333333
-123.456789012345678901234567890123456	13.7174210013717421001371742100137173
-1234.567890123456	137.174210013717333333333333333333333
-1234.56789012345678901234567890123456	137.174210013717421001371742100137173
-12345.67890123456	1371.74210013717333333333333333333333
-12345.6789012345678901234567890123456	1371.74210013717421001371742100137173
-123456.7890123456	13717.4210013717333333333333333333333
-123456.789012345678901234567890123456	13717.4210013717421001371742100137173
-1234567.890123456	137174.210013717333333333333333333333
-1234567.89012345678901234567890123456	137174.210013717421001371742100137173
-12345678.90123456	1371742.10013717333333333333333333333
-12345678.9012345678901234567890123456	1371742.10013717421001371742100137173
-123456789.0123456	13717421.0013717333333333333333333333
-123456789.012345678901234567890123456	13717421.0013717421001371742100137173
-1234567890.123456	137174210.013717333333333333333333333
-1234567890.12345678901234567890123456	137174210.013717421001371742100137173
-12345678901.23456	1371742100.13717333333333333333333333
-12345678901.2345678901234567890123456	1371742100.13717421001371742100137173
-123456789012.3456	13717421001.3717333333333333333333333
-123456789012.345678901234567890123456	13717421001.3717421001371742100137173
-1234567890123.456	137174210013.717333333333333333333333
-1234567890123.45678901234567890123456	137174210013.717421001371742100137173
-12345678901234.56	1371742100137.17333333333333333333333
-12345678901234.5678901234567890123456	1371742100137.17421001371742100137173
-123456789012345.6	13717421001371.7333333333333333333333
-123456789012345.678901234567890123456	13717421001371.7421001371742100137173
-1234567890123456.78901234567890123456	137174210013717.421001371742100137173
-12345678901234567.8901234567890123456	1371742100137174.21001371742100137173
-123456789012345678.901234567890123456	13717421001371742.1001371742100137173
-1234567890123456789.01234567890123456	137174210013717421.001371742100137173
-12345678901234567890.1234567890123456	1371742100137174210.01371742100137173
-123456789012345678901.234567890123456	13717421001371742100.1371742100137173
-1234567890123456789012.34567890123456	137174210013717421001.371742100137173
-12345678901234567890123.4567890123456	1371742100137174210013.71742100137173
-123456789012345678901234.567890123456	13717421001371742100137.1742100137173
-1234567890123456789012345.67890123456	137174210013717421001371.742100137173
-12345678901234567890123456.7890123456	1371742100137174210013717.42100137173
-123456789012345678901234567.890123456	13717421001371742100137174.2100137173
-1234567890123456789012345678.90123456	137174210013717421001371742.100137173
-12345678901234567890123456789.0123456	1371742100137174210013717421.00137173
-123456789012345678901234567890.123456	13717421001371742100137174210.0137173
-1234567890123456789012345678901.23456	137174210013717421001371742100.137173
-12345678901234567890123456789012.3456	1371742100137174210013717421001.37173
-123456789012345678901234567890123.456	13717421001371742100137174210013.7173
-999999999999999999999999999999999	111111111111111111111111111111111
-1234567890123456789012345678901234.56	137174210013717421001371742100137.173
-9999999999999999999999999999999999	1111111111111111111111111111111111
-12345678901234567890123456789012345.6	1371742100137174210013717421001371.73
-123456789012345678901234567890123456	13717421001371742100137174210013717.3
-123456789012345678901234567890123456	13717421001371742100137174210013717.3
-123456789012345678901234567890123456	13717421001371742100137174210013717.3
-123456789012345678901234567890123456	13717421001371742100137174210013717.3
-123456789012345678901234567890123456	13717421001371742100137174210013717.3
+0.0000000000000000000000000000000000001	0
+0.123456789012345	0.0137174210013716666666666666666666667
+0.1234567890123456789012345678901234578	0.0137174210013717421001371742100137175
+1.234567890123456	0.1371742100137173333333333333333333333
+1.2345678901234567890123456789012345678	0.1371742100137174210013717421001371742
+12.34567890123456	1.3717421001371733333333333333333333333
+12.345678901234567890123456789012345678	1.371742100137174210013717421001371742
+123.4567890123456	13.717421001371733333333333333333333333
+123.45678901234567890123456789012345678	13.71742100137174210013717421001371742
+1234.567890123456	137.17421001371733333333333333333333333
+1234.5678901234567890123456789012345678	137.1742100137174210013717421001371742
+12345.67890123456	1371.7421001371733333333333333333333333
+12345.678901234567890123456789012345678	1371.742100137174210013717421001371742
+123456.7890123456	13717.421001371733333333333333333333333
+123456.78901234567890123456789012345678	13717.42100137174210013717421001371742
+1234567.890123456	137174.21001371733333333333333333333333
+1234567.8901234567890123456789012345678	137174.2100137174210013717421001371742
+12345678.90123456	1371742.1001371733333333333333333333333
+12345678.901234567890123456789012345678	1371742.100137174210013717421001371742
+123456789.0123456	13717421.001371733333333333333333333333
+123456789.01234567890123456789012345678	13717421.00137174210013717421001371742
+1234567890.123456	137174210.01371733333333333333333333333
+1234567890.1234567890123456789012345678	137174210.0137174210013717421001371742
+12345678901.23456	1371742100.1371733333333333333333333333
+12345678901.234567890123456789012345678	1371742100.137174210013717421001371742
+123456789012.3456	13717421001.371733333333333333333333333
+123456789012.34567890123456789012345678	13717421001.37174210013717421001371742
+1234567890123.456	137174210013.71733333333333333333333333
+1234567890123.4567890123456789012345678	137174210013.7174210013717421001371742
+12345678901234.56	1371742100137.1733333333333333333333333
+12345678901234.567890123456789012345678	1371742100137.174210013717421001371742
+123456789012345.6	13717421001371.733333333333333333333333
+123456789012345.67890123456789012345678	13717421001371.74210013717421001371742
+1234567890123456.7890123456789012345678	137174210013717.4210013717421001371742
+12345678901234567.890123456789012345678	1371742100137174.210013717421001371742
+123456789012345678.90123456789012345678	13717421001371742.10013717421001371742
+1234567890123456789.0123456789012345678	137174210013717421.0013717421001371742
+12345678901234567890.123456789012345678	1371742100137174210.013717421001371742
+123456789012345678901.23456789012345678	13717421001371742100.13717421001371742
+1234567890123456789012.3456789012345678	137174210013717421001.3717421001371742
+12345678901234567890123.456789012345678	1371742100137174210013.717421001371742
+123456789012345678901234.56789012345678	13717421001371742100137.17421001371742
+1234567890123456789012345.6789012345678	137174210013717421001371.7421001371742
+12345678901234567890123456.789012345678	1371742100137174210013717.421001371742
+123456789012345678901234567.89012345678	13717421001371742100137174.21001371742
+1234567890123456789012345678.9012345678	137174210013717421001371742.1001371742
+12345678901234567890123456789.012345678	1371742100137174210013717421.001371742
+123456789012345678901234567890.12345678	13717421001371742100137174210.01371742
+1234567890123456789012345678901.2345678	137174210013717421001371742100.1371742
+12345678901234567890123456789012.345678	1371742100137174210013717421001.371742
+123456789012345678901234567890123.45678	13717421001371742100137174210013.71742
+1234567890123456789012345678901234.5678	137174210013717421001371742100137.1742
+12345678901234567890123456789012345.678	1371742100137174210013717421001371.742
+99999999999999999999999999999999999	11111111111111111111111111111111111
+123456789012345678901234567890123456.78	13717421001371742100137174210013717.42
 999999999999999999999999999999999999	111111111111111111111111111111111111
+12345678901234567890123456789012345678	1371742100137174210013717421001371742
+12345678901234567890123456789012345678	1371742100137174210013717421001371742
+12345678901234567890123456789012345678	1371742100137174210013717421001371742
+12345678901234567890123456789012345678	1371742100137174210013717421001371742
+12345678901234567890123456789012345678	1371742100137174210013717421001371742
+99999999999999999999999999999999999999	11111111111111111111111111111111111111
 PREHOOK: query: SELECT dec, dec / 27 FROM DECIMAL_PRECISION ORDER BY dec
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_precision
@@ -358,72 +366,74 @@ NULL	NULL
 NULL	NULL
 NULL	NULL
 NULL	NULL
+NULL	NULL
+-99999999999999999999999999999999999999	-3703703703703703703703703703703703703.7
 -999999999999999999999999999999999999	-37037037037037037037037037037037037
--9999999999999999999999999999999999	-370370370370370370370370370370370.333
--999999999999999999999999999999999	-37037037037037037037037037037037
--0.00000000000000000000000000000000001	0
+-99999999999999999999999999999999999	-3703703703703703703703703703703703.6667
+-0.0000000000000000000000000000000000001	0
 0	0
-0.00000000000000000000000000000000001	0
-0.123456789012345	0.00457247366712388888888888888888889
-0.12345678901234567890123456789012345	0.00457247366712391403337905807000457
-1.234567890123456	0.04572473667123911111111111111111111
-1.23456789012345678901234567890123456	0.04572473667123914033379058070004572
-12.34567890123456	0.45724736671239111111111111111111111
-12.3456789012345678901234567890123456	0.45724736671239140333790580700045724
-123.4567890123456	4.57247366712391111111111111111111111
-123.456789012345678901234567890123456	4.57247366712391403337905807000457244
-1234.567890123456	45.7247366712391111111111111111111111
-1234.56789012345678901234567890123456	45.7247366712391403337905807000457244
-12345.67890123456	457.247366712391111111111111111111111
-12345.6789012345678901234567890123456	457.247366712391403337905807000457244
-123456.7890123456	4572.47366712391111111111111111111111
-123456.789012345678901234567890123456	4572.47366712391403337905807000457244
-1234567.890123456	45724.7366712391111111111111111111111
-1234567.89012345678901234567890123456	45724.7366712391403337905807000457244
-12345678.90123456	457247.366712391111111111111111111111
-12345678.9012345678901234567890123456	457247.366712391403337905807000457244
-123456789.0123456	4572473.66712391111111111111111111111
-123456789.012345678901234567890123456	4572473.66712391403337905807000457244
-1234567890.123456	45724736.6712391111111111111111111111
-1234567890.12345678901234567890123456	45724736.6712391403337905807000457244
-12345678901.23456	457247366.712391111111111111111111111
-12345678901.2345678901234567890123456	457247366.712391403337905807000457244
-123456789012.3456	4572473667.12391111111111111111111111
-123456789012.345678901234567890123456	4572473667.12391403337905807000457244
-1234567890123.456	45724736671.2391111111111111111111111
-1234567890123.45678901234567890123456	45724736671.2391403337905807000457244
-12345678901234.56	457247366712.391111111111111111111111
-12345678901234.5678901234567890123456	457247366712.391403337905807000457244
-123456789012345.6	4572473667123.91111111111111111111111
-123456789012345.678901234567890123456	4572473667123.91403337905807000457244
-1234567890123456.78901234567890123456	45724736671239.1403337905807000457244
-12345678901234567.8901234567890123456	457247366712391.403337905807000457244
-123456789012345678.901234567890123456	4572473667123914.03337905807000457244
-1234567890123456789.01234567890123456	45724736671239140.3337905807000457244
-12345678901234567890.1234567890123456	457247366712391403.337905807000457244
-123456789012345678901.234567890123456	4572473667123914033.37905807000457244
-1234567890123456789012.34567890123456	45724736671239140333.7905807000457244
-12345678901234567890123.4567890123456	457247366712391403337.905807000457244
-123456789012345678901234.567890123456	4572473667123914033379.05807000457244
-1234567890123456789012345.67890123456	45724736671239140333790.5807000457244
-12345678901234567890123456.7890123456	457247366712391403337905.807000457244
-123456789012345678901234567.890123456	4572473667123914033379058.07000457244
-1234567890123456789012345678.90123456	45724736671239140333790580.7000457244
-12345678901234567890123456789.0123456	457247366712391403337905807.000457244
-123456789012345678901234567890.123456	4572473667123914033379058070.00457244
-1234567890123456789012345678901.23456	45724736671239140333790580700.0457244
-12345678901234567890123456789012.3456	457247366712391403337905807000.457244
-123456789012345678901234567890123.456	4572473667123914033379058070004.57244
-999999999999999999999999999999999	37037037037037037037037037037037
-1234567890123456789012345678901234.56	45724736671239140333790580700045.7244
-9999999999999999999999999999999999	370370370370370370370370370370370.333
-12345678901234567890123456789012345.6	457247366712391403337905807000457.244
-123456789012345678901234567890123456	4572473667123914033379058070004572.44
-123456789012345678901234567890123456	4572473667123914033379058070004572.44
-123456789012345678901234567890123456	4572473667123914033379058070004572.44
-123456789012345678901234567890123456	4572473667123914033379058070004572.44
-123456789012345678901234567890123456	4572473667123914033379058070004572.44
+0.0000000000000000000000000000000000001	0
+0.123456789012345	0.0045724736671238888888888888888888889
+0.1234567890123456789012345678901234578	0.0045724736671239140333790580700045725
+1.234567890123456	0.0457247366712391111111111111111111111
+1.2345678901234567890123456789012345678	0.0457247366712391403337905807000457247
+12.34567890123456	0.4572473667123911111111111111111111111
+12.345678901234567890123456789012345678	0.4572473667123914033379058070004572473
+123.4567890123456	4.5724736671239111111111111111111111111
+123.45678901234567890123456789012345678	4.5724736671239140333790580700045724733
+1234.567890123456	45.724736671239111111111111111111111111
+1234.5678901234567890123456789012345678	45.724736671239140333790580700045724733
+12345.67890123456	457.24736671239111111111111111111111111
+12345.678901234567890123456789012345678	457.24736671239140333790580700045724733
+123456.7890123456	4572.4736671239111111111111111111111111
+123456.78901234567890123456789012345678	4572.4736671239140333790580700045724733
+1234567.890123456	45724.736671239111111111111111111111111
+1234567.8901234567890123456789012345678	45724.736671239140333790580700045724733
+12345678.90123456	457247.36671239111111111111111111111111
+12345678.901234567890123456789012345678	457247.36671239140333790580700045724733
+123456789.0123456	4572473.6671239111111111111111111111111
+123456789.01234567890123456789012345678	4572473.6671239140333790580700045724733
+1234567890.123456	45724736.671239111111111111111111111111
+1234567890.1234567890123456789012345678	45724736.671239140333790580700045724733
+12345678901.23456	457247366.71239111111111111111111111111
+12345678901.234567890123456789012345678	457247366.71239140333790580700045724733
+123456789012.3456	4572473667.1239111111111111111111111111
+123456789012.34567890123456789012345678	4572473667.1239140333790580700045724733
+1234567890123.456	45724736671.239111111111111111111111111
+1234567890123.4567890123456789012345678	45724736671.239140333790580700045724733
+12345678901234.56	457247366712.39111111111111111111111111
+12345678901234.567890123456789012345678	457247366712.39140333790580700045724733
+123456789012345.6	4572473667123.9111111111111111111111111
+123456789012345.67890123456789012345678	4572473667123.9140333790580700045724733
+1234567890123456.7890123456789012345678	45724736671239.140333790580700045724733
+12345678901234567.890123456789012345678	457247366712391.40333790580700045724733
+123456789012345678.90123456789012345678	4572473667123914.0333790580700045724733
+1234567890123456789.0123456789012345678	45724736671239140.333790580700045724733
+12345678901234567890.123456789012345678	457247366712391403.33790580700045724733
+123456789012345678901.23456789012345678	4572473667123914033.3790580700045724733
+1234567890123456789012.3456789012345678	45724736671239140333.790580700045724733
+12345678901234567890123.456789012345678	457247366712391403337.90580700045724733
+123456789012345678901234.56789012345678	4572473667123914033379.0580700045724733
+1234567890123456789012345.6789012345678	45724736671239140333790.580700045724733
+12345678901234567890123456.789012345678	457247366712391403337905.80700045724733
+123456789012345678901234567.89012345678	4572473667123914033379058.0700045724733
+1234567890123456789012345678.9012345678	45724736671239140333790580.700045724733
+12345678901234567890123456789.012345678	457247366712391403337905807.00045724733
+123456789012345678901234567890.12345678	4572473667123914033379058070.0045724733
+1234567890123456789012345678901.2345678	45724736671239140333790580700.045724733
+12345678901234567890123456789012.345678	457247366712391403337905807000.45724733
+123456789012345678901234567890123.45678	4572473667123914033379058070004.5724733
+1234567890123456789012345678901234.5678	45724736671239140333790580700045.724733
+12345678901234567890123456789012345.678	457247366712391403337905807000457.24733
+99999999999999999999999999999999999	3703703703703703703703703703703703.6667
+123456789012345678901234567890123456.78	4572473667123914033379058070004572.4733
 999999999999999999999999999999999999	37037037037037037037037037037037037
+12345678901234567890123456789012345678	457247366712391403337905807000457247.33
+12345678901234567890123456789012345678	457247366712391403337905807000457247.33
+12345678901234567890123456789012345678	457247366712391403337905807000457247.33
+12345678901234567890123456789012345678	457247366712391403337905807000457247.33
+12345678901234567890123456789012345678	457247366712391403337905807000457247.33
+99999999999999999999999999999999999999	3703703703703703703703703703703703703.7
 PREHOOK: query: SELECT dec, dec * dec FROM DECIMAL_PRECISION ORDER BY dec
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_precision
@@ -439,72 +449,74 @@ NULL	NULL
 NULL	NULL
 NULL	NULL
 NULL	NULL
+NULL	NULL
+-99999999999999999999999999999999999999	NULL
 -999999999999999999999999999999999999	NULL
--9999999999999999999999999999999999	NULL
--999999999999999999999999999999999	NULL
--0.00000000000000000000000000000000001	NULL
+-99999999999999999999999999999999999	NULL
+-0.0000000000000000000000000000000000001	NULL
 0	0
-0.00000000000000000000000000000000001	NULL
+0.0000000000000000000000000000000000001	NULL
 0.123456789012345	0.015241578753238669120562399025
-0.12345678901234567890123456789012345	NULL
+0.1234567890123456789012345678901234578	NULL
 1.234567890123456	1.524157875323881726870921383936
-1.23456789012345678901234567890123456	NULL
+1.2345678901234567890123456789012345678	NULL
 12.34567890123456	152.4157875323881726870921383936
-12.3456789012345678901234567890123456	NULL
+12.345678901234567890123456789012345678	NULL
 123.4567890123456	15241.57875323881726870921383936
-123.456789012345678901234567890123456	NULL
+123.45678901234567890123456789012345678	NULL
 1234.567890123456	1524157.875323881726870921383936
-1234.56789012345678901234567890123456	NULL
+1234.5678901234567890123456789012345678	NULL
 12345.67890123456	152415787.5323881726870921383936
-12345.6789012345678901234567890123456	NULL
+12345.678901234567890123456789012345678	NULL
 123456.7890123456	15241578753.23881726870921383936
-123456.789012345678901234567890123456	NULL
+123456.78901234567890123456789012345678	NULL
 1234567.890123456	1524157875323.881726870921383936
-1234567.89012345678901234567890123456	NULL
+1234567.8901234567890123456789012345678	NULL
 12345678.90123456	152415787532388.1726870921383936
-12345678.9012345678901234567890123456	NULL
+12345678.901234567890123456789012345678	NULL
 123456789.0123456	15241578753238817.26870921383936
-123456789.012345678901234567890123456	NULL
+123456789.01234567890123456789012345678	NULL
 1234567890.123456	1524157875323881726.870921383936
-1234567890.12345678901234567890123456	NULL
+1234567890.1234567890123456789012345678	NULL
 12345678901.23456	152415787532388172687.0921383936
-12345678901.2345678901234567890123456	NULL
+12345678901.234567890123456789012345678	NULL
 123456789012.3456	15241578753238817268709.21383936
-123456789012.345678901234567890123456	NULL
+123456789012.34567890123456789012345678	NULL
 1234567890123.456	1524157875323881726870921.383936
-1234567890123.45678901234567890123456	NULL
+1234567890123.4567890123456789012345678	NULL
 12345678901234.56	152415787532388172687092138.3936
-12345678901234.5678901234567890123456	NULL
+12345678901234.567890123456789012345678	NULL
 123456789012345.6	15241578753238817268709213839.36
-123456789012345.678901234567890123456	NULL
-1234567890123456.78901234567890123456	NULL
-12345678901234567.8901234567890123456	NULL
-123456789012345678.901234567890123456	NULL
-1234567890123456789.01234567890123456	NULL
-12345678901234567890.1234567890123456	NULL
-123456789012345678901.234567890123456	NULL
-1234567890123456789012.34567890123456	NULL
-12345678901234567890123.4567890123456	NULL
-123456789012345678901234.567890123456	NULL
-1234567890123456789012345.67890123456	NULL
-12345678901234567890123456.7890123456	NULL
-123456789012345678901234567.890123456	NULL
-1234567890123456789012345678.90123456	NULL
-12345678901234567890123456789.0123456	NULL
-123456789012345678901234567890.123456	NULL
-1234567890123456789012345678901.23456	NULL
-12345678901234567890123456789012.3456	NULL
-123456789012345678901234567890123.456	NULL
-999999999999999999999999999999999	NULL
-1234567890123456789012345678901234.56	NULL
-9999999999999999999999999999999999	NULL
-12345678901234567890123456789012345.6	NULL
-123456789012345678901234567890123456	NULL
-123456789012345678901234567890123456	NULL
-123456789012345678901234567890123456	NULL
-123456789012345678901234567890123456	NULL
-123456789012345678901234567890123456	NULL
+123456789012345.67890123456789012345678	NULL
+1234567890123456.7890123456789012345678	NULL
+12345678901234567.890123456789012345678	NULL
+123456789012345678.90123456789012345678	NULL
+1234567890123456789.0123456789012345678	NULL
+12345678901234567890.123456789012345678	NULL
+123456789012345678901.23456789012345678	NULL
+1234567890123456789012.3456789012345678	NULL
+12345678901234567890123.456789012345678	NULL
+123456789012345678901234.56789012345678	NULL
+1234567890123456789012345.6789012345678	NULL
+12345678901234567890123456.789012345678	NULL
+123456789012345678901234567.89012345678	NULL
+1234567890123456789012345678.9012345678	NULL
+12345678901234567890123456789.012345678	NULL
+123456789012345678901234567890.12345678	NULL
+1234567890123456789012345678901.2345678	NULL
+12345678901234567890123456789012.345678	NULL
+123456789012345678901234567890123.45678	NULL
+1234567890123456789012345678901234.5678	NULL
+12345678901234567890123456789012345.678	NULL
+99999999999999999999999999999999999	NULL
+123456789012345678901234567890123456.78	NULL
 999999999999999999999999999999999999	NULL
+12345678901234567890123456789012345678	NULL
+12345678901234567890123456789012345678	NULL
+12345678901234567890123456789012345678	NULL
+12345678901234567890123456789012345678	NULL
+12345678901234567890123456789012345678	NULL
+99999999999999999999999999999999999999	NULL
 PREHOOK: query: SELECT avg(dec), sum(dec) FROM DECIMAL_PRECISION
 PREHOOK: type: QUERY
 PREHOOK: Input: default@decimal_precision

Modified: hive/branches/branch-0.11/ql/src/test/results/clientpositive/decimal_udf.q.out
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.11/ql/src/test/results/clientpositive/decimal_udf.q.out?rev=1468592&r1=1468591&r2=1468592&view=diff
==============================================================================
--- hive/branches/branch-0.11/ql/src/test/results/clientpositive/decimal_udf.q.out (original)
+++ hive/branches/branch-0.11/ql/src/test/results/clientpositive/decimal_udf.q.out Tue Apr 16 20:13:54 2013
@@ -752,7 +752,7 @@ NULL
 9.8596
 9.8596
 NULL
-NULL
+1524157875323883675.019051998750190521
 1524157875323883652.7968299765279684
 PREHOOK: query: EXPLAIN SELECT key * value FROM DECIMAL_UDF
 PREHOOK: type: QUERY
@@ -1226,7 +1226,7 @@ POSTHOOK: Input: default@decimal_udf
 1
 1
 1
-1.04666666666666666666666666666666667
+1.0466666666666666666666666666666666667
 1.12
 1.12
 0.102
@@ -1234,13 +1234,13 @@ POSTHOOK: Input: default@decimal_udf
 1.122
 1
 1.0016
-1.00039043824701195219123505976095618
-1.04666666666666666666666666666666667
-1.04666666666666666666666666666666667
+1.0003904382470119521912350597609561753
+1.0466666666666666666666666666666666667
+1.0466666666666666666666666666666666667
 0.785
 0.9999999999999999999999999
 1.0000000001
-1.0000000000999999927099999336609994
+1.0000000000999999927099999336609993963
 PREHOOK: query: EXPLAIN SELECT key / (value/2) FROM DECIMAL_UDF  WHERE value is not null and value <> 0
 PREHOOK: type: QUERY
 POSTHOOK: query: EXPLAIN SELECT key / (value/2) FROM DECIMAL_UDF  WHERE value is not null and value <> 0
@@ -1297,7 +1297,7 @@ POSTHOOK: Input: default@decimal_udf
 2
 2
 2
-2.09333333333333333333333333333333333
+2.0933333333333333333333333333333333333
 2.24
 2.24
 0.204
@@ -1305,13 +1305,13 @@ POSTHOOK: Input: default@decimal_udf
 2.244
 2
 2.0032
-2.00078087649402390438247011952191235
-2.09333333333333333333333333333333333
-2.09333333333333333333333333333333333
+2.0007808764940239043824701195219123506
+2.0933333333333333333333333333333333333
+2.0933333333333333333333333333333333333
 1.57
 1.9999999999999999999999998
 2.0000000002
-2.00000000019999998541999986732199879
+2.0000000001999999854199998673219987926
 PREHOOK: query: EXPLAIN SELECT key / '2.0' FROM DECIMAL_UDF
 PREHOOK: type: QUERY
 POSTHOOK: query: EXPLAIN SELECT key / '2.0' FROM DECIMAL_UDF
@@ -2111,7 +2111,7 @@ NULL
 9.8596
 9.8596
 NULL
-NULL
+1524157875323883675.019051998750190521
 1524157875323883652.7968299765279684
 PREHOOK: query: -- modulo
 EXPLAIN SELECT (key + 1) % (key / 2) FROM DECIMAL_UDF