This is an automated email from the ASF dual-hosted git repository.
abhishek pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/master by this push:
new 607b0b9310 Adding withName implementation to AggregatorFactory
(#12862)
607b0b9310 is described below
commit 607b0b9310db0b3a063c24e1ee752c0f1e7c51b1
Author: Karan Kumar <[email protected]>
AuthorDate: Mon Aug 8 18:31:56 2022 +0530
Adding withName implementation to AggregatorFactory (#12862)
* Adding agg factory with name impl
* Adding test cases
* Fixing test case
* Fixing test case
* Updated java docs.
---
.../DistinctCountAggregatorFactory.java | 6 +++
.../DistinctCountGroupByQueryTest.java | 13 +++++
.../aggregator/MomentSketchAggregatorFactory.java | 6 +++
.../MomentSketchMergeAggregatorFactory.java | 6 +++
.../MomentSketchAggregatorFactoryTest.java | 17 ++++++
.../movingaverage/AveragerFactoryWrapper.java | 26 +++++++++
.../averagers/AveragerFactoryWrapperTest.java | 22 ++++----
.../TDigestSketchAggregatorFactory.java | 6 +++
.../TDigestSketchAggregatorFactoryTest.java | 8 +++
.../aggregation/TimestampMaxAggregatorFactory.java | 6 +++
.../aggregation/TimestampMinAggregatorFactory.java | 6 +++
.../TimestampMinMaxAggregatorFactoryTest.java | 12 +++++
.../hll/HllSketchBuildAggregatorFactory.java | 7 +++
.../hll/HllSketchMergeAggregatorFactory.java | 6 +++
.../quantiles/DoublesSketchAggregatorFactory.java | 6 +++
.../DoublesSketchMergeAggregatorFactory.java | 6 +++
.../theta/SketchMergeAggregatorFactory.java | 13 +++++
.../oldapi/OldSketchBuildAggregatorFactory.java | 7 +++
.../oldapi/OldSketchMergeAggregatorFactory.java | 8 +++
.../ArrayOfDoublesSketchAggregatorFactory.java | 26 ++++++---
.../hll/HllSketchAggregatorFactoryTest.java | 17 ++++++
.../hll/HllSketchMergeAggregatorFactoryTest.java | 8 +++
.../DoublesSketchAggregatorFactoryTest.java | 13 +++++
.../DoublesSketchMergeAggregatorFactoryTest.java | 12 +++++
.../theta/SketchAggregatorFactoryTest.java | 7 +++
.../theta/oldapi/OldApiSketchAggregationTest.java | 17 ++++++
.../ArrayOfDoublesSketchAggregatorFactoryTest.java | 8 +++
.../bloom/BloomFilterAggregatorFactory.java | 6 +++
.../bloom/BloomFilterMergeAggregatorFactory.java | 6 +++
.../bloom/BloomFilterAggregatorFactoryTest.java | 21 ++++++++
.../ApproximateHistogramAggregatorFactory.java | 14 +++++
...proximateHistogramFoldingAggregatorFactory.java | 14 +++++
.../FixedBucketsHistogramAggregatorFactory.java | 14 +++++
.../ApproximateHistogramAggregatorTest.java | 16 ++++++
...ximateHistogramFoldingVectorAggregatorTest.java | 8 +++
.../FixedBucketsHistogramBufferAggregatorTest.java | 16 ++++++
.../variance/VarianceAggregatorFactory.java | 6 +++
.../variance/VarianceFoldingAggregatorFactory.java | 7 +++
.../variance/VarianceAggregatorFactoryTest.java | 16 ++++++
.../druid/query/aggregation/AggregatorFactory.java | 20 +++++++
.../query/aggregation/CountAggregatorFactory.java | 6 +++
.../aggregation/DoubleMaxAggregatorFactory.java | 6 +++
.../aggregation/DoubleMinAggregatorFactory.java | 6 +++
.../aggregation/DoubleSumAggregatorFactory.java | 6 +++
.../ExpressionLambdaAggregatorFactory.java | 21 ++++++++
.../aggregation/FilteredAggregatorFactory.java | 6 +++
.../aggregation/FloatMaxAggregatorFactory.java | 6 +++
.../aggregation/FloatMinAggregatorFactory.java | 6 +++
.../aggregation/FloatSumAggregatorFactory.java | 6 +++
.../aggregation/GroupingAggregatorFactory.java | 6 +++
.../aggregation/HistogramAggregatorFactory.java | 6 +++
.../aggregation/JavaScriptAggregatorFactory.java | 13 +++++
.../aggregation/LongMaxAggregatorFactory.java | 6 +++
.../aggregation/LongMinAggregatorFactory.java | 6 +++
.../aggregation/LongSumAggregatorFactory.java | 6 +++
.../aggregation/SuppressedAggregatorFactory.java | 6 +++
.../any/DoubleAnyAggregatorFactory.java | 6 +++
.../aggregation/any/FloatAnyAggregatorFactory.java | 6 +++
.../aggregation/any/LongAnyAggregatorFactory.java | 6 +++
.../any/StringAnyAggregatorFactory.java | 6 +++
.../cardinality/CardinalityAggregatorFactory.java | 6 +++
.../first/DoubleFirstAggregatorFactory.java | 6 +++
.../first/FloatFirstAggregatorFactory.java | 6 +++
.../first/LongFirstAggregatorFactory.java | 6 +++
.../first/StringFirstAggregatorFactory.java | 6 +++
.../first/StringFirstFoldingAggregatorFactory.java | 7 +++
.../hyperloglog/HyperUniquesAggregatorFactory.java | 6 +++
.../last/DoubleLastAggregatorFactory.java | 6 +++
.../last/FloatLastAggregatorFactory.java | 6 +++
.../last/LongLastAggregatorFactory.java | 6 +++
.../last/StringLastAggregatorFactory.java | 6 +++
.../last/StringLastFoldingAggregatorFactory.java | 7 +++
.../mean/DoubleMeanAggregatorFactory.java | 26 +++++++++
.../query/TestBigDecimalSumAggregatorFactory.java | 7 +++
.../query/aggregation/AggregatorFactoryTest.java | 61 ++++++++++++++++++++++
.../query/aggregation/CountAggregatorTest.java | 9 ++++
.../druid/query/metadata/SegmentAnalyzerTest.java | 6 +++
.../virtual/AlwaysTwoCounterAggregatorFactory.java | 10 +++-
78 files changed, 777 insertions(+), 17 deletions(-)
diff --git
a/extensions-contrib/distinctcount/src/main/java/org/apache/druid/query/aggregation/distinctcount/DistinctCountAggregatorFactory.java
b/extensions-contrib/distinctcount/src/main/java/org/apache/druid/query/aggregation/distinctcount/DistinctCountAggregatorFactory.java
index 7ab4a6be7d..ce6f2f30bc 100644
---
a/extensions-contrib/distinctcount/src/main/java/org/apache/druid/query/aggregation/distinctcount/DistinctCountAggregatorFactory.java
+++
b/extensions-contrib/distinctcount/src/main/java/org/apache/druid/query/aggregation/distinctcount/DistinctCountAggregatorFactory.java
@@ -89,6 +89,12 @@ public class DistinctCountAggregatorFactory extends
AggregatorFactory
}
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new DistinctCountAggregatorFactory(newName, getFieldName(),
getBitMapFactory());
+ }
+
private DimensionSelector makeDimensionSelector(final ColumnSelectorFactory
columnFactory)
{
return columnFactory.makeDimensionSelector(new
DefaultDimensionSpec(fieldName, fieldName));
diff --git
a/extensions-contrib/distinctcount/src/test/java/org/apache/druid/query/aggregation/distinctcount/DistinctCountGroupByQueryTest.java
b/extensions-contrib/distinctcount/src/test/java/org/apache/druid/query/aggregation/distinctcount/DistinctCountGroupByQueryTest.java
index 8328600561..325d5701de 100644
---
a/extensions-contrib/distinctcount/src/test/java/org/apache/druid/query/aggregation/distinctcount/DistinctCountGroupByQueryTest.java
+++
b/extensions-contrib/distinctcount/src/test/java/org/apache/druid/query/aggregation/distinctcount/DistinctCountGroupByQueryTest.java
@@ -45,6 +45,7 @@ import
org.apache.druid.segment.incremental.IncrementalIndexSchema;
import org.apache.druid.segment.incremental.OnheapIncrementalIndex;
import org.apache.druid.testing.InitializedNullHandlingTest;
import org.junit.After;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -157,4 +158,16 @@ public class DistinctCountGroupByQueryTest extends
InitializedNullHandlingTest
);
TestHelper.assertExpectedObjects(expectedResults, results,
"distinct-count");
}
+
+ @Test
+ public void testWithName()
+ {
+ DistinctCountAggregatorFactory aggregatorFactory = new
DistinctCountAggregatorFactory(
+ "distinct",
+ "visitor_id",
+ null
+ );
+ Assert.assertEquals(aggregatorFactory,
aggregatorFactory.withName("distinct"));
+ Assert.assertEquals("newTest",
aggregatorFactory.withName("newTest").getName());
+ }
}
diff --git
a/extensions-contrib/momentsketch/src/main/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchAggregatorFactory.java
b/extensions-contrib/momentsketch/src/main/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchAggregatorFactory.java
index b4dcda979e..ebaab352aa 100644
---
a/extensions-contrib/momentsketch/src/main/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchAggregatorFactory.java
+++
b/extensions-contrib/momentsketch/src/main/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchAggregatorFactory.java
@@ -264,6 +264,12 @@ public class MomentSketchAggregatorFactory extends
AggregatorFactory
return (k + 2) * Double.BYTES + 2 * Integer.BYTES;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new MomentSketchAggregatorFactory(newName, getFieldName(), getK(),
getCompress(), cacheTypeId);
+ }
+
@Override
public boolean equals(final Object o)
{
diff --git
a/extensions-contrib/momentsketch/src/main/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchMergeAggregatorFactory.java
b/extensions-contrib/momentsketch/src/main/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchMergeAggregatorFactory.java
index 2744458979..bdba9638e9 100644
---
a/extensions-contrib/momentsketch/src/main/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchMergeAggregatorFactory.java
+++
b/extensions-contrib/momentsketch/src/main/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchMergeAggregatorFactory.java
@@ -22,6 +22,7 @@ package
org.apache.druid.query.aggregation.momentsketch.aggregator;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.druid.query.aggregation.Aggregator;
+import org.apache.druid.query.aggregation.AggregatorFactory;
import org.apache.druid.query.aggregation.AggregatorUtil;
import org.apache.druid.query.aggregation.BufferAggregator;
import org.apache.druid.query.aggregation.momentsketch.MomentSketchWrapper;
@@ -59,4 +60,9 @@ public class MomentSketchMergeAggregatorFactory extends
MomentSketchAggregatorFa
return new MomentSketchMergeBufferAggregator(selector, getK(),
getCompress());
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new MomentSketchMergeAggregatorFactory(newName, getK(),
getCompress());
+ }
}
diff --git
a/extensions-contrib/momentsketch/src/test/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchAggregatorFactoryTest.java
b/extensions-contrib/momentsketch/src/test/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchAggregatorFactoryTest.java
index 5ad88eef33..096632214c 100644
---
a/extensions-contrib/momentsketch/src/test/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchAggregatorFactoryTest.java
+++
b/extensions-contrib/momentsketch/src/test/java/org/apache/druid/query/aggregation/momentsketch/aggregator/MomentSketchAggregatorFactoryTest.java
@@ -86,4 +86,21 @@ public class MomentSketchAggregatorFactoryTest
new TimeseriesQueryQueryToolChest().resultArraySignature(query)
);
}
+
+ @Test
+ public void testWithName()
+ {
+ MomentSketchAggregatorFactory sketchAggFactory = new
MomentSketchAggregatorFactory(
+ "name", "fieldName", 128, true
+ );
+ Assert.assertEquals(sketchAggFactory, sketchAggFactory.withName("name"));
+ Assert.assertEquals("newTest",
sketchAggFactory.withName("newTest").getName());
+
+
+ MomentSketchMergeAggregatorFactory sketchMergeAggregatorFactory = new
MomentSketchMergeAggregatorFactory(
+ "name", 128, true
+ );
+ Assert.assertEquals(sketchMergeAggregatorFactory,
sketchMergeAggregatorFactory.withName("name"));
+ Assert.assertEquals("newTest",
sketchMergeAggregatorFactory.withName("newTest").getName());
+ }
}
diff --git
a/extensions-contrib/moving-average-query/src/main/java/org/apache/druid/query/movingaverage/AveragerFactoryWrapper.java
b/extensions-contrib/moving-average-query/src/main/java/org/apache/druid/query/movingaverage/AveragerFactoryWrapper.java
index dff8aed7a8..3c5e30e5bd 100644
---
a/extensions-contrib/moving-average-query/src/main/java/org/apache/druid/query/movingaverage/AveragerFactoryWrapper.java
+++
b/extensions-contrib/moving-average-query/src/main/java/org/apache/druid/query/movingaverage/AveragerFactoryWrapper.java
@@ -29,6 +29,7 @@ import org.apache.druid.segment.column.ColumnType;
import javax.annotation.Nullable;
import java.util.Comparator;
import java.util.List;
+import java.util.Objects;
/**
* A wrapper around averagers that makes them appear to be aggregators.
@@ -181,4 +182,29 @@ public class AveragerFactoryWrapper<T, R> extends
AggregatorFactory
{
throw new UnsupportedOperationException("Invalid operation for
AveragerFactoryWrapper.");
}
+
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new AveragerFactoryWrapper(af, newName);
+ }
+
+ @Override
+ public boolean equals(Object o)
+ {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AveragerFactoryWrapper<?, ?> that = (AveragerFactoryWrapper<?, ?>) o;
+ return af.equals(that.af) && prefix.equals(that.prefix);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return Objects.hash(af, prefix);
+ }
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/first/StringFirstFoldingAggregatorFactory.java
b/extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/AveragerFactoryWrapperTest.java
similarity index 59%
copy from
processing/src/main/java/org/apache/druid/query/aggregation/first/StringFirstFoldingAggregatorFactory.java
copy to
extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/AveragerFactoryWrapperTest.java
index 5441df0059..0d9e4f0c88 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/first/StringFirstFoldingAggregatorFactory.java
+++
b/extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/averagers/AveragerFactoryWrapperTest.java
@@ -17,18 +17,22 @@
* under the License.
*/
-package org.apache.druid.query.aggregation.first;
+package org.apache.druid.query.movingaverage.averagers;
-import com.fasterxml.jackson.annotation.JsonCreator;
+import org.apache.druid.query.movingaverage.AveragerFactoryWrapper;
+import org.junit.Assert;
+import org.junit.Test;
-/**
- * For backwards compatibility; equivalent to a regular
StringFirstAggregatorFactory.
- */
-public class StringFirstFoldingAggregatorFactory extends
StringFirstAggregatorFactory
+public class AveragerFactoryWrapperTest
{
- @JsonCreator
- public StringFirstFoldingAggregatorFactory(String name, String fieldName,
Integer maxStringBytes)
+ @Test
+ public void testWithName()
{
- super(name, fieldName, null, maxStringBytes);
+ AveragerFactoryWrapper factoryWrapper = new AveragerFactoryWrapper(
+ new DoubleMaxAveragerFactory("double", 1, 1, "test"),
+ "test"
+ );
+ Assert.assertEquals(factoryWrapper, factoryWrapper.withName("test"));
+ Assert.assertEquals("newTestdouble",
factoryWrapper.withName("newTest").getName());
}
}
diff --git
a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorFactory.java
b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorFactory.java
index a1067bd9f1..58d0dcc421 100644
---
a/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorFactory.java
+++
b/extensions-contrib/tdigestsketch/src/main/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorFactory.java
@@ -233,6 +233,12 @@ public class TDigestSketchAggregatorFactory extends
AggregatorFactory
return TDigestSketchUtils.getMaxIntermdiateTDigestSize(compression);
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new TDigestSketchAggregatorFactory(newName, getFieldName(),
getCompression(), cacheTypeId);
+ }
+
@Override
public AggregateCombiner makeAggregateCombiner()
{
diff --git
a/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorFactoryTest.java
b/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorFactoryTest.java
index be3a802902..f28fb9ad7b 100644
---
a/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorFactoryTest.java
+++
b/extensions-contrib/tdigestsketch/src/test/java/org/apache/druid/query/aggregation/tdigestsketch/TDigestSketchAggregatorFactoryTest.java
@@ -62,4 +62,12 @@ public class TDigestSketchAggregatorFactoryTest
new TimeseriesQueryQueryToolChest().resultArraySignature(query)
);
}
+
+ @Test
+ public void testWithName()
+ {
+ TDigestSketchAggregatorFactory factory = new
TDigestSketchAggregatorFactory("tdigest", "col", null);
+ Assert.assertEquals(factory, factory.withName("tdigest"));
+ Assert.assertEquals("newTest", factory.withName("newTest").getName());
+ }
}
diff --git
a/extensions-contrib/time-min-max/src/main/java/org/apache/druid/query/aggregation/TimestampMaxAggregatorFactory.java
b/extensions-contrib/time-min-max/src/main/java/org/apache/druid/query/aggregation/TimestampMaxAggregatorFactory.java
index fea1c85080..aec9d1bf13 100644
---
a/extensions-contrib/time-min-max/src/main/java/org/apache/druid/query/aggregation/TimestampMaxAggregatorFactory.java
+++
b/extensions-contrib/time-min-max/src/main/java/org/apache/druid/query/aggregation/TimestampMaxAggregatorFactory.java
@@ -55,6 +55,12 @@ public class TimestampMaxAggregatorFactory extends
TimestampAggregatorFactory
);
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new TimestampMaxAggregatorFactory(newName, getFieldName(),
getTimeFormat());
+ }
+
@Override
public String toString()
{
diff --git
a/extensions-contrib/time-min-max/src/main/java/org/apache/druid/query/aggregation/TimestampMinAggregatorFactory.java
b/extensions-contrib/time-min-max/src/main/java/org/apache/druid/query/aggregation/TimestampMinAggregatorFactory.java
index 79cb1cadfa..d463a46698 100644
---
a/extensions-contrib/time-min-max/src/main/java/org/apache/druid/query/aggregation/TimestampMinAggregatorFactory.java
+++
b/extensions-contrib/time-min-max/src/main/java/org/apache/druid/query/aggregation/TimestampMinAggregatorFactory.java
@@ -54,6 +54,12 @@ public class TimestampMinAggregatorFactory extends
TimestampAggregatorFactory
);
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new TimestampMinAggregatorFactory(newName, getFieldName(),
getTimeFormat());
+ }
+
@Override
public String toString()
{
diff --git
a/extensions-contrib/time-min-max/src/test/java/org/apache/druid/query/aggregation/TimestampMinMaxAggregatorFactoryTest.java
b/extensions-contrib/time-min-max/src/test/java/org/apache/druid/query/aggregation/TimestampMinMaxAggregatorFactoryTest.java
index aea3ed5266..7f3446d62d 100644
---
a/extensions-contrib/time-min-max/src/test/java/org/apache/druid/query/aggregation/TimestampMinMaxAggregatorFactoryTest.java
+++
b/extensions-contrib/time-min-max/src/test/java/org/apache/druid/query/aggregation/TimestampMinMaxAggregatorFactoryTest.java
@@ -119,4 +119,16 @@ public class TimestampMinMaxAggregatorFactoryTest
new TimeseriesQueryQueryToolChest().resultArraySignature(query)
);
}
+
+ @Test
+ public void testWithName()
+ {
+ TimestampMaxAggregatorFactory maxAgg = new
TimestampMaxAggregatorFactory("timeMax", "__time", null);
+ Assert.assertEquals(maxAgg, maxAgg.withName("timeMax"));
+ Assert.assertEquals("newTest", maxAgg.withName("newTest").getName());
+
+ TimestampMinAggregatorFactory minAgg = new
TimestampMinAggregatorFactory("timeMin", "__time", null);
+ Assert.assertEquals(minAgg, minAgg.withName("timeMin"));
+ Assert.assertEquals("newTest", minAgg.withName("newTest").getName());
+ }
}
diff --git
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildAggregatorFactory.java
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildAggregatorFactory.java
index 076cea4a0f..65d27df6e3 100644
---
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildAggregatorFactory.java
+++
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchBuildAggregatorFactory.java
@@ -25,6 +25,7 @@ import org.apache.datasketches.hll.HllSketch;
import org.apache.datasketches.hll.TgtHllType;
import org.apache.druid.java.util.common.ISE;
import org.apache.druid.query.aggregation.Aggregator;
+import org.apache.druid.query.aggregation.AggregatorFactory;
import org.apache.druid.query.aggregation.AggregatorUtil;
import org.apache.druid.query.aggregation.BufferAggregator;
import org.apache.druid.query.aggregation.VectorAggregator;
@@ -121,6 +122,12 @@ public class HllSketchBuildAggregatorFactory extends
HllSketchAggregatorFactory
return HllSketch.getMaxUpdatableSerializationBytes(getLgK(),
TgtHllType.valueOf(getTgtHllType()));
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new HllSketchBuildAggregatorFactory(newName, getFieldName(),
getLgK(), getTgtHllType(), isRound());
+ }
+
private void validateInputs(@Nullable ColumnCapabilities capabilities)
{
if (capabilities != null) {
diff --git
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeAggregatorFactory.java
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeAggregatorFactory.java
index 818cbaad08..8286f8392f 100644
---
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeAggregatorFactory.java
+++
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeAggregatorFactory.java
@@ -131,4 +131,10 @@ public class HllSketchMergeAggregatorFactory extends
HllSketchAggregatorFactory
return Union.getMaxSerializationBytes(getLgK());
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new HllSketchMergeAggregatorFactory(newName, getFieldName(),
getLgK(), getTgtHllType(), isRound());
+ }
+
}
diff --git
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorFactory.java
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorFactory.java
index 145ffcf2e8..19694a5842 100644
---
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorFactory.java
+++
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorFactory.java
@@ -304,6 +304,12 @@ public class DoublesSketchAggregatorFactory extends
AggregatorFactory
return DoublesSketch.getUpdatableStorageBytes(k, rows);
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new DoublesSketchAggregatorFactory(newName, getFieldName(), getK(),
getMaxStreamLength(), cacheTypeId);
+ }
+
// Quantiles sketches never stop growing, but they do so very slowly.
// This size must suffice for overwhelming majority of sketches,
// but some sketches may request more memory on heap and move there
diff --git
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeAggregatorFactory.java
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeAggregatorFactory.java
index c8cd6b0ad1..55c39cff92 100644
---
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeAggregatorFactory.java
+++
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeAggregatorFactory.java
@@ -24,6 +24,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.annotations.VisibleForTesting;
import org.apache.datasketches.quantiles.DoublesSketch;
import org.apache.druid.query.aggregation.Aggregator;
+import org.apache.druid.query.aggregation.AggregatorFactory;
import org.apache.druid.query.aggregation.AggregatorUtil;
import org.apache.druid.query.aggregation.BufferAggregator;
import org.apache.druid.segment.ColumnSelectorFactory;
@@ -74,4 +75,9 @@ public class DoublesSketchMergeAggregatorFactory extends
DoublesSketchAggregator
return new DoublesSketchMergeBufferAggregator(selector, getK(),
getMaxIntermediateSizeWithNulls());
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new DoublesSketchMergeAggregatorFactory(newName, getK(),
getMaxStreamLength());
+ }
}
diff --git
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchMergeAggregatorFactory.java
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchMergeAggregatorFactory.java
index c598f148ad..ee5b7bfb42 100644
---
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchMergeAggregatorFactory.java
+++
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchMergeAggregatorFactory.java
@@ -164,6 +164,19 @@ public class SketchMergeAggregatorFactory extends
SketchAggregatorFactory
return getIntermediateType();
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new SketchMergeAggregatorFactory(
+ newName,
+ getFieldName(),
+ getSize(),
+ getShouldFinalize(),
+ getIsInputThetaSketch(),
+ getErrorBoundsStdDev()
+ );
+ }
+
@Override
public boolean equals(Object o)
{
diff --git
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/oldapi/OldSketchBuildAggregatorFactory.java
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/oldapi/OldSketchBuildAggregatorFactory.java
index c428794faa..2c8d21941e 100644
---
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/oldapi/OldSketchBuildAggregatorFactory.java
+++
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/oldapi/OldSketchBuildAggregatorFactory.java
@@ -21,6 +21,7 @@ package
org.apache.druid.query.aggregation.datasketches.theta.oldapi;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.druid.query.aggregation.AggregatorFactory;
import
org.apache.druid.query.aggregation.datasketches.theta.SketchMergeAggregatorFactory;
/**
@@ -36,4 +37,10 @@ public class OldSketchBuildAggregatorFactory extends
SketchMergeAggregatorFactor
{
super(name, fieldName, size, true, false, null);
}
+
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new OldSketchBuildAggregatorFactory(newName, getFieldName(),
getSize());
+ }
}
diff --git
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/oldapi/OldSketchMergeAggregatorFactory.java
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/oldapi/OldSketchMergeAggregatorFactory.java
index 7241153bd9..e884b210a3 100644
---
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/oldapi/OldSketchMergeAggregatorFactory.java
+++
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/oldapi/OldSketchMergeAggregatorFactory.java
@@ -21,6 +21,7 @@ package
org.apache.druid.query.aggregation.datasketches.theta.oldapi;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.druid.query.aggregation.AggregatorFactory;
import
org.apache.druid.query.aggregation.datasketches.theta.SketchMergeAggregatorFactory;
/**
@@ -37,4 +38,11 @@ public class OldSketchMergeAggregatorFactory extends
SketchMergeAggregatorFactor
{
super(name, fieldName, size, shouldFinalize, true, null);
}
+
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new OldSketchMergeAggregatorFactory(newName, getFieldName(),
getSize(), getShouldFinalize());
+ }
+
}
diff --git
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregatorFactory.java
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregatorFactory.java
index 86a6e48a3c..f1817d79ef 100644
---
a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregatorFactory.java
+++
b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregatorFactory.java
@@ -266,17 +266,29 @@ public class ArrayOfDoublesSketchAggregatorFactory
extends AggregatorFactory
return ArrayOfDoublesUnion.getMaxBytes(nominalEntries, numberOfValues);
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new ArrayOfDoublesSketchAggregatorFactory(
+ newName,
+ getFieldName(),
+ getNominalEntries(),
+ getMetricColumns(),
+ getNumberOfValues()
+ );
+ }
+
@Override
public List<AggregatorFactory> getRequiredColumns()
{
return Collections.singletonList(
- new ArrayOfDoublesSketchAggregatorFactory(
- fieldName,
- fieldName,
- nominalEntries,
- metricColumns,
- numberOfValues
- )
+ new ArrayOfDoublesSketchAggregatorFactory(
+ fieldName,
+ fieldName,
+ nominalEntries,
+ metricColumns,
+ numberOfValues
+ )
);
}
diff --git
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchAggregatorFactoryTest.java
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchAggregatorFactoryTest.java
index 08ed792000..2177177e12 100644
---
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchAggregatorFactoryTest.java
+++
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchAggregatorFactoryTest.java
@@ -83,6 +83,17 @@ public class HllSketchAggregatorFactoryTest
Assert.assertEquals(ROUND, aggregatorFactory.isRound());
}
+
+ @Test
+ public void testWithName()
+ {
+ List<AggregatorFactory> aggregatorFactories = target.getRequiredColumns();
+ Assert.assertEquals(1, aggregatorFactories.size());
+ HllSketchAggregatorFactory aggregatorFactory =
(HllSketchAggregatorFactory) aggregatorFactories.get(0);
+ Assert.assertEquals(aggregatorFactory,
aggregatorFactory.withName(aggregatorFactory.getName()));
+ Assert.assertEquals("newTest",
aggregatorFactory.withName("newTest").getName());
+ }
+
@Test
public void testFinalizeComputationNull()
{
@@ -362,5 +373,11 @@ public class HllSketchAggregatorFactoryTest
{
return DUMMY_SIZE;
}
+
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new TestHllSketchAggregatorFactory(newName, getFieldName(),
getLgK(), getTgtHllType(), isRound());
+ }
}
}
diff --git
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeAggregatorFactoryTest.java
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeAggregatorFactoryTest.java
index 4e9961ee8e..25d0726b77 100644
---
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeAggregatorFactoryTest.java
+++
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/hll/HllSketchMergeAggregatorFactoryTest.java
@@ -156,4 +156,12 @@ public class HllSketchMergeAggregatorFactoryTest
HllSketchAggregatorFactory result = (HllSketchAggregatorFactory)
targetRound.getMergingFactory(targetRound);
Assert.assertTrue(result.isRound());
}
+
+ @Test
+ public void testWithName() throws Exception
+ {
+ HllSketchAggregatorFactory factory = (HllSketchAggregatorFactory)
targetRound.getMergingFactory(targetRound);
+ Assert.assertEquals(factory, factory.withName(targetRound.getName()));
+ Assert.assertEquals("newTest", factory.withName("newTest").getName());
+ }
}
diff --git
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorFactoryTest.java
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorFactoryTest.java
index d4867c7a19..fb09425341 100644
---
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorFactoryTest.java
+++
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorFactoryTest.java
@@ -153,4 +153,17 @@ public class DoublesSketchAggregatorFactoryTest
new TimeseriesQueryQueryToolChest().resultArraySignature(query)
);
}
+
+ @Test
+ public void testWithName()
+ {
+ final DoublesSketchAggregatorFactory factory = new
DoublesSketchAggregatorFactory(
+ "myFactory",
+ "myField",
+ 1024,
+ 1000L
+ );
+ Assert.assertEquals(factory, factory.withName("myFactory"));
+ Assert.assertEquals("newTest", factory.withName("newTest").getName());
+ }
}
diff --git
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeAggregatorFactoryTest.java
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeAggregatorFactoryTest.java
index 55d0b12462..facf45b187 100644
---
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeAggregatorFactoryTest.java
+++
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchMergeAggregatorFactoryTest.java
@@ -60,4 +60,16 @@ public class DoublesSketchMergeAggregatorFactoryTest
);
Assert.assertEquals(factory, fromJson);
}
+
+ @Test
+ public void testWithName()
+ {
+ final DoublesSketchMergeAggregatorFactory factory = new
DoublesSketchMergeAggregatorFactory(
+ "myFactory",
+ 1024,
+ 1000L
+ );
+ Assert.assertEquals(factory, factory.withName("myFactory"));
+ Assert.assertEquals("newTest", factory.withName("newTest").getName());
+ }
}
diff --git
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregatorFactoryTest.java
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregatorFactoryTest.java
index 1762ef3b48..d64b4263ac 100644
---
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregatorFactoryTest.java
+++
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregatorFactoryTest.java
@@ -160,4 +160,11 @@ public class SketchAggregatorFactoryTest
new TimeseriesQueryQueryToolChest().resultArraySignature(query)
);
}
+
+ @Test
+ public void testWithName()
+ {
+ Assert.assertEquals(AGGREGATOR_16384, AGGREGATOR_16384.withName("x"));
+ Assert.assertEquals("newTest",
AGGREGATOR_16384.withName("newTest").getName());
+ }
}
diff --git
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/oldapi/OldApiSketchAggregationTest.java
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/oldapi/OldApiSketchAggregationTest.java
index ed8cf36db3..550af02a8d 100644
---
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/oldapi/OldApiSketchAggregationTest.java
+++
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/oldapi/OldApiSketchAggregationTest.java
@@ -242,6 +242,23 @@ public class OldApiSketchAggregationTest extends
InitializedNullHandlingTest
Assert.assertEquals(holders[0].getEstimate(), holders[1].getEstimate(), 0);
}
+ @Test
+ public void testWithNameMerge()
+ {
+ OldSketchMergeAggregatorFactory factory = new
OldSketchMergeAggregatorFactory("name", "fieldName", 16, null);
+ Assert.assertEquals(factory, factory.withName("name"));
+ Assert.assertEquals("newTest", factory.withName("newTest").getName());
+ }
+
+
+ @Test
+ public void testWithNameBuild()
+ {
+ OldSketchBuildAggregatorFactory factory = new
OldSketchBuildAggregatorFactory("name", "fieldName", 16);
+ Assert.assertEquals(factory, factory.withName("name"));
+ Assert.assertEquals("newTest", factory.withName("newTest").getName());
+ }
+
private void assertPostAggregatorSerde(PostAggregator agg) throws Exception
{
Assert.assertEquals(
diff --git
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregatorFactoryTest.java
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregatorFactoryTest.java
index 9e3b5e1110..10f2afe224 100644
---
a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregatorFactoryTest.java
+++
b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/tuple/ArrayOfDoublesSketchAggregatorFactoryTest.java
@@ -110,4 +110,12 @@ public class ArrayOfDoublesSketchAggregatorFactoryTest
new TimeseriesQueryQueryToolChest().resultArraySignature(query)
);
}
+
+ @Test
+ public void testWithName()
+ {
+ AggregatorFactory factory = new
ArrayOfDoublesSketchAggregatorFactory("name", "", null, null, null);
+ Assert.assertEquals(factory, factory.withName("name"));
+ Assert.assertEquals("newTest", factory.withName("newTest").getName());
+ }
}
diff --git
a/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BloomFilterAggregatorFactory.java
b/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BloomFilterAggregatorFactory.java
index 0ccf139e38..374f9ef3e6 100644
---
a/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BloomFilterAggregatorFactory.java
+++
b/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BloomFilterAggregatorFactory.java
@@ -207,6 +207,12 @@ public class BloomFilterAggregatorFactory extends
AggregatorFactory
return BloomKFilter.computeSizeBytes(maxNumEntries);
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new BloomFilterAggregatorFactory(newName, getField(),
getMaxNumEntries());
+ }
+
@Override
public byte[] getCacheKey()
{
diff --git
a/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BloomFilterMergeAggregatorFactory.java
b/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BloomFilterMergeAggregatorFactory.java
index 7d74432a87..233dc287c0 100644
---
a/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BloomFilterMergeAggregatorFactory.java
+++
b/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BloomFilterMergeAggregatorFactory.java
@@ -71,6 +71,12 @@ public class BloomFilterMergeAggregatorFactory extends
BloomFilterAggregatorFact
.build();
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new BloomFilterMergeAggregatorFactory(newName, fieldName,
getMaxNumEntries());
+ }
+
private BloomFilterMergeAggregator makeMergeAggregator(ColumnSelectorFactory
metricFactory)
{
final BaseNullableColumnValueSelector selector =
metricFactory.makeColumnValueSelector(fieldName);
diff --git
a/extensions-core/druid-bloom-filter/src/test/java/org/apache/druid/query/aggregation/bloom/BloomFilterAggregatorFactoryTest.java
b/extensions-core/druid-bloom-filter/src/test/java/org/apache/druid/query/aggregation/bloom/BloomFilterAggregatorFactoryTest.java
index 692494f598..144141419f 100644
---
a/extensions-core/druid-bloom-filter/src/test/java/org/apache/druid/query/aggregation/bloom/BloomFilterAggregatorFactoryTest.java
+++
b/extensions-core/druid-bloom-filter/src/test/java/org/apache/druid/query/aggregation/bloom/BloomFilterAggregatorFactoryTest.java
@@ -69,4 +69,25 @@ public class BloomFilterAggregatorFactoryTest
new TimeseriesQueryQueryToolChest().resultArraySignature(query)
);
}
+
+ @Test
+ public void testWithNameBloomFilterAggFactory()
+ {
+ BloomFilterAggregatorFactory factory = new BloomFilterAggregatorFactory(
+ "bloom",
+ DefaultDimensionSpec.of("col"),
+ 1024
+ );
+ Assert.assertEquals(factory, factory.withName("bloom"));
+ Assert.assertEquals("newTest", factory.withName("newTest").getName());
+ }
+
+
+ @Test
+ public void testWithNameBloomFilterMergeAggFactory()
+ {
+ BloomFilterMergeAggregatorFactory factory = new
BloomFilterMergeAggregatorFactory("bloomMerge", "bloom", 1024);
+ Assert.assertEquals(factory, factory.withName("bloomMerge"));
+ Assert.assertEquals("newTest", factory.withName("newTest").getName());
+ }
}
diff --git
a/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramAggregatorFactory.java
b/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramAggregatorFactory.java
index abd278cb28..38291d9634 100644
---
a/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramAggregatorFactory.java
+++
b/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramAggregatorFactory.java
@@ -347,6 +347,20 @@ public class ApproximateHistogramAggregatorFactory extends
AggregatorFactory
return new ApproximateHistogram(resolution).getMaxStorageSize();
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new ApproximateHistogramAggregatorFactory(
+ newName,
+ getFieldName(),
+ getResolution(),
+ getNumBuckets(),
+ getLowerLimit(),
+ getUpperLimit(),
+ finalizeAsBase64Binary
+ );
+ }
+
@Override
public String toString()
{
diff --git
a/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramFoldingAggregatorFactory.java
b/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramFoldingAggregatorFactory.java
index 9d1d4e1423..1d4ff7eeb4 100644
---
a/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramFoldingAggregatorFactory.java
+++
b/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramFoldingAggregatorFactory.java
@@ -142,6 +142,20 @@ public class ApproximateHistogramFoldingAggregatorFactory
extends ApproximateHis
return builder.build();
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new ApproximateHistogramFoldingAggregatorFactory(
+ newName,
+ getFieldName(),
+ getResolution(),
+ getNumBuckets(),
+ getLowerLimit(),
+ getUpperLimit(),
+ finalizeAsBase64Binary
+ );
+ }
+
@Override
public String toString()
{
diff --git
a/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/FixedBucketsHistogramAggregatorFactory.java
b/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/FixedBucketsHistogramAggregatorFactory.java
index 37fcf051db..964a20dd97 100644
---
a/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/FixedBucketsHistogramAggregatorFactory.java
+++
b/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/FixedBucketsHistogramAggregatorFactory.java
@@ -302,6 +302,20 @@ public class FixedBucketsHistogramAggregatorFactory
extends AggregatorFactory
return FixedBucketsHistogram.SERDE_HEADER_SIZE +
FixedBucketsHistogram.getFullStorageSize(numBuckets);
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new FixedBucketsHistogramAggregatorFactory(
+ newName,
+ getFieldName(),
+ getNumBuckets(),
+ getLowerLimit(),
+ getUpperLimit(),
+ getOutlierHandlingMode(),
+ isFinalizeAsBase64Binary()
+ );
+ }
+
@Override
public byte[] getCacheKey()
{
diff --git
a/extensions-core/histogram/src/test/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramAggregatorTest.java
b/extensions-core/histogram/src/test/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramAggregatorTest.java
index 572b2e6c77..e1a1b6c6b8 100644
---
a/extensions-core/histogram/src/test/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramAggregatorTest.java
+++
b/extensions-core/histogram/src/test/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramAggregatorTest.java
@@ -155,4 +155,20 @@ public class ApproximateHistogramAggregatorTest extends
InitializedNullHandlingT
new TimeseriesQueryQueryToolChest().resultArraySignature(query)
);
}
+
+ @Test
+ public void testWithName()
+ {
+ ApproximateHistogramAggregatorFactory factory = new
ApproximateHistogramAggregatorFactory(
+ "approxHisto",
+ "col",
+ null,
+ null,
+ null,
+ null,
+ false
+ );
+ Assert.assertEquals(factory, factory.withName("approxHisto"));
+ Assert.assertEquals("newTest", factory.withName("newTest").getName());
+ }
}
diff --git
a/extensions-core/histogram/src/test/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramFoldingVectorAggregatorTest.java
b/extensions-core/histogram/src/test/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramFoldingVectorAggregatorTest.java
index 3f813a5a19..44a31ae9f5 100644
---
a/extensions-core/histogram/src/test/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramFoldingVectorAggregatorTest.java
+++
b/extensions-core/histogram/src/test/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramFoldingVectorAggregatorTest.java
@@ -123,6 +123,14 @@ public class
ApproximateHistogramFoldingVectorAggregatorTest
}
+ @Test
+ public void testWithName()
+ {
+ ApproximateHistogramFoldingAggregatorFactory factory =
buildHistogramFactory();
+ Assert.assertEquals(factory, factory.withName("approximateHistoFold"));
+ Assert.assertEquals("newTest", factory.withName("newTest").getName());
+ }
+
private ApproximateHistogramFoldingAggregatorFactory buildHistogramFactory()
{
return buildHistogramFactory("field");
diff --git
a/extensions-core/histogram/src/test/java/org/apache/druid/query/aggregation/histogram/FixedBucketsHistogramBufferAggregatorTest.java
b/extensions-core/histogram/src/test/java/org/apache/druid/query/aggregation/histogram/FixedBucketsHistogramBufferAggregatorTest.java
index 36a78891c0..fbe2785685 100644
---
a/extensions-core/histogram/src/test/java/org/apache/druid/query/aggregation/histogram/FixedBucketsHistogramBufferAggregatorTest.java
+++
b/extensions-core/histogram/src/test/java/org/apache/druid/query/aggregation/histogram/FixedBucketsHistogramBufferAggregatorTest.java
@@ -176,4 +176,20 @@ public class FixedBucketsHistogramBufferAggregatorTest
new TimeseriesQueryQueryToolChest().resultArraySignature(query)
);
}
+
+ @Test
+ public void testWithName()
+ {
+ FixedBucketsHistogramAggregatorFactory factory = new
FixedBucketsHistogramAggregatorFactory(
+ "billy",
+ "billy",
+ 5,
+ 0,
+ 50,
+ FixedBucketsHistogram.OutlierHandlingMode.OVERFLOW,
+ false
+ );
+ Assert.assertEquals(factory, factory.withName("billy"));
+ Assert.assertEquals("newTest", factory.withName("newTest").getName());
+ }
}
diff --git
a/extensions-core/stats/src/main/java/org/apache/druid/query/aggregation/variance/VarianceAggregatorFactory.java
b/extensions-core/stats/src/main/java/org/apache/druid/query/aggregation/variance/VarianceAggregatorFactory.java
index dcd420801d..47eccfbffd 100644
---
a/extensions-core/stats/src/main/java/org/apache/druid/query/aggregation/variance/VarianceAggregatorFactory.java
+++
b/extensions-core/stats/src/main/java/org/apache/druid/query/aggregation/variance/VarianceAggregatorFactory.java
@@ -117,6 +117,12 @@ public class VarianceAggregatorFactory extends
AggregatorFactory
return VarianceAggregatorCollector.getMaxIntermediateSize();
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new VarianceAggregatorFactory(newName, getFieldName(),
getEstimator(), inputType);
+ }
+
@Override
public Aggregator factorize(ColumnSelectorFactory metricFactory)
{
diff --git
a/extensions-core/stats/src/main/java/org/apache/druid/query/aggregation/variance/VarianceFoldingAggregatorFactory.java
b/extensions-core/stats/src/main/java/org/apache/druid/query/aggregation/variance/VarianceFoldingAggregatorFactory.java
index c9e15269c9..6a84cfac1f 100644
---
a/extensions-core/stats/src/main/java/org/apache/druid/query/aggregation/variance/VarianceFoldingAggregatorFactory.java
+++
b/extensions-core/stats/src/main/java/org/apache/druid/query/aggregation/variance/VarianceFoldingAggregatorFactory.java
@@ -21,6 +21,7 @@ package org.apache.druid.query.aggregation.variance;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeName;
+import org.apache.druid.query.aggregation.AggregatorFactory;
import javax.annotation.Nullable;
@@ -37,4 +38,10 @@ public class VarianceFoldingAggregatorFactory extends
VarianceAggregatorFactory
{
super(name, fieldName, estimator, "variance");
}
+
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new VarianceFoldingAggregatorFactory(newName, getFieldName(),
getEstimator());
+ }
}
diff --git
a/extensions-core/stats/src/test/java/org/apache/druid/query/aggregation/variance/VarianceAggregatorFactoryTest.java
b/extensions-core/stats/src/test/java/org/apache/druid/query/aggregation/variance/VarianceAggregatorFactoryTest.java
index d3fded4dfb..20123aac1d 100644
---
a/extensions-core/stats/src/test/java/org/apache/druid/query/aggregation/variance/VarianceAggregatorFactoryTest.java
+++
b/extensions-core/stats/src/test/java/org/apache/druid/query/aggregation/variance/VarianceAggregatorFactoryTest.java
@@ -85,4 +85,20 @@ public class VarianceAggregatorFactoryTest extends
InitializedNullHandlingTest
VarianceAggregatorFactory target = new VarianceAggregatorFactory("test",
"test", null, null);
Assert.assertEquals(NullHandling.defaultDoubleValue(),
target.finalizeComputation(null));
}
+
+ @Test
+ public void testWithName()
+ {
+ VarianceAggregatorFactory varianceAggregatorFactory = new
VarianceAggregatorFactory("variance", "col");
+ Assert.assertEquals(varianceAggregatorFactory,
varianceAggregatorFactory.withName("variance"));
+ Assert.assertEquals("newTest",
varianceAggregatorFactory.withName("newTest").getName());
+
+ VarianceFoldingAggregatorFactory varianceFoldingAggregatorFactory = new
VarianceFoldingAggregatorFactory(
+ "varianceFold",
+ "col",
+ null
+ );
+ Assert.assertEquals(varianceFoldingAggregatorFactory,
varianceFoldingAggregatorFactory.withName("varianceFold"));
+ Assert.assertEquals("newTest",
varianceFoldingAggregatorFactory.withName("newTest").getName());
+ }
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/AggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/AggregatorFactory.java
index 12d7fbe1c1..023cb1654e 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/AggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/AggregatorFactory.java
@@ -227,6 +227,9 @@ public abstract class AggregatorFactory implements Cacheable
@Nullable
public abstract Object finalizeComputation(@Nullable Object object);
+ /**
+ * @return output name of the aggregator column.
+ */
public abstract String getName();
/**
@@ -347,6 +350,23 @@ public abstract class AggregatorFactory implements
Cacheable
return this;
}
+ /**
+ * Used in cases where we want to change the output name of the aggregator
to something else. For eg: if we have
+ * a query `select a, sum(b) as total group by a from table` the aggregator
returned from the native group by query is "a0" set in
+ * {@link org.apache.druid.sql.calcite.rel.DruidQuery#computeAggregations}.
We can use withName("total") to set the output name
+ * of the aggregator to "total".
+ * <p>
+ * As all implementations of this interface method may not exist, callers of
this method are advised to handle such a case.
+ *
+ * @param newName newName of the output for aggregator factory
+ * @return AggregatorFactory with the output name set as the input param.
+ */
+ @SuppressWarnings("unused")
+ public AggregatorFactory withName(String newName)
+ {
+ throw new UOE("Cannot change output name for AggregatorFactory[%s].",
this.getClass().getName());
+ }
+
/**
* Merges the list of AggregatorFactory[] (presumable from metadata of some
segments being merged) and
* returns merged AggregatorFactory[] (for the metadata for merged segment).
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/CountAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/CountAggregatorFactory.java
index 566adedb52..24d8a9ce11 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/CountAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/CountAggregatorFactory.java
@@ -109,6 +109,12 @@ public class CountAggregatorFactory extends
AggregatorFactory
return object;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new CountAggregatorFactory(newName);
+ }
+
@Nullable
@Override
public Object finalizeComputation(@Nullable Object object)
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/DoubleMaxAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/DoubleMaxAggregatorFactory.java
index 79bd6c6aaa..10c93c4e80 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/DoubleMaxAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/DoubleMaxAggregatorFactory.java
@@ -117,6 +117,12 @@ public class DoubleMaxAggregatorFactory extends
SimpleDoubleAggregatorFactory
return Collections.singletonList(new DoubleMaxAggregatorFactory(fieldName,
fieldName, expression, macroTable));
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new DoubleMaxAggregatorFactory(newName, getFieldName(),
getExpression(), macroTable);
+ }
+
@Override
public byte[] getCacheKey()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/DoubleMinAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/DoubleMinAggregatorFactory.java
index 124200cdf4..29ffb1a23f 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/DoubleMinAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/DoubleMinAggregatorFactory.java
@@ -117,6 +117,12 @@ public class DoubleMinAggregatorFactory extends
SimpleDoubleAggregatorFactory
return Collections.singletonList(new DoubleMinAggregatorFactory(fieldName,
fieldName, expression, macroTable));
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new DoubleMinAggregatorFactory(newName, getFieldName(),
getExpression(), macroTable);
+ }
+
@Override
public byte[] getCacheKey()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/DoubleSumAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/DoubleSumAggregatorFactory.java
index 1958c0dedd..86d846f0b0 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/DoubleSumAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/DoubleSumAggregatorFactory.java
@@ -117,6 +117,12 @@ public class DoubleSumAggregatorFactory extends
SimpleDoubleAggregatorFactory
return Collections.singletonList(new DoubleSumAggregatorFactory(fieldName,
fieldName, expression, macroTable));
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new DoubleSumAggregatorFactory(newName, getFieldName(),
getExpression(), macroTable);
+ }
+
@Override
public byte[] getCacheKey()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregatorFactory.java
index 588e45db3d..7629a4708d 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/ExpressionLambdaAggregatorFactory.java
@@ -452,6 +452,27 @@ public class ExpressionLambdaAggregatorFactory extends
AggregatorFactory
return getIntermediateType().isNumeric() ? 2 + Long.BYTES :
maxSizeBytes.getBytesInInt();
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new ExpressionLambdaAggregatorFactory(
+ newName,
+ fields,
+ accumulatorId,
+ initialValueExpressionString,
+ initialCombineValueExpressionString,
+ isNullUnlessAggregated,
+ shouldAggregateNullInputs,
+ shouldCombineAggregateNullInputs,
+ foldExpressionString,
+ combineExpressionString,
+ compareExpressionString,
+ finalizeExpressionString,
+ maxSizeBytes,
+ macroTable
+ );
+ }
+
@Override
public boolean equals(Object o)
{
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 d08b0649d3..722bfe12ff 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
@@ -165,6 +165,12 @@ public class FilteredAggregatorFactory extends
AggregatorFactory
return name;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new FilteredAggregatorFactory(delegate.withName(newName),
dimFilter, newName);
+ }
+
@Override
public List<String> requiredFields()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/FloatMaxAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/FloatMaxAggregatorFactory.java
index 8b6dccf920..09c67e2282 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/FloatMaxAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/FloatMaxAggregatorFactory.java
@@ -117,6 +117,12 @@ public class FloatMaxAggregatorFactory extends
SimpleFloatAggregatorFactory
return Collections.singletonList(new FloatMaxAggregatorFactory(fieldName,
fieldName, expression, macroTable));
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new FloatMaxAggregatorFactory(newName, getFieldName(),
getExpression(), macroTable);
+ }
+
@Override
public byte[] getCacheKey()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/FloatMinAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/FloatMinAggregatorFactory.java
index cf35efaece..bdf74005c9 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/FloatMinAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/FloatMinAggregatorFactory.java
@@ -117,6 +117,12 @@ public class FloatMinAggregatorFactory extends
SimpleFloatAggregatorFactory
return Collections.singletonList(new FloatMinAggregatorFactory(fieldName,
fieldName, expression, macroTable));
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new FloatMinAggregatorFactory(newName, getFieldName(),
getExpression(), macroTable);
+ }
+
@Override
public byte[] getCacheKey()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/FloatSumAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/FloatSumAggregatorFactory.java
index 7d47a36d62..6cc674a37a 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/FloatSumAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/FloatSumAggregatorFactory.java
@@ -117,6 +117,12 @@ public class FloatSumAggregatorFactory extends
SimpleFloatAggregatorFactory
return Collections.singletonList(new FloatSumAggregatorFactory(fieldName,
fieldName, expression, macroTable));
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new FloatSumAggregatorFactory(newName, getFieldName(),
getExpression(), macroTable);
+ }
+
@Override
public byte[] getCacheKey()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/GroupingAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/GroupingAggregatorFactory.java
index 793fe913d3..18b188389b 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/GroupingAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/GroupingAggregatorFactory.java
@@ -224,6 +224,12 @@ public class GroupingAggregatorFactory extends
AggregatorFactory
return Long.BYTES;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new GroupingAggregatorFactory(newName, groupings, keyDimensions);
+ }
+
@Override
public byte[] getCacheKey()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/HistogramAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/HistogramAggregatorFactory.java
index 5d3a12f3e8..c3bbeae151 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/HistogramAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/HistogramAggregatorFactory.java
@@ -229,6 +229,12 @@ public class HistogramAggregatorFactory extends
AggregatorFactory
return Long.BYTES * (breaks.length + 1) + Float.BYTES * 2;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new HistogramAggregatorFactory(newName, fieldName, breaksList);
+ }
+
@Override
public String toString()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/JavaScriptAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/JavaScriptAggregatorFactory.java
index 00bcefd8ab..2a43fb3c24 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/JavaScriptAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/JavaScriptAggregatorFactory.java
@@ -285,6 +285,19 @@ public class JavaScriptAggregatorFactory extends
AggregatorFactory
return Double.BYTES;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new JavaScriptAggregatorFactory(
+ newName,
+ getFieldNames(),
+ getFnAggregate(),
+ getFnReset(),
+ getFnCombine(),
+ config
+ );
+ }
+
@Override
public String toString()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/LongMaxAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/LongMaxAggregatorFactory.java
index 9260b6d453..926ad339c7 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/LongMaxAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/LongMaxAggregatorFactory.java
@@ -117,6 +117,12 @@ public class LongMaxAggregatorFactory extends
SimpleLongAggregatorFactory
return Collections.singletonList(new LongMaxAggregatorFactory(fieldName,
fieldName, expression, macroTable));
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new LongMaxAggregatorFactory(newName, getFieldName(),
getExpression(), macroTable);
+ }
+
@Override
public byte[] getCacheKey()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/LongMinAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/LongMinAggregatorFactory.java
index 5509014bfe..f16e2fcc8b 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/LongMinAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/LongMinAggregatorFactory.java
@@ -117,6 +117,12 @@ public class LongMinAggregatorFactory extends
SimpleLongAggregatorFactory
return Collections.singletonList(new LongMinAggregatorFactory(fieldName,
fieldName, expression, macroTable));
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new LongMinAggregatorFactory(newName, getFieldName(),
getExpression(), macroTable);
+ }
+
@Override
public byte[] getCacheKey()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/LongSumAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/LongSumAggregatorFactory.java
index 3fd8cf0fb2..4e22ad106f 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/LongSumAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/LongSumAggregatorFactory.java
@@ -105,6 +105,12 @@ public class LongSumAggregatorFactory extends
SimpleLongAggregatorFactory
return new LongSumAggregateCombiner();
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new LongSumAggregatorFactory(newName, getFieldName(),
getExpression(), macroTable);
+ }
+
@Override
public AggregatorFactory getCombiningFactory()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/SuppressedAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/SuppressedAggregatorFactory.java
index 7702fd3a45..eb9605e8e3 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/SuppressedAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/SuppressedAggregatorFactory.java
@@ -169,6 +169,12 @@ public class SuppressedAggregatorFactory extends
AggregatorFactory
return this;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new SuppressedAggregatorFactory(delegate.withName(newName));
+ }
+
@Override
public byte[] getCacheKey()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/any/DoubleAnyAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/any/DoubleAnyAggregatorFactory.java
index 06103ac02f..ca4c1d65d6 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/any/DoubleAnyAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/any/DoubleAnyAggregatorFactory.java
@@ -226,6 +226,12 @@ public class DoubleAnyAggregatorFactory extends
AggregatorFactory
return Double.BYTES + Byte.BYTES;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new DoubleAnyAggregatorFactory(newName, getFieldName());
+ }
+
@Override
public boolean equals(Object o)
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/any/FloatAnyAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/any/FloatAnyAggregatorFactory.java
index 902447bba0..97ecab1022 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/any/FloatAnyAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/any/FloatAnyAggregatorFactory.java
@@ -224,6 +224,12 @@ public class FloatAnyAggregatorFactory extends
AggregatorFactory
return Float.BYTES + Byte.BYTES;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new FloatAnyAggregatorFactory(newName, getFieldName());
+ }
+
@Override
public boolean equals(Object o)
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/any/LongAnyAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/any/LongAnyAggregatorFactory.java
index d4e0ae6063..6d6197f06e 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/any/LongAnyAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/any/LongAnyAggregatorFactory.java
@@ -222,6 +222,12 @@ public class LongAnyAggregatorFactory extends
AggregatorFactory
return Long.BYTES + Byte.BYTES;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new LongAnyAggregatorFactory(newName, getFieldName());
+ }
+
@Override
public boolean equals(Object o)
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/any/StringAnyAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/any/StringAnyAggregatorFactory.java
index 68f6dfc21a..94b19e2743 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/any/StringAnyAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/any/StringAnyAggregatorFactory.java
@@ -196,6 +196,12 @@ public class StringAnyAggregatorFactory extends
AggregatorFactory
return Integer.BYTES + maxStringBytes;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new StringAnyAggregatorFactory(newName, getFieldName(),
getMaxStringBytes());
+ }
+
@Override
public boolean equals(Object o)
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/cardinality/CardinalityAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/cardinality/CardinalityAggregatorFactory.java
index 65040502d7..39af58c8b3 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/cardinality/CardinalityAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/cardinality/CardinalityAggregatorFactory.java
@@ -338,6 +338,12 @@ public class CardinalityAggregatorFactory extends
AggregatorFactory
return HyperLogLogCollector.getLatestNumBytesForDenseStorage();
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new CardinalityAggregatorFactory(newName, null, getFields(), byRow,
round);
+ }
+
@Override
public boolean equals(final Object o)
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/first/DoubleFirstAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/first/DoubleFirstAggregatorFactory.java
index 444ade4613..d575b263f0 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/first/DoubleFirstAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/first/DoubleFirstAggregatorFactory.java
@@ -302,6 +302,12 @@ public class DoubleFirstAggregatorFactory extends
AggregatorFactory
return Long.BYTES + Byte.BYTES + Double.BYTES;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new DoubleFirstAggregatorFactory(newName, getFieldName(),
getTimeColumn());
+ }
+
@Override
public boolean equals(Object o)
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/first/FloatFirstAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/first/FloatFirstAggregatorFactory.java
index f8a592d586..be6a0f6aad 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/first/FloatFirstAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/first/FloatFirstAggregatorFactory.java
@@ -297,6 +297,12 @@ public class FloatFirstAggregatorFactory extends
AggregatorFactory
return Long.BYTES + Byte.BYTES + Float.BYTES;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new FloatFirstAggregatorFactory(newName, getFieldName(),
getTimeColumn());
+ }
+
@Override
public boolean equals(Object o)
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/first/LongFirstAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/first/LongFirstAggregatorFactory.java
index bfc8ae48ea..695d01b3a4 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/first/LongFirstAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/first/LongFirstAggregatorFactory.java
@@ -295,6 +295,12 @@ public class LongFirstAggregatorFactory extends
AggregatorFactory
return Long.BYTES + Byte.BYTES + Long.BYTES;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new LongFirstAggregatorFactory(newName, getFieldName(),
getTimeColumn());
+ }
+
@Override
public boolean equals(Object o)
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/first/StringFirstAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/first/StringFirstAggregatorFactory.java
index 1e0c9bedba..f7624f4541 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/first/StringFirstAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/first/StringFirstAggregatorFactory.java
@@ -260,6 +260,12 @@ public class StringFirstAggregatorFactory extends
AggregatorFactory
return Long.BYTES + Integer.BYTES + maxStringBytes;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new StringFirstAggregatorFactory(newName, getFieldName(),
getTimeColumn(), getMaxStringBytes());
+ }
+
@Override
public boolean equals(Object o)
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/first/StringFirstFoldingAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/first/StringFirstFoldingAggregatorFactory.java
index 5441df0059..8c6c06856d 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/first/StringFirstFoldingAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/first/StringFirstFoldingAggregatorFactory.java
@@ -20,6 +20,7 @@
package org.apache.druid.query.aggregation.first;
import com.fasterxml.jackson.annotation.JsonCreator;
+import org.apache.druid.query.aggregation.AggregatorFactory;
/**
* For backwards compatibility; equivalent to a regular
StringFirstAggregatorFactory.
@@ -31,4 +32,10 @@ public class StringFirstFoldingAggregatorFactory extends
StringFirstAggregatorFa
{
super(name, fieldName, null, maxStringBytes);
}
+
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new StringFirstFoldingAggregatorFactory(newName, getFieldName(),
getMaxStringBytes());
+ }
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/hyperloglog/HyperUniquesAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/hyperloglog/HyperUniquesAggregatorFactory.java
index 3e21ea9fc2..3cb9704503 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/hyperloglog/HyperUniquesAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/hyperloglog/HyperUniquesAggregatorFactory.java
@@ -284,6 +284,12 @@ public class HyperUniquesAggregatorFactory extends
AggregatorFactory
return HyperLogLogCollector.getLatestNumBytesForDenseStorage();
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new HyperUniquesAggregatorFactory(newName, getFieldName(),
getIsInputHyperUnique(), isRound());
+ }
+
@Override
public String toString()
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/last/DoubleLastAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/last/DoubleLastAggregatorFactory.java
index 37a69cf112..5e3fa66679 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/last/DoubleLastAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/last/DoubleLastAggregatorFactory.java
@@ -330,6 +330,12 @@ public class DoubleLastAggregatorFactory extends
AggregatorFactory
return Long.BYTES + Byte.BYTES + Double.BYTES;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new DoubleLastAggregatorFactory(newName, getFieldName(),
getTimeColumn());
+ }
+
@Override
public boolean equals(Object o)
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/last/FloatLastAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/last/FloatLastAggregatorFactory.java
index 451b6ce74e..ff23c3d96d 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/last/FloatLastAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/last/FloatLastAggregatorFactory.java
@@ -325,6 +325,12 @@ public class FloatLastAggregatorFactory extends
AggregatorFactory
return Long.BYTES + Byte.BYTES + Float.BYTES;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new FloatLastAggregatorFactory(newName, getFieldName(),
getTimeColumn());
+ }
+
@Override
public boolean equals(Object o)
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/last/LongLastAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/last/LongLastAggregatorFactory.java
index dd844f9e3e..a5304fe109 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/last/LongLastAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/last/LongLastAggregatorFactory.java
@@ -322,6 +322,12 @@ public class LongLastAggregatorFactory extends
AggregatorFactory
return Long.BYTES + Byte.BYTES + Long.BYTES;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new LongLastAggregatorFactory(newName, getFieldName(),
getTimeColumn());
+ }
+
@Override
public boolean equals(Object o)
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/last/StringLastAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/last/StringLastAggregatorFactory.java
index 39c5b29647..e1b39edc4a 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/last/StringLastAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/last/StringLastAggregatorFactory.java
@@ -275,6 +275,12 @@ public class StringLastAggregatorFactory extends
AggregatorFactory
return Long.BYTES + Integer.BYTES + maxStringBytes;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new StringLastAggregatorFactory(newName, getFieldName(),
getTimeColumn(), getMaxStringBytes());
+ }
+
@Override
public boolean equals(Object o)
{
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/last/StringLastFoldingAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/last/StringLastFoldingAggregatorFactory.java
index c15bfaa41b..ad18eeebad 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/last/StringLastFoldingAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/last/StringLastFoldingAggregatorFactory.java
@@ -20,6 +20,7 @@
package org.apache.druid.query.aggregation.last;
import com.fasterxml.jackson.annotation.JsonCreator;
+import org.apache.druid.query.aggregation.AggregatorFactory;
/**
* For backwards compatibility; equivalent to a regular
StringLastAggregatorFactory.
@@ -31,4 +32,10 @@ public class StringLastFoldingAggregatorFactory extends
StringLastAggregatorFact
{
super(name, fieldName, null, maxStringBytes);
}
+
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new StringLastFoldingAggregatorFactory(newName, getFieldName(),
getMaxStringBytes());
+ }
}
diff --git
a/processing/src/main/java/org/apache/druid/query/aggregation/mean/DoubleMeanAggregatorFactory.java
b/processing/src/main/java/org/apache/druid/query/aggregation/mean/DoubleMeanAggregatorFactory.java
index 2507ae17af..dc939e1432 100644
---
a/processing/src/main/java/org/apache/druid/query/aggregation/mean/DoubleMeanAggregatorFactory.java
+++
b/processing/src/main/java/org/apache/druid/query/aggregation/mean/DoubleMeanAggregatorFactory.java
@@ -41,6 +41,7 @@ import javax.annotation.Nullable;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
+import java.util.Objects;
/**
*/
@@ -100,6 +101,12 @@ public class DoubleMeanAggregatorFactory extends
AggregatorFactory
return DoubleMeanHolder.MAX_INTERMEDIATE_SIZE;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new DoubleMeanAggregatorFactory(newName, getFieldName());
+ }
+
@Override
public Aggregator factorize(ColumnSelectorFactory metricFactory)
{
@@ -196,4 +203,23 @@ public class DoubleMeanAggregatorFactory extends
AggregatorFactory
.appendString(fieldName)
.build();
}
+
+ @Override
+ public boolean equals(Object o)
+ {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DoubleMeanAggregatorFactory that = (DoubleMeanAggregatorFactory) o;
+ return Objects.equals(name, that.name) && Objects.equals(fieldName,
that.fieldName);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return Objects.hash(name, fieldName);
+ }
}
diff --git
a/processing/src/test/java/org/apache/druid/query/TestBigDecimalSumAggregatorFactory.java
b/processing/src/test/java/org/apache/druid/query/TestBigDecimalSumAggregatorFactory.java
index 859ed62feb..e640f0aa75 100644
---
a/processing/src/test/java/org/apache/druid/query/TestBigDecimalSumAggregatorFactory.java
+++
b/processing/src/test/java/org/apache/druid/query/TestBigDecimalSumAggregatorFactory.java
@@ -19,6 +19,7 @@
package org.apache.druid.query;
+import org.apache.druid.query.aggregation.AggregatorFactory;
import org.apache.druid.query.aggregation.DoubleSumAggregatorFactory;
import javax.annotation.Nullable;
@@ -45,6 +46,12 @@ public class TestBigDecimalSumAggregatorFactory extends
DoubleSumAggregatorFacto
}
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new TestBigDecimalSumAggregatorFactory(newName, getFieldName());
+ }
+
@Override
public Object deserialize(Object object)
{
diff --git
a/processing/src/test/java/org/apache/druid/query/aggregation/AggregatorFactoryTest.java
b/processing/src/test/java/org/apache/druid/query/aggregation/AggregatorFactoryTest.java
index 1b2f80231b..87d0e3dfdd 100644
---
a/processing/src/test/java/org/apache/druid/query/aggregation/AggregatorFactoryTest.java
+++
b/processing/src/test/java/org/apache/druid/query/aggregation/AggregatorFactoryTest.java
@@ -50,6 +50,7 @@ import org.junit.Assert;
import org.junit.Test;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
/**
@@ -267,4 +268,64 @@ public class AggregatorFactoryTest extends
InitializedNullHandlingTest
new TimeseriesQueryQueryToolChest().resultArraySignature(query)
);
}
+
+ @Test
+ public void testWithName()
+ {
+ List<AggregatorFactory> aggregatorFactories = Arrays.asList(
+ new CountAggregatorFactory("col"),
+ new JavaScriptAggregatorFactory(
+ "col",
+ ImmutableList.of("col"),
+ "function(a,b) { return a + b; }",
+ "function() { return 0; }",
+ "function(a,b) { return a + b }",
+ new JavaScriptConfig(true)
+ ),
+ // long aggs
+ new LongSumAggregatorFactory("col", "long-col"),
+ new LongMinAggregatorFactory("col", "long-col"),
+ new LongMaxAggregatorFactory("col", "long-col"),
+ new LongFirstAggregatorFactory("col", "long-col", null),
+ new LongLastAggregatorFactory("col", "long-col", null),
+ new LongAnyAggregatorFactory("col", "long-col"),
+ // double aggs
+ new DoubleSumAggregatorFactory("col", "double-col"),
+ new DoubleMinAggregatorFactory("col", "double-col"),
+ new DoubleMaxAggregatorFactory("col", "double-col"),
+ new DoubleFirstAggregatorFactory("col", "double-col", null),
+ new DoubleLastAggregatorFactory("col", "double-col", null),
+ new DoubleAnyAggregatorFactory("col", "double-col"),
+ new DoubleMeanAggregatorFactory("col", "double-col"),
+ // float aggs
+ new FloatSumAggregatorFactory("col", "float-col"),
+ new FloatMinAggregatorFactory("col", "float-col"),
+ new FloatMaxAggregatorFactory("col", "float-col"),
+ new FloatFirstAggregatorFactory("col", "float-col", null),
+ new FloatLastAggregatorFactory("col", "float-col", null),
+ new FloatAnyAggregatorFactory("col", "float-col"),
+ // string aggregators
+ new StringFirstAggregatorFactory("col", "col", null, 1024),
+ new StringLastAggregatorFactory("col", "col", null, 1024),
+ new StringAnyAggregatorFactory("col", "col", 1024),
+ // sketch aggs
+ new CardinalityAggregatorFactory("col",
ImmutableList.of(DefaultDimensionSpec.of("some-col")), false),
+ new HyperUniquesAggregatorFactory("col", "hyperunique"),
+ new HistogramAggregatorFactory("col", "histogram",
ImmutableList.of(0.25f, 0.5f, 0.75f)),
+ // delegate aggs
+ new FilteredAggregatorFactory(
+ new HyperUniquesAggregatorFactory("col", "hyperunique"),
+ new SelectorDimFilter("col", "hello", null),
+ "col"
+ ),
+ new SuppressedAggregatorFactory(
+ new HyperUniquesAggregatorFactory("col", "hyperunique")
+ )
+ );
+
+ for (AggregatorFactory aggregatorFactory : aggregatorFactories) {
+ Assert.assertEquals(aggregatorFactory,
aggregatorFactory.withName("col"));
+ Assert.assertEquals("newTest",
aggregatorFactory.withName("newTest").getName());
+ }
+ }
}
diff --git
a/processing/src/test/java/org/apache/druid/query/aggregation/CountAggregatorTest.java
b/processing/src/test/java/org/apache/druid/query/aggregation/CountAggregatorTest.java
index 71500d46bc..361a699022 100644
---
a/processing/src/test/java/org/apache/druid/query/aggregation/CountAggregatorTest.java
+++
b/processing/src/test/java/org/apache/druid/query/aggregation/CountAggregatorTest.java
@@ -61,4 +61,13 @@ public class CountAggregatorTest
Assert.assertEquals(0, comp.compare(agg.get(), agg.get()));
Assert.assertEquals(1, comp.compare(agg.get(), first));
}
+
+ @Test
+ public void testWithName()
+ {
+ CountAggregatorFactory factory = new CountAggregatorFactory("test");
+ Assert.assertEquals(factory, factory.withName("test"));
+
+ Assert.assertEquals("newTest", factory.withName("newTest").getName());
+ }
}
diff --git
a/processing/src/test/java/org/apache/druid/query/metadata/SegmentAnalyzerTest.java
b/processing/src/test/java/org/apache/druid/query/metadata/SegmentAnalyzerTest.java
index b8c35917c3..be6466520d 100644
---
a/processing/src/test/java/org/apache/druid/query/metadata/SegmentAnalyzerTest.java
+++
b/processing/src/test/java/org/apache/druid/query/metadata/SegmentAnalyzerTest.java
@@ -476,6 +476,12 @@ public class SegmentAnalyzerTest extends
InitializedNullHandlingTest
return 0;
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new InvalidAggregatorFactory(newName, fieldName);
+ }
+
@Override
public byte[] getCacheKey()
{
diff --git
a/processing/src/test/java/org/apache/druid/segment/virtual/AlwaysTwoCounterAggregatorFactory.java
b/processing/src/test/java/org/apache/druid/segment/virtual/AlwaysTwoCounterAggregatorFactory.java
index 56f62cb00c..465d15bc09 100644
---
a/processing/src/test/java/org/apache/druid/segment/virtual/AlwaysTwoCounterAggregatorFactory.java
+++
b/processing/src/test/java/org/apache/druid/segment/virtual/AlwaysTwoCounterAggregatorFactory.java
@@ -21,6 +21,7 @@ package org.apache.druid.segment.virtual;
import com.google.common.collect.ImmutableList;
import org.apache.druid.query.aggregation.Aggregator;
+import org.apache.druid.query.aggregation.AggregatorFactory;
import org.apache.druid.query.aggregation.BufferAggregator;
import org.apache.druid.query.aggregation.CountAggregatorFactory;
import org.apache.druid.query.aggregation.CountVectorAggregator;
@@ -83,7 +84,8 @@ public class AlwaysTwoCounterAggregatorFactory extends
CountAggregatorFactory
return new
AlwaysTwoCounterVectorAggregator(selectorFactory.makeMultiValueDimensionSelector(
DefaultDimensionSpec.of(fieldName)));
}
- return new
AlwaysTwoCounterVectorAggregator(selectorFactory.makeSingleValueDimensionSelector(DefaultDimensionSpec.of(fieldName)));
+ return new
AlwaysTwoCounterVectorAggregator(selectorFactory.makeSingleValueDimensionSelector(
+ DefaultDimensionSpec.of(fieldName)));
}
return new
AlwaysTwoCounterVectorAggregator(selectorFactory.makeObjectSelector(fieldName));
default:
@@ -91,6 +93,12 @@ public class AlwaysTwoCounterAggregatorFactory extends
CountAggregatorFactory
}
}
+ @Override
+ public AggregatorFactory withName(String newName)
+ {
+ return new AlwaysTwoCounterAggregatorFactory(newName, fieldName);
+ }
+
public static class AlwaysTwoCounterVectorAggregator extends
CountVectorAggregator
{
@Nullable
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]