This is an automated email from the ASF dual-hosted git repository.
Jackie-Jiang 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 d65b7337b10 [multistage] Fix count to return 0 when intermediate
result is null (#18471)
d65b7337b10 is described below
commit d65b7337b10bae0dcc4b03452fab8973bd882593
Author: dang-stripe <[email protected]>
AuthorDate: Wed Jun 17 17:18:03 2026 -0700
[multistage] Fix count to return 0 when intermediate result is null (#18471)
---
.../query/aggregation/function/CountAggregationFunction.java | 5 +++--
.../aggregation/function/CountAggregationFunctionTest.java | 12 ++++++++++++
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/CountAggregationFunction.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/CountAggregationFunction.java
index 7285ba0b5c7..8bbdda5fcec 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/CountAggregationFunction.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/CountAggregationFunction.java
@@ -21,6 +21,7 @@ package org.apache.pinot.core.query.aggregation.function;
import java.util.Collections;
import java.util.List;
import java.util.Map;
+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;
@@ -204,8 +205,8 @@ public class CountAggregationFunction extends
NullableSingleInputAggregationFunc
}
@Override
- public Long extractFinalResult(Long intermediateResult) {
- return intermediateResult;
+ public Long extractFinalResult(@Nullable Long intermediateResult) {
+ return intermediateResult != null ? intermediateResult : 0L;
}
@Override
diff --git
a/pinot-core/src/test/java/org/apache/pinot/core/query/aggregation/function/CountAggregationFunctionTest.java
b/pinot-core/src/test/java/org/apache/pinot/core/query/aggregation/function/CountAggregationFunctionTest.java
index 360233b0a20..cffce5dce68 100644
---
a/pinot-core/src/test/java/org/apache/pinot/core/query/aggregation/function/CountAggregationFunctionTest.java
+++
b/pinot-core/src/test/java/org/apache/pinot/core/query/aggregation/function/CountAggregationFunctionTest.java
@@ -19,12 +19,16 @@
package org.apache.pinot.core.query.aggregation.function;
+import java.util.List;
+import org.apache.pinot.common.request.context.ExpressionContext;
import org.apache.pinot.queries.FluentQueryTest;
import org.apache.pinot.spi.data.FieldSpec;
import org.apache.pinot.spi.data.Schema;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
+import static org.testng.Assert.assertEquals;
+
public class CountAggregationFunctionTest extends
AbstractAggregationFunctionTest {
@@ -234,6 +238,14 @@ public class CountAggregationFunctionTest extends
AbstractAggregationFunctionTes
);
}
+ @Test
+ public void testExtractFinalResultReturnsZeroForNull() {
+ CountAggregationFunction function =
+ new
CountAggregationFunction(List.of(ExpressionContext.forIdentifier("col")),
false);
+ assertEquals(function.extractFinalResult(null), Long.valueOf(0L));
+ assertEquals(function.extractFinalResult(5L), Long.valueOf(5L));
+ }
+
@DataProvider(name = "nullHandlingEnabled")
public Object[][] nullHandlingEnabled() {
return new Object[][]{
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]