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 2014/08/10 06:30:42 UTC

svn commit: r1617046 - /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFAverage.java

Author: hashutosh
Date: Sun Aug 10 04:30:42 2014
New Revision: 1617046

URL: http://svn.apache.org/r1617046
Log:
HIVE-7539 : streaming windowing UDAF seems to be broken without Partition Spec (Navis via Harish Butani)

Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFAverage.java

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFAverage.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFAverage.java?rev=1617046&r1=1617045&r2=1617046&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFAverage.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFAverage.java Sun Aug 10 04:30:42 2014
@@ -175,9 +175,11 @@ public class GenericUDAFAverage extends 
           if (ss.numPreceding != BoundarySpec.UNBOUNDED_AMOUNT
               && (ss.numRows - ss.numFollowing) >= (ss.numPreceding + 1)) {
             Object[] o = ss.intermediateVals.remove(0);
-            Double d = o == null ? 0.0 : (Double) o[0];
-            r = r == null ? null : r - d;
-            cnt = cnt - ((Long) o[1]);
+            if (o != null) {
+              Double d = (Double) o[0];
+              r = r == null ? null : r - d;
+              cnt = cnt - ((Long) o[1]);
+            }
           }
 
           return r == null ? null : new DoubleWritable(r / cnt);
@@ -303,9 +305,11 @@ public class GenericUDAFAverage extends 
           if (ss.numPreceding != BoundarySpec.UNBOUNDED_AMOUNT
               && (ss.numRows - ss.numFollowing) >= (ss.numPreceding + 1)) {
             Object[] o = ss.intermediateVals.remove(0);
-            HiveDecimal d = o == null ? HiveDecimal.ZERO : (HiveDecimal) o[0];
-            r = r == null ? null : r.subtract(d);
-            cnt = cnt - ((Long) o[1]);
+            if (o != null) {
+              HiveDecimal d = (HiveDecimal) o[0];
+              r = r == null ? null : r.subtract(d);
+              cnt = cnt - ((Long) o[1]);
+            }
           }
 
           return r == null ? null : new HiveDecimalWritable(