You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by we...@apache.org on 2017/02/14 00:17:02 UTC
hive git commit: HIVE-15872 : The PERCENTILE_APPROX UDAF does not
work with empty set (Chaozhong Yang, reviewed by Wei Zheng)
Repository: hive
Updated Branches:
refs/heads/master e8c8ff95e -> 84faae007
HIVE-15872 : The PERCENTILE_APPROX UDAF does not work with empty set (Chaozhong Yang, reviewed by Wei Zheng)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/84faae00
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/84faae00
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/84faae00
Branch: refs/heads/master
Commit: 84faae00731313964c06d223afe27dc6a91847b6
Parents: e8c8ff9
Author: Chaozhong Yang <ya...@gmail.com>
Authored: Mon Feb 13 16:16:23 2017 -0800
Committer: Wei Zheng <we...@apache.org>
Committed: Mon Feb 13 16:16:23 2017 -0800
----------------------------------------------------------------------
.../hive/ql/udf/generic/GenericUDAFPercentileApprox.java | 2 ++
.../test/queries/clientpositive/udaf_percentile_approx_23.q | 3 +++
.../results/clientpositive/udaf_percentile_approx_23.q.out | 9 +++++++++
3 files changed, 14 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/84faae00/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFPercentileApprox.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFPercentileApprox.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFPercentileApprox.java
index 8c5d436..220e0d1 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFPercentileApprox.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFPercentileApprox.java
@@ -309,6 +309,8 @@ public class GenericUDAFPercentileApprox extends AbstractGenericUDAFResolver {
myagg.quantiles[i-1] = doi.get(partialHistogram.get(i));
}
partialHistogram.subList(0, nquantiles+1).clear();
+ } else {
+ partialHistogram.subList(0, 1).clear();
}
// merge histograms
http://git-wip-us.apache.org/repos/asf/hive/blob/84faae00/ql/src/test/queries/clientpositive/udaf_percentile_approx_23.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/udaf_percentile_approx_23.q b/ql/src/test/queries/clientpositive/udaf_percentile_approx_23.q
index 80ea489..05e64a3 100644
--- a/ql/src/test/queries/clientpositive/udaf_percentile_approx_23.q
+++ b/ql/src/test/queries/clientpositive/udaf_percentile_approx_23.q
@@ -97,3 +97,6 @@ select percentile_approx(case when key < 100 then cast('NaN' as double) else key
explain
select percentile_approx(key, 0.5) from bucket;
select percentile_approx(key, 0.5) between 255.0 and 257.0 from bucket;
+
+-- test where number of elements is zero
+select percentile_approx(key, array(0.50, 0.70, 0.90, 0.95, 0.99)) from bucket where key > 10000;
http://git-wip-us.apache.org/repos/asf/hive/blob/84faae00/ql/src/test/results/clientpositive/udaf_percentile_approx_23.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/udaf_percentile_approx_23.q.out b/ql/src/test/results/clientpositive/udaf_percentile_approx_23.q.out
index 66c0c8f..ff6942a 100644
--- a/ql/src/test/results/clientpositive/udaf_percentile_approx_23.q.out
+++ b/ql/src/test/results/clientpositive/udaf_percentile_approx_23.q.out
@@ -612,3 +612,12 @@ POSTHOOK: type: QUERY
POSTHOOK: Input: default@bucket
#### A masked pattern was here ####
true
+PREHOOK: query: select percentile_approx(key, array(0.50, 0.70, 0.90, 0.95, 0.99)) from bucket where key > 10000
+PREHOOK: type: QUERY
+PREHOOK: Input: default@bucket
+#### A masked pattern was here ####
+POSTHOOK: query: select percentile_approx(key, array(0.50, 0.70, 0.90, 0.95, 0.99)) from bucket where key > 10000
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@bucket
+#### A masked pattern was here ####
+NULL