You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by sz...@apache.org on 2014/07/03 20:10:19 UTC

svn commit: r1607704 - in /hive/trunk/ql/src: java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFormatNumber.java test/queries/clientpositive/udf_format_number.q test/results/clientpositive/udf_format_number.q.out

Author: szehon
Date: Thu Jul  3 18:10:19 2014
New Revision: 1607704

URL: http://svn.apache.org/r1607704
Log:
HIVE-7257: UDF format_number() does not work on FLOAT types (Wilbur Yang via Szehon)

Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFormatNumber.java
    hive/trunk/ql/src/test/queries/clientpositive/udf_format_number.q
    hive/trunk/ql/src/test/results/clientpositive/udf_format_number.q.out

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFormatNumber.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFormatNumber.java?rev=1607704&r1=1607703&r2=1607704&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFormatNumber.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFormatNumber.java Thu Jul  3 18:10:19 2014
@@ -29,6 +29,7 @@ import org.apache.hadoop.hive.serde.serd
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.DoubleObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.primitive.FloatObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.IntObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.LongObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
@@ -166,17 +167,21 @@ public class GenericUDFFormatNumber exte
     }
 
     double xDoubleValue = 0.0;
+    float xFloatValue = 0.0f;
     int xIntValue = 0;
     long xLongValue = 0L;
 
     PrimitiveObjectInspector xObjectInspector = (PrimitiveObjectInspector)argumentOIs[0];
     switch (xObjectInspector.getPrimitiveCategory()) {
       case VOID:
-      case FLOAT:
       case DOUBLE:
         xDoubleValue = ((DoubleObjectInspector) argumentOIs[0]).get(arguments[0].get());
         resultText.set(numberFormat.format(xDoubleValue));
         break;
+      case FLOAT:
+        xFloatValue = ((FloatObjectInspector) argumentOIs[0]).get(arguments[0].get());
+        resultText.set(numberFormat.format(xFloatValue));
+        break;
       case BYTE:
       case SHORT:
       case INT:

Modified: hive/trunk/ql/src/test/queries/clientpositive/udf_format_number.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/udf_format_number.q?rev=1607704&r1=1607703&r2=1607704&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/udf_format_number.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/udf_format_number.q Thu Jul  3 18:10:19 2014
@@ -57,3 +57,9 @@ SELECT format_number(-922337203685477580
     format_number(4.9E-324, 324),
     format_number(1.7976931348623157E308, 308)
 FROM src tablesample (1 rows);
+
+-- floats
+SELECT format_number(CAST(12332.123456 AS FLOAT), 4),
+    format_number(CAST(12332.1 AS FLOAT), 4),
+    format_number(CAST(-12332.2 AS FLOAT), 0)
+FROM src tablesample (1 rows);

Modified: hive/trunk/ql/src/test/results/clientpositive/udf_format_number.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/udf_format_number.q.out?rev=1607704&r1=1607703&r2=1607704&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/udf_format_number.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/udf_format_number.q.out Thu Jul  3 18:10:19 2014
@@ -171,3 +171,20 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: default@src
 #### A masked pattern was here ####
 -9,223,372,036,854,775,807.0000000000	9,223,372,036,854,775,807.00000000000000000000	0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005	179,769,313,486,231,570,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+PREHOOK: query: -- floats
+SELECT format_number(CAST(12332.123456 AS FLOAT), 4),
+    format_number(CAST(12332.1 AS FLOAT), 4),
+    format_number(CAST(-12332.2 AS FLOAT), 0)
+FROM src tablesample (1 rows)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: -- floats
+SELECT format_number(CAST(12332.123456 AS FLOAT), 4),
+    format_number(CAST(12332.1 AS FLOAT), 4),
+    format_number(CAST(-12332.2 AS FLOAT), 0)
+FROM src tablesample (1 rows)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+12,332.1230	12,332.0996	-12,332