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