diff --git a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregator.java b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregator.java index 9a33085760c..cf930bc3bec 100644 --- a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregator.java +++ b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregator.java @@ -112,7 +112,7 @@ public class SketchAggregator implements Aggregator } else if (update instanceof byte[]) { union.update((byte[]) update); } else if (update instanceof Double) { - union.update(((Double) update)); + union.update((Double) update); } else if (update instanceof Integer || update instanceof Long) { union.update(((Number) update).longValue()); } else if (update instanceof int[]) { diff --git a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregationTest.java b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregationTest.java index fe3077b38f4..06e62876c6f 100644 --- a/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregationTest.java +++ b/extensions-core/datasketches/src/test/java/org/apache/druid/query/aggregation/datasketches/theta/SketchAggregationTest.java @@ -529,6 +529,21 @@ public class SketchAggregationTest Assert.assertEquals(2, ((SketchHolder) agg.get()).getSketch().getEstimate(), 0); } + @Test + public void testUpdateUnionWithDouble() + { + Double[] columnValues = new Double[]{2.0}; + final TestObjectColumnSelector selector = new TestObjectColumnSelector(columnValues); + final Aggregator agg = new SketchAggregator(selector, 4096); + agg.aggregate(); + Assert.assertFalse(agg.isNull()); + Assert.assertNotNull(agg.get()); + Assert.assertTrue(agg.get() instanceof SketchHolder); + Assert.assertEquals(1, ((SketchHolder) agg.get()).getEstimate(), 0); + Assert.assertNotNull(((SketchHolder) agg.get()).getSketch()); + Assert.assertEquals(1, ((SketchHolder) agg.get()).getSketch().getEstimate(), 0); + } + private void assertPostAggregatorSerde(PostAggregator agg) throws Exception { Assert.assertEquals(