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]

Reply via email to