TSG-22473 对APPROX_QUANTILE_HDR结果列排序产生ClassCastException异常
This commit is contained in:
@@ -2,8 +2,9 @@ package org.apache.druid.query.aggregation.sketch.HdrHistogram;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.google.common.collect.Ordering;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import org.HdrHistogram.Histogram;
|
import com.google.common.primitives.Longs;
|
||||||
import org.HdrHistogram.HistogramSketch;
|
import org.HdrHistogram.HistogramSketch;
|
||||||
import org.apache.druid.java.util.common.IAE;
|
import org.apache.druid.java.util.common.IAE;
|
||||||
import org.apache.druid.query.aggregation.AggregatorFactory;
|
import org.apache.druid.query.aggregation.AggregatorFactory;
|
||||||
@@ -23,6 +24,14 @@ public class HdrHistogramToQuantilePostAggregator implements PostAggregator {
|
|||||||
private final String fieldName;
|
private final String fieldName;
|
||||||
private final float probability;
|
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
|
@JsonCreator
|
||||||
public HdrHistogramToQuantilePostAggregator(
|
public HdrHistogramToQuantilePostAggregator(
|
||||||
@JsonProperty("name") String name,
|
@JsonProperty("name") String name,
|
||||||
@@ -49,13 +58,8 @@ public class HdrHistogramToQuantilePostAggregator implements PostAggregator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Comparator getComparator() {
|
public Comparator<Long> getComparator() {
|
||||||
return new Comparator<Long>(){
|
return COMPARATOR;
|
||||||
@Override
|
|
||||||
public int compare(final Long a, final Long b){
|
|
||||||
return Long.compare(a, b);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
Reference in New Issue
Block a user