TSG-22473 对APPROX_QUANTILE_HDR结果列排序产生ClassCastException异常

This commit is contained in:
lifengchao
2024-09-09 09:59:13 +08:00
parent 8c546e20d7
commit b754e83ba0

View File

@@ -2,8 +2,9 @@ package org.apache.druid.query.aggregation.sketch.HdrHistogram;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.Ordering;
import com.google.common.collect.Sets;
import org.HdrHistogram.Histogram;
import com.google.common.primitives.Longs;
import org.HdrHistogram.HistogramSketch;
import org.apache.druid.java.util.common.IAE;
import org.apache.druid.query.aggregation.AggregatorFactory;
@@ -23,6 +24,14 @@ public class HdrHistogramToQuantilePostAggregator implements PostAggregator {
private final String fieldName;
private final float probability;
static final Comparator COMPARATOR = new Ordering(){
@Override
public int compare(Object o, Object o1)
{
return Longs.compare(((Number) o).longValue(), ((Number) o1).longValue());
}
}.nullsFirst();
@JsonCreator
public HdrHistogramToQuantilePostAggregator(
@JsonProperty("name") String name,
@@ -49,13 +58,8 @@ public class HdrHistogramToQuantilePostAggregator implements PostAggregator {
}
@Override
public Comparator getComparator() {
return new Comparator<Long>(){
@Override
public int compare(final Long a, final Long b){
return Long.compare(a, b);
}
};
public Comparator<Long> getComparator() {
return COMPARATOR;
}
@Nullable