mirror of https://github.com/apache/druid.git
b2a88da200
* Coerce COMPLEX to number in numeric aggregators. PR #15371 eliminated ObjectColumnSelector's built-in implementations of numeric methods, which had been marked deprecated. However, some complex types, like SpectatorHistogram, can be successfully coerced to number. The documentation for spectator histograms encourages taking advantage of this by aggregating complex columns with doubleSum and longSum. Currently, this doesn't work properly for IncrementalIndex, where the behavior relied on those deprecated ObjectColumnSelector methods. This patch fixes the behavior by making two changes: 1) SimpleXYZAggregatorFactory (XYZ = type; base class for simple numeric aggregators; all of these extend NullableNumericAggregatorFactory) use getObject for STRING and COMPLEX. Previously, getObject was only used for STRING. 2) NullableNumericAggregatorFactory (base class for simple numeric aggregators) has a new protected method "useGetObject". This allows the base class to correctly check for null (using getObject or isNull). The patch also adds a test for SpectatorHistogram + doubleSum + IncrementalIndex. * Fix tests. * Remove the special ColumnValueSelector. * Add test. |
||
---|---|---|
.. | ||
aliyun-oss-extensions | ||
ambari-metrics-emitter | ||
cassandra-storage | ||
cloudfiles-extensions | ||
compressed-bigdecimal | ||
ddsketch | ||
distinctcount | ||
dropwizard-emitter | ||
druid-deltalake-extensions | ||
druid-iceberg-extensions | ||
gce-extensions | ||
graphite-emitter | ||
influx-extensions | ||
influxdb-emitter | ||
kafka-emitter | ||
kubernetes-overlord-extensions | ||
materialized-view-maintenance | ||
materialized-view-selection | ||
momentsketch | ||
moving-average-query | ||
opentelemetry-emitter | ||
opentsdb-emitter | ||
prometheus-emitter | ||
rabbit-stream-indexing-service | ||
redis-cache | ||
spectator-histogram | ||
sqlserver-metadata-storage | ||
statsd-emitter | ||
tdigestsketch | ||
thrift-extensions | ||
time-min-max | ||
virtual-columns | ||
README.md |
README.md
Community Extensions
Please contribute all community extensions in this directory and include a doc of how your extension can be used under docs/development/extensions-contrib/.
Please note that community extensions are maintained by their original contributors and are not packaged with the core Druid distribution. If you'd like to take on maintenance for a community extension, please post on dev@druid.apache.org to let us know!