This is an automated email from the ASF dual-hosted git repository.
yashmayya pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 88456755908 Handle empty tables appropriately for various aggregation
functions (#17750)
88456755908 is described below
commit 884567559084baa8b78757dda0752024e0aa9cd5
Author: Yash Mayya <[email protected]>
AuthorDate: Mon Feb 23 16:45:10 2026 -0800
Handle empty tables appropriately for various aggregation functions (#17750)
---
.../aggregation/function/DistinctCountAggregationFunction.java | 6 ++++--
.../function/DistinctCountBitmapAggregationFunction.java | 6 ++++--
.../function/DistinctCountCPCSketchAggregationFunction.java | 7 ++++++-
.../aggregation/function/DistinctCountHLLAggregationFunction.java | 6 ++++--
.../function/DistinctCountHLLPlusAggregationFunction.java | 6 ++++--
.../DistinctCountIntegerTupleSketchAggregationFunction.java | 6 +++++-
.../aggregation/function/DistinctCountMVAggregationFunction.java | 6 ++++--
.../function/DistinctCountOffHeapAggregationFunction.java | 7 +++++--
.../function/DistinctCountRawCPCSketchAggregationFunction.java | 7 ++++++-
.../function/DistinctCountRawHLLAggregationFunction.java | 7 ++++++-
.../function/DistinctCountRawHLLPlusAggregationFunction.java | 7 ++++++-
.../function/DistinctCountRawThetaSketchAggregationFunction.java | 7 ++++++-
.../function/DistinctCountRawULLAggregationFunction.java | 7 ++++++-
.../function/DistinctCountSmartHLLAggregationFunction.java | 6 +++++-
.../function/DistinctCountSmartULLAggregationFunction.java | 3 +++
.../function/DistinctCountThetaSketchAggregationFunction.java | 7 ++++++-
.../aggregation/function/DistinctCountULLAggregationFunction.java | 5 +++--
.../function/IntegerTupleSketchAggregationFunction.java | 7 ++++++-
.../SegmentPartitionedDistinctCountAggregationFunction.java | 4 ++--
19 files changed, 91 insertions(+), 26 deletions(-)
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountAggregationFunction.java
index 2d35695ec06..be4f01cfc4d 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountAggregationFunction.java
@@ -21,6 +21,7 @@ package org.apache.pinot.core.query.aggregation.function;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.annotation.Nullable;
import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.common.utils.DataSchema.ColumnDataType;
import org.apache.pinot.core.common.BlockValSet;
@@ -80,9 +81,10 @@ public class DistinctCountAggregationFunction extends
BaseDistinctAggregateAggre
return ColumnDataType.INT;
}
+ @Nullable
@Override
- public Integer extractFinalResult(Set intermediateResult) {
- return intermediateResult.size();
+ public Integer extractFinalResult(@Nullable Set intermediateResult) {
+ return intermediateResult == null ? 0 : intermediateResult.size();
}
@Override
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountBitmapAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountBitmapAggregationFunction.java
index ea27bb872cd..8a6801454b6 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountBitmapAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountBitmapAggregationFunction.java
@@ -20,6 +20,7 @@ package org.apache.pinot.core.query.aggregation.function;
import java.util.List;
import java.util.Map;
+import javax.annotation.Nullable;
import org.apache.pinot.common.CustomObject;
import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.common.utils.DataSchema.ColumnDataType;
@@ -560,9 +561,10 @@ public class DistinctCountBitmapAggregationFunction
extends BaseSingleInputAggre
return ColumnDataType.INT;
}
+ @Nullable
@Override
- public Integer extractFinalResult(RoaringBitmap intermediateResult) {
- return intermediateResult.getCardinality();
+ public Integer extractFinalResult(@Nullable RoaringBitmap
intermediateResult) {
+ return intermediateResult == null ? 0 :
intermediateResult.getCardinality();
}
@Override
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountCPCSketchAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountCPCSketchAggregationFunction.java
index f1aacb9107d..fcaa9c9ff00 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountCPCSketchAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountCPCSketchAggregationFunction.java
@@ -21,6 +21,7 @@ package org.apache.pinot.core.query.aggregation.function;
import com.google.common.base.Preconditions;
import java.util.List;
import java.util.Map;
+import javax.annotation.Nullable;
import org.apache.commons.lang3.StringUtils;
import org.apache.datasketches.cpc.CpcSketch;
import org.apache.datasketches.memory.Memory;
@@ -421,8 +422,12 @@ public class DistinctCountCPCSketchAggregationFunction
return DataSchema.ColumnDataType.LONG;
}
+ @Nullable
@Override
- public Comparable extractFinalResult(CpcSketchAccumulator
intermediateResult) {
+ public Comparable extractFinalResult(@Nullable CpcSketchAccumulator
intermediateResult) {
+ if (intermediateResult == null) {
+ return 0L;
+ }
intermediateResult.setLgNominalEntries(_lgNominalEntries);
intermediateResult.setThreshold(_accumulatorThreshold);
return Math.round(intermediateResult.getResult().getEstimate());
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountHLLAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountHLLAggregationFunction.java
index 66748f390cc..393ce439cbd 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountHLLAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountHLLAggregationFunction.java
@@ -22,6 +22,7 @@ import
com.clearspring.analytics.stream.cardinality.HyperLogLog;
import com.google.common.base.Preconditions;
import java.util.List;
import java.util.Map;
+import javax.annotation.Nullable;
import org.apache.pinot.common.CustomObject;
import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.common.utils.DataSchema.ColumnDataType;
@@ -604,9 +605,10 @@ public class DistinctCountHLLAggregationFunction extends
BaseSingleInputAggregat
return ColumnDataType.LONG;
}
+ @Nullable
@Override
- public Long extractFinalResult(HyperLogLog intermediateResult) {
- return intermediateResult.cardinality();
+ public Long extractFinalResult(@Nullable HyperLogLog intermediateResult) {
+ return intermediateResult == null ? 0L : intermediateResult.cardinality();
}
@Override
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountHLLPlusAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountHLLPlusAggregationFunction.java
index 25f555dc588..67cf83a579f 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountHLLPlusAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountHLLPlusAggregationFunction.java
@@ -22,6 +22,7 @@ import
com.clearspring.analytics.stream.cardinality.HyperLogLogPlus;
import com.google.common.base.Preconditions;
import java.util.List;
import java.util.Map;
+import javax.annotation.Nullable;
import org.apache.pinot.common.CustomObject;
import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.common.utils.DataSchema.ColumnDataType;
@@ -620,9 +621,10 @@ public class DistinctCountHLLPlusAggregationFunction
extends BaseSingleInputAggr
return ColumnDataType.LONG;
}
+ @Nullable
@Override
- public Long extractFinalResult(HyperLogLogPlus intermediateResult) {
- return intermediateResult.cardinality();
+ public Long extractFinalResult(@Nullable HyperLogLogPlus intermediateResult)
{
+ return intermediateResult == null ? 0L : intermediateResult.cardinality();
}
@Override
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountIntegerTupleSketchAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountIntegerTupleSketchAggregationFunction.java
index b10797a58c1..c65cd9ed7fa 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountIntegerTupleSketchAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountIntegerTupleSketchAggregationFunction.java
@@ -19,6 +19,7 @@
package org.apache.pinot.core.query.aggregation.function;
import java.util.List;
+import javax.annotation.Nullable;
import org.apache.datasketches.tuple.aninteger.IntegerSummary;
import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.common.utils.DataSchema.ColumnDataType;
@@ -45,7 +46,10 @@ public class
DistinctCountIntegerTupleSketchAggregationFunction extends IntegerT
}
@Override
- public Comparable extractFinalResult(TupleIntSketchAccumulator accumulator) {
+ public Comparable extractFinalResult(@Nullable TupleIntSketchAccumulator
accumulator) {
+ if (accumulator == null) {
+ return 0L;
+ }
accumulator.setNominalEntries(_nominalEntries);
accumulator.setSetOperations(_setOps);
accumulator.setThreshold(_accumulatorThreshold);
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountMVAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountMVAggregationFunction.java
index d28a1632cc4..62aaf711645 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountMVAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountMVAggregationFunction.java
@@ -21,6 +21,7 @@ package org.apache.pinot.core.query.aggregation.function;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.annotation.Nullable;
import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.common.utils.DataSchema;
import org.apache.pinot.core.common.BlockValSet;
@@ -61,9 +62,10 @@ public class DistinctCountMVAggregationFunction extends
BaseDistinctAggregateAgg
return DataSchema.ColumnDataType.INT;
}
+ @Nullable
@Override
- public Integer extractFinalResult(Set intermediateResult) {
- return intermediateResult.size();
+ public Integer extractFinalResult(@Nullable Set intermediateResult) {
+ return intermediateResult == null ? 0 : intermediateResult.size();
}
@Override
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountOffHeapAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountOffHeapAggregationFunction.java
index f0352e79d0b..19d208a4342 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountOffHeapAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountOffHeapAggregationFunction.java
@@ -22,6 +22,7 @@ import com.google.common.base.Preconditions;
import java.util.BitSet;
import java.util.List;
import java.util.Map;
+import javax.annotation.Nullable;
import org.apache.commons.lang3.StringUtils;
import org.apache.pinot.common.CustomObject;
import org.apache.pinot.common.request.context.ExpressionContext;
@@ -466,8 +467,10 @@ public class DistinctCountOffHeapAggregationFunction
}
@Override
- public Integer extractFinalResult(BaseOffHeapSet set) {
- assert set != null;
+ public Integer extractFinalResult(@Nullable BaseOffHeapSet set) {
+ if (set == null) {
+ return 0;
+ }
int size = set.size();
set.close();
return size;
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawCPCSketchAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawCPCSketchAggregationFunction.java
index ff3a587881c..63a2c079b10 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawCPCSketchAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawCPCSketchAggregationFunction.java
@@ -19,6 +19,7 @@
package org.apache.pinot.core.query.aggregation.function;
import java.util.List;
+import javax.annotation.Nullable;
import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.common.utils.DataSchema.ColumnDataType;
import org.apache.pinot.segment.local.customobject.CpcSketchAccumulator;
@@ -46,8 +47,12 @@ public class DistinctCountRawCPCSketchAggregationFunction
extends DistinctCountC
return ColumnDataType.STRING;
}
+ @Nullable
@Override
- public SerializedCPCSketch extractFinalResult(CpcSketchAccumulator
intermediateResult) {
+ public SerializedCPCSketch extractFinalResult(@Nullable CpcSketchAccumulator
intermediateResult) {
+ if (intermediateResult == null) {
+ return null;
+ }
intermediateResult.setLgNominalEntries(_lgNominalEntries);
intermediateResult.setThreshold(_accumulatorThreshold);
return new SerializedCPCSketch(intermediateResult.getResult());
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawHLLAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawHLLAggregationFunction.java
index b195df55489..0e664e121f5 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawHLLAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawHLLAggregationFunction.java
@@ -21,6 +21,7 @@ package org.apache.pinot.core.query.aggregation.function;
import com.clearspring.analytics.stream.cardinality.HyperLogLog;
import java.util.List;
import java.util.Map;
+import javax.annotation.Nullable;
import org.apache.pinot.common.CustomObject;
import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.common.utils.DataSchema.ColumnDataType;
@@ -118,8 +119,12 @@ public class DistinctCountRawHLLAggregationFunction
return ColumnDataType.STRING;
}
+ @Nullable
@Override
- public SerializedHLL extractFinalResult(HyperLogLog intermediateResult) {
+ public SerializedHLL extractFinalResult(@Nullable HyperLogLog
intermediateResult) {
+ if (intermediateResult == null) {
+ return null;
+ }
return new SerializedHLL(intermediateResult);
}
}
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawHLLPlusAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawHLLPlusAggregationFunction.java
index f990993da3f..8e45fbcc51c 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawHLLPlusAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawHLLPlusAggregationFunction.java
@@ -21,6 +21,7 @@ package org.apache.pinot.core.query.aggregation.function;
import com.clearspring.analytics.stream.cardinality.HyperLogLogPlus;
import java.util.List;
import java.util.Map;
+import javax.annotation.Nullable;
import org.apache.pinot.common.CustomObject;
import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.common.utils.DataSchema.ColumnDataType;
@@ -119,8 +120,12 @@ public class DistinctCountRawHLLPlusAggregationFunction
return ColumnDataType.STRING;
}
+ @Nullable
@Override
- public SerializedHLLPlus extractFinalResult(HyperLogLogPlus
intermediateResult) {
+ public SerializedHLLPlus extractFinalResult(@Nullable HyperLogLogPlus
intermediateResult) {
+ if (intermediateResult == null) {
+ return null;
+ }
return new SerializedHLLPlus(intermediateResult);
}
}
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawThetaSketchAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawThetaSketchAggregationFunction.java
index e25b8e0ddbb..eb54e91287a 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawThetaSketchAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawThetaSketchAggregationFunction.java
@@ -21,6 +21,7 @@ package org.apache.pinot.core.query.aggregation.function;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
+import javax.annotation.Nullable;
import org.apache.datasketches.theta.Sketch;
import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.common.utils.DataSchema.ColumnDataType;
@@ -48,8 +49,12 @@ public class DistinctCountRawThetaSketchAggregationFunction
extends DistinctCoun
return ColumnDataType.STRING;
}
+ @Nullable
@Override
- public String extractFinalResult(List<ThetaSketchAccumulator> accumulators) {
+ public String extractFinalResult(@Nullable List<ThetaSketchAccumulator>
accumulators) {
+ if (accumulators == null) {
+ return null;
+ }
int numAccumulators = accumulators.size();
List<Sketch> mergedSketches = new ArrayList<>(numAccumulators);
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawULLAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawULLAggregationFunction.java
index fb98636e1d1..64053f48ce8 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawULLAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountRawULLAggregationFunction.java
@@ -20,6 +20,7 @@ package org.apache.pinot.core.query.aggregation.function;
import com.dynatrace.hash4j.distinctcount.UltraLogLog;
import java.util.List;
+import javax.annotation.Nullable;
import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.common.utils.DataSchema.ColumnDataType;
import org.apache.pinot.segment.local.customobject.SerializedULL;
@@ -31,8 +32,12 @@ public class DistinctCountRawULLAggregationFunction extends
DistinctCountULLAggr
super(arguments);
}
+ @Nullable
@Override
- public SerializedULL extractFinalResult(UltraLogLog intermediateResult) {
+ public SerializedULL extractFinalResult(@Nullable UltraLogLog
intermediateResult) {
+ if (intermediateResult == null) {
+ return null;
+ }
return new SerializedULL(intermediateResult);
}
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountSmartHLLAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountSmartHLLAggregationFunction.java
index 50a1265653a..8b18801f485 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountSmartHLLAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountSmartHLLAggregationFunction.java
@@ -25,6 +25,7 @@ import it.unimi.dsi.fastutil.objects.ObjectSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.annotation.Nullable;
import org.apache.commons.lang3.StringUtils;
import org.apache.pinot.common.CustomObject;
import org.apache.pinot.common.request.context.ExpressionContext;
@@ -373,7 +374,10 @@ public class DistinctCountSmartHLLAggregationFunction
extends BaseDistinctCountS
}
@Override
- public Integer extractFinalResult(Object intermediateResult) {
+ public Integer extractFinalResult(@Nullable Object intermediateResult) {
+ if (intermediateResult == null) {
+ return 0;
+ }
if (intermediateResult instanceof HyperLogLog) {
return (int) ((HyperLogLog) intermediateResult).cardinality();
} else {
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountSmartULLAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountSmartULLAggregationFunction.java
index de639f4b464..b87c299dc6e 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountSmartULLAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountSmartULLAggregationFunction.java
@@ -351,6 +351,9 @@ public class DistinctCountSmartULLAggregationFunction
extends BaseDistinctCountS
@Override
public Integer extractFinalResult(Object intermediateResult) {
+ if (intermediateResult == null) {
+ return 0;
+ }
if (intermediateResult instanceof UltraLogLog) {
return (int) Math.round(((UltraLogLog)
intermediateResult).getDistinctCountEstimate());
} else {
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountThetaSketchAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountThetaSketchAggregationFunction.java
index 403c6d52cf2..d23d4c7549a 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountThetaSketchAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountThetaSketchAggregationFunction.java
@@ -25,6 +25,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import javax.annotation.Nullable;
import org.apache.commons.lang3.StringUtils;
import org.apache.datasketches.memory.Memory;
import org.apache.datasketches.theta.AnotB;
@@ -1077,8 +1078,12 @@ public class DistinctCountThetaSketchAggregationFunction
return ColumnDataType.LONG;
}
+ @Nullable
@Override
- public Comparable extractFinalResult(List<ThetaSketchAccumulator>
accumulators) {
+ public Comparable extractFinalResult(@Nullable List<ThetaSketchAccumulator>
accumulators) {
+ if (accumulators == null) {
+ return 0L;
+ }
int numAccumulators = accumulators.size();
List<Sketch> mergedSketches = new ArrayList<>(numAccumulators);
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountULLAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountULLAggregationFunction.java
index edd3fcc41ed..753d3ef69a7 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountULLAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/DistinctCountULLAggregationFunction.java
@@ -377,9 +377,10 @@ public class DistinctCountULLAggregationFunction extends
BaseSingleInputAggregat
return ColumnDataType.LONG;
}
+ @Nullable
@Override
- public Comparable extractFinalResult(UltraLogLog intermediateResult) {
- return Math.round(intermediateResult.getDistinctCountEstimate());
+ public Comparable extractFinalResult(@Nullable UltraLogLog
intermediateResult) {
+ return intermediateResult == null ? 0L :
Math.round(intermediateResult.getDistinctCountEstimate());
}
@Override
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/IntegerTupleSketchAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/IntegerTupleSketchAggregationFunction.java
index 1abc6037464..679933c5ed1 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/IntegerTupleSketchAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/IntegerTupleSketchAggregationFunction.java
@@ -22,6 +22,7 @@ import com.google.common.base.Preconditions;
import java.util.Base64;
import java.util.List;
import java.util.Map;
+import javax.annotation.Nullable;
import org.apache.commons.lang3.StringUtils;
import org.apache.datasketches.memory.Memory;
import org.apache.datasketches.tuple.Sketch;
@@ -281,8 +282,12 @@ public class IntegerTupleSketchAggregationFunction
return ColumnDataType.STRING;
}
+ @Nullable
@Override
- public Comparable extractFinalResult(TupleIntSketchAccumulator accumulator) {
+ public Comparable extractFinalResult(@Nullable TupleIntSketchAccumulator
accumulator) {
+ if (accumulator == null) {
+ return null;
+ }
accumulator.setNominalEntries(_nominalEntries);
accumulator.setSetOperations(_setOps);
accumulator.setThreshold(_accumulatorThreshold);
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/SegmentPartitionedDistinctCountAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/SegmentPartitionedDistinctCountAggregationFunction.java
index dcf05cc2edf..06ca46c7be5 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/SegmentPartitionedDistinctCountAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/SegmentPartitionedDistinctCountAggregationFunction.java
@@ -324,8 +324,8 @@ public class
SegmentPartitionedDistinctCountAggregationFunction extends BaseSing
}
@Override
- public Long extractFinalResult(Long intermediateResult) {
- return intermediateResult;
+ public Long extractFinalResult(@Nullable Long intermediateResult) {
+ return intermediateResult == null ? 0L : intermediateResult;
}
@Override
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]