apache/druid · error · UnsupportedOperationException

does not support getFloat()

Error message

 does not support getFloat()

What it means

Guard thrown by the AggregateCombiner base class of the compressed-bigdecimal extension when the query engine asks a combining aggregation for a float primitive. Combiners only expose their result as a CompressedBigDecimal (via getObject) or double, so getFloat() is intentionally unimplemented; the exception fires whenever a float-typed output is requested for this aggregator.

Solutions

  1. Use getObject() to read the CompressedBigDecimal value.
  2. Avoid using this aggregator in float-typed metric contexts.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at extensions-contrib/compressed-bigdecimal/src/main/java/org/apache/druid/compressedbigdecimal/aggregator/CompressedBigDecimalAggregateCombinerBase.java:55 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/a4fbb1b1dc5f1a75. Report an issue: GitHub.

Appendix: source

Thrown at extensions-contrib/compressed-bigdecimal/src/main/java/org/apache/druid/compressedbigdecimal/aggregator/CompressedBigDecimalAggregateCombinerBase.java:55

    this.className = className;
  }

  @Override
  public abstract void reset(@SuppressWarnings("rawtypes") ColumnValueSelector columnValueSelector);

  @Override
  public abstract void fold(@SuppressWarnings("rawtypes") ColumnValueSelector columnValueSelector);

  @Override
  public double getDouble()
  {
    throw new UnsupportedOperationException(className + " does not support getDouble()");
  }

  @Override
  public float getFloat()
  {
    throw new UnsupportedOperationException(className + " does not support getFloat()");
  }

  @Override
  public long getLong()
  {
    throw new UnsupportedOperationException(className + " does not support getLong()");
  }

  @Nullable
  @Override
  public CompressedBigDecimal getObject()
  {
    return value;
  }

  @Override
  public Class<CompressedBigDecimal> classOfObject()
  {

View on GitHub (pinned to 9b90983fd2)