apache/druid · error · UnsupportedOperationException
BloomFilterAggregator does not support getDouble()
Error message
BloomFilterAggregator does not support getDouble()
What it means
The bloom filter aggregators produce a BloomFilter object, not a numeric value, so getDouble() is an explicitly unsupported sentinel that always throws UnsupportedOperationException. It fires only when a caller (query engine or downstream code) attempts to read the bloom-filter metric through the primitive double accessor.
Solutions
- Read the bloom filter via get() and use BloomKFilter-specific post-aggregators (e.g. bloom filter test) instead of numeric accessors
- Do not declare this aggregator where a double/float/long value is expected
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BaseBloomFilterAggregator.java:128 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/druid@9b90983fd2 (2026-09-07).
Data as JSON: /api/errors/26b34b269b2a2f10.
Report an issue: GitHub.
Appendix: source
Thrown at extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BaseBloomFilterAggregator.java:128
return resultCopy;
}
@Override
public float getFloat(ByteBuffer buf, int position)
{
throw new UnsupportedOperationException("BloomFilterAggregator does not support getFloat()");
}
@Override
public long getLong(ByteBuffer buf, int position)
{
throw new UnsupportedOperationException("BloomFilterAggregator does not support getLong()");
}
@Override
public double getDouble(ByteBuffer buf, int position)
{
throw new UnsupportedOperationException("BloomFilterAggregator does not support getDouble()");
}
@Override
public void aggregate()
{
aggregate(collector, 0);
}
@Nullable
@Override
public Object get()
{
return collector;
}
@Override
public float getFloat()
{View on GitHub (pinned to 9b90983fd2)