Author: xuefu
Date: Sat Dec 21 01:58:49 2013
New Revision: 1552860

URL: http://svn.apache.org/r1552860
Log:
HIVE-5992: Hive inconsistently converts timestamp in AVG and SUM UDAF's 
(reviewed by Prasad)

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

Modified: 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java?rev=1552860&r1=1552859&r2=1552860&view=diff
==============================================================================
--- 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java
 (original)
+++ 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java
 Sat Dec 21 01:58:49 2013
@@ -50,7 +50,7 @@ public class GenericUDAFSum extends Abst
 
   @Override
   public GenericUDAFEvaluator getEvaluator(TypeInfo[] parameters)
-    throws SemanticException {
+      throws SemanticException {
     if (parameters.length != 1) {
       throw new UDFArgumentTypeException(parameters.length - 1,
           "Exactly one argument is expected.");
@@ -59,15 +59,15 @@ public class GenericUDAFSum extends Abst
     if (parameters[0].getCategory() != ObjectInspector.Category.PRIMITIVE) {
       throw new UDFArgumentTypeException(0,
           "Only primitive type arguments are accepted but "
-          + parameters[0].getTypeName() + " is passed.");
+              + parameters[0].getTypeName() + " is passed.");
     }
     switch (((PrimitiveTypeInfo) parameters[0]).getPrimitiveCategory()) {
     case BYTE:
     case SHORT:
     case INT:
     case LONG:
-    case TIMESTAMP:
       return new GenericUDAFSumLong();
+    case TIMESTAMP:
     case FLOAT:
     case DOUBLE:
     case STRING:
@@ -81,7 +81,7 @@ public class GenericUDAFSum extends Abst
     default:
       throw new UDFArgumentTypeException(0,
           "Only numeric or string type arguments are accepted but "
-          + parameters[0].getTypeName() + " is passed.");
+              + parameters[0].getTypeName() + " is passed.");
     }
   }
 
@@ -145,7 +145,7 @@ public class GenericUDAFSum extends Abst
           LOG.warn(getClass().getSimpleName() + " "
               + StringUtils.stringifyException(e));
           LOG
-              .warn(getClass().getSimpleName()
+          .warn(getClass().getSimpleName()
               + " ignoring similar exceptions.");
         }
       }
@@ -234,7 +234,7 @@ public class GenericUDAFSum extends Abst
           LOG.warn(getClass().getSimpleName() + " "
               + StringUtils.stringifyException(e));
           LOG
-              .warn(getClass().getSimpleName()
+          .warn(getClass().getSimpleName()
               + " ignoring similar exceptions.");
         }
       }

Modified: hive/trunk/ql/src/test/queries/clientpositive/timestamp_3.q
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/timestamp_3.q?rev=1552860&r1=1552859&r2=1552860&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/timestamp_3.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/timestamp_3.q Sat Dec 21 
01:58:49 2013
@@ -16,4 +16,6 @@ select cast(t as float) from timestamp_3
 select cast(t as double) from timestamp_3 limit 1;
 select cast(t as string) from timestamp_3 limit 1;
 
+select t, sum(t), count(*), sum(t)/count(*), avg(t) from timestamp_3 group by 
t;
+
 drop table timestamp_3;

Modified: hive/trunk/ql/src/test/results/clientpositive/timestamp_3.q.out
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/timestamp_3.q.out?rev=1552860&r1=1552859&r2=1552860&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/timestamp_3.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/timestamp_3.q.out Sat Dec 21 
01:58:49 2013
@@ -106,6 +106,16 @@ POSTHOOK: Input: default@timestamp_3
 #### A masked pattern was here ####
 POSTHOOK: Lineage: timestamp_3.t EXPRESSION []
 2011-04-29 20:46:56.4485
+PREHOOK: query: select t, sum(t), count(*), sum(t)/count(*), avg(t) from 
timestamp_3 group by t
+PREHOOK: type: QUERY
+PREHOOK: Input: default@timestamp_3
+#### A masked pattern was here ####
+POSTHOOK: query: select t, sum(t), count(*), sum(t)/count(*), avg(t) from 
timestamp_3 group by t
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@timestamp_3
+#### A masked pattern was here ####
+POSTHOOK: Lineage: timestamp_3.t EXPRESSION []
+2011-04-29 20:46:56.4485       1.3041352164485E9       1       
1.3041352164485E9       1.3041352164485E9
 PREHOOK: query: drop table timestamp_3
 PREHOOK: type: DROPTABLE
 PREHOOK: Input: default@timestamp_3


Reply via email to