diff --git a/processing/src/main/java/org/apache/druid/query/aggregation/FilteredAggregatorFactory.java b/processing/src/main/java/org/apache/druid/query/aggregation/FilteredAggregatorFactory.java index 3aa1d855945..9b8c0d20381 100644 --- a/processing/src/main/java/org/apache/druid/query/aggregation/FilteredAggregatorFactory.java +++ b/processing/src/main/java/org/apache/druid/query/aggregation/FilteredAggregatorFactory.java @@ -139,7 +139,14 @@ public class FilteredAggregatorFactory extends AggregatorFactory @Override public AggregatorFactory getCombiningFactory() { - return delegate.getCombiningFactory(); + final AggregatorFactory delegateCombiningFactory = delegate.getCombiningFactory(); + final String myName = getName(); + + if (myName.equals(delegateCombiningFactory.getName())) { + return delegateCombiningFactory; + } else { + return delegateCombiningFactory.withName(myName); + } } @Override diff --git a/processing/src/test/java/org/apache/druid/query/aggregation/FilteredAggregatorFactoryTest.java b/processing/src/test/java/org/apache/druid/query/aggregation/FilteredAggregatorFactoryTest.java index 1f26547c8a2..1c691db6d1e 100644 --- a/processing/src/test/java/org/apache/druid/query/aggregation/FilteredAggregatorFactoryTest.java +++ b/processing/src/test/java/org/apache/druid/query/aggregation/FilteredAggregatorFactoryTest.java @@ -48,6 +48,26 @@ public class FilteredAggregatorFactoryTest extends InitializedNullHandlingTest ).getName()); } + @Test + public void testNameOfCombiningFactory() + { + Assert.assertEquals("overrideName", new FilteredAggregatorFactory( + new CountAggregatorFactory("foo"), + TrueDimFilter.instance(), + "overrideName" + ).getCombiningFactory().getName()); + Assert.assertEquals("delegateName", new FilteredAggregatorFactory( + new CountAggregatorFactory("delegateName"), + TrueDimFilter.instance(), + "" + ).getCombiningFactory().getName()); + Assert.assertEquals("delegateName", new FilteredAggregatorFactory( + new CountAggregatorFactory("delegateName"), + TrueDimFilter.instance(), + null + ).getCombiningFactory().getName()); + } + @Test public void testRequiredFields() {