cecemei commented on code in PR #18307:
URL: https://github.com/apache/druid/pull/18307#discussion_r2223948237


##########
processing/src/main/java/org/apache/druid/query/aggregation/NullableNumericAggregatorFactory.java:
##########
@@ -48,31 +50,44 @@
 public abstract class NullableNumericAggregatorFactory<T extends 
BaseNullableColumnValueSelector>
     extends AggregatorFactory
 {
+  /**
+   * If this aggregator does not aggregate any values, it will return this 
value.
+   */
+  @Nullable
+  public Number getDefaultValue()
+  {
+    return null;
+  }
+
   @Override
   public final Aggregator factorize(ColumnSelectorFactory 
columnSelectorFactory)
   {
     T selector = selector(columnSelectorFactory);
-    BaseNullableColumnValueSelector nullSelector = makeNullSelector(selector, 
columnSelectorFactory);
     Aggregator aggregator = factorize(columnSelectorFactory, selector);
-    return new NullableNumericAggregator(aggregator, nullSelector);
+    if (this.getDefaultValue() != null) {
+      return aggregator;
+    }
+    return new NullableNumericAggregator(aggregator, 
makeNullSelector(selector, columnSelectorFactory));
   }
 
   @Override
   public final BufferAggregator factorizeBuffered(ColumnSelectorFactory 
columnSelectorFactory)
   {
     T selector = selector(columnSelectorFactory);
-    BaseNullableColumnValueSelector nullSelector = makeNullSelector(selector, 
columnSelectorFactory);
     BufferAggregator aggregator = factorizeBuffered(columnSelectorFactory, 
selector);
-    return new NullableNumericBufferAggregator(aggregator, nullSelector);
+    if (this.getDefaultValue() != null) {
+      return aggregator;
+    }
+    return new NullableNumericBufferAggregator(aggregator, 
makeNullSelector(selector, columnSelectorFactory));
   }
 
   @Override
-  public final VectorAggregator factorizeVector(VectorColumnSelectorFactory 
columnSelectorFactory)
+  public VectorAggregator factorizeVector(VectorColumnSelectorFactory 
columnSelectorFactory)
   {
     Preconditions.checkState(canVectorize(columnSelectorFactory), "Cannot 
vectorize");
     VectorValueSelector selector = vectorSelector(columnSelectorFactory);
     VectorAggregator aggregator = factorizeVector(columnSelectorFactory, 
selector);
-    return new NullableNumericVectorAggregator(aggregator, selector);
+    return new NullableNumericVectorAggregator(aggregator, selector, 
this.getDefaultValue() == null);

Review Comment:
   true, updated this



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to