Skip to content

Define which aggregate results survive representation changes - #10232

Closed
connortsui20 wants to merge 1 commit into
ct/stats-result-partialsfrom
ct/stats-result-scope
Closed

connortsui20 wants to merge 1 commit into
ct/stats-result-partialsfrom
ct/stats-result-scope

Conversation

@connortsui20

@connortsui20 connortsui20 commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

Superseded by #10235, which groups this change with the related statistics work. The original commits and branch are preserved.

Original PR description

Tracking Issue: #10177

Summary

Rebuilding an array can preserve its logical values while changing its storage. Cached extrema can remain useful, while UncompressedSizeInBytes can change because it counts retained backing buffers. Generic aggregate results therefore need an explicit reuse contract before replacing the fixed statistics cache.

Changes

Let each aggregate opt into result reuse across representations of the same logical input, including its validity, order, dtype, and bound options. Custom aggregates default to their physical input. Logical builtins opt in, and combined aggregates require both children to opt in. This permits reuse of an existing floating-point answer without promising bit-identical fresh computation through another encoding.

The cache migration will use this contract when transferring results.

Stack

Migration stack #10229, in review order: #10226 → #10227 → #10232 → #10235 → #10236 → #10252 → #10253 → #10257 → #10258 → #10259 → #10260 → #10261. Independent fixes: file Sum overflow #10228 and empty Constant aggregate states #10254.

Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/feature A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant