Skip to content

Release histogram data type#139703

Merged
not-napoleon merged 12 commits intoelastic:mainfrom
not-napoleon:release-histogram-data-type
Dec 17, 2025
Merged

Release histogram data type#139703
not-napoleon merged 12 commits intoelastic:mainfrom
not-napoleon:release-histogram-data-type

Conversation

@not-napoleon
Copy link
Member

This takes the Histogram data type out from under construction and makes it available in release builds. This includes basic support for scalar and aggregation functions that operate on all types (except for Count, Coalesce, and Case, which are going to need special handling later). In conjunction with #139637, this will allow aggregating histogram fields as t-digests to compute percentiles and other statistics.

@not-napoleon not-napoleon added >enhancement :StorageEngine/ES|QL Timeseries / metrics / PromQL / logsdb capabilities in ES|QL v9.3.0 labels Dec 17, 2025
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-storage-engine (Team:StorageEngine)

@elasticsearchmachine
Copy link
Collaborator

Hi @not-napoleon, I've created a changelog YAML for you.

@github-actions
Copy link
Contributor

ℹ️ Important: Docs version tagging

👋 Thanks for updating the docs! Just a friendly reminder that our docs are now cumulative. This means all 9.x versions are documented on the same page and published off of the main branch, instead of creating separate pages for each minor version.

We use applies_to tags to mark version-specific features and changes.

Expand for a quick overview

When to use applies_to tags:

✅ At the page level to indicate which products/deployments the content applies to (mandatory)
✅ When features change state (e.g. preview, ga) in a specific version
✅ When availability differs across deployments and environments

What NOT to do:

❌ Don't remove or replace information that applies to an older version
❌ Don't add new information that applies to a specific version without an applies_to tag
❌ Don't forget that applies_to tags can be used at the page, section, and inline level

🤔 Need help?

/**
* Release version for Histogram data type support
*/
public static final TransportVersion ESQL_HISTOGRAM_DATATYPE_RELEASE = TransportVersion.fromName("esql_histogram_datatype_release");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we call it tech preview for now?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The transport version is internal use only, and as far as I can tell this will be the "supported since" version forever, so "release" made more sense to me. I can change it if you really want me to though.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to touch it here, maybe something to consider - to keep it in lockstep with exponential and tdigest.

Copy link
Contributor

@JonasKunz JonasKunz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, nice!

@not-napoleon not-napoleon enabled auto-merge (squash) December 17, 2025 17:41
@not-napoleon
Copy link
Member Author

After conferring with @kkrik-es , we are bypassing CI and merging this. The failures look unrelated, and we want to get this in today.

@not-napoleon not-napoleon merged commit 15ff608 into elastic:main Dec 17, 2025
33 of 35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

>enhancement :StorageEngine/ES|QL Timeseries / metrics / PromQL / logsdb capabilities in ES|QL Team:StorageEngine v9.3.0

4 participants