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(