diff --git ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFComputeStats.java ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFComputeStats.java index 57e8b62..b656263 100644 --- ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFComputeStats.java +++ ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFComputeStats.java @@ -538,6 +538,9 @@ public void merge(AggregationBuffer agg, Object partial) throws HiveException { if (myagg.numDV == null) { Object partialValue = soi.getStructFieldData(partial, numBitVectorsField); int numVectors = numBitVectorsFieldOI.get(partialValue); + if (numVectors <= 0) { + return; + } myagg.initNDVEstimator(numVectors); } @@ -963,6 +966,9 @@ public void merge(AggregationBuffer agg, Object partial) throws HiveException { if (myagg.firstItem) { Object partialValue = soi.getStructFieldData(partial, numBitVectorsField); int numVectors = numBitVectorsFieldOI.get(partialValue); + if (numVectors <= 0) { + return; + } initNDVEstimator(myagg, numVectors); myagg.firstItem = false; myagg.numBitVectors = numVectors;