{"record":{"id":"051cc9c7f86f4c00","repo":"apache/druid","slug":"approximatehistogramfoldingbufferaggregator-does-n-051cc9","errorCode":null,"errorMessage":"ApproximateHistogramFoldingBufferAggregator does not support getDouble()","messagePattern":"ApproximateHistogramFoldingBufferAggregator does not support getDouble\\(\\)","errorType":"exception","errorClass":"java.lang.UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramFoldingBufferAggregator.java","lineNumber":78,"sourceCode":"    return innerAggregator.get(buf, position);\n  }\n\n  @Override\n  public float getFloat(ByteBuffer buf, int position)\n  {\n    throw new UnsupportedOperationException(\"ApproximateHistogramFoldingBufferAggregator does not support getFloat()\");\n  }\n\n  @Override\n  public long getLong(ByteBuffer buf, int position)\n  {\n    throw new UnsupportedOperationException(\"ApproximateHistogramFoldingBufferAggregator does not support getLong()\");\n  }\n\n  @Override\n  public double getDouble(ByteBuffer buf, int position)\n  {\n    throw new UnsupportedOperationException(\"ApproximateHistogramFoldingBufferAggregator does not support getDouble()\");\n  }\n\n  @Override\n  public void close()\n  {\n    // no resources to cleanup\n  }\n\n  @Override\n  public void inspectRuntimeShape(RuntimeShapeInspector inspector)\n  {\n    inspector.visit(\"selector\", selector);\n  }\n}\n","sourceCodeStart":60,"sourceCodeEnd":93,"githubUrl":"https://github.com/apache/druid/blob/9b90983fd291f26935af934383ce360473179e4d/extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramFoldingBufferAggregator.java#L60-L93","documentation":"ApproximateHistogramFoldingBufferAggregator aggregates ApproximateHistogram objects, which expose no single double value, so getDouble() is an unconditionally unsupported sentinel throwing UnsupportedOperationException. It fires when the histogram metric is read via the primitive double accessor instead of get().","triggerScenarios":"Thrown at extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/ApproximateHistogramFoldingBufferAggregator.java:78 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use get() plus histogram post-aggregators (e.g. quantile, min/max, custom bucket evaluators) to read results","Do not configure this aggregator as a double-typed metric in queries or downstream consumers"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9b90983fd291f26935af934383ce360473179e4d","analyzedAt":"2026-09-07T13:32:30.957Z","contentChangedAt":"2026-09-07T13:32:30.957Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}