Skip to content

perf(lazy): sink key predicates below mean, min and max aggregations - #429

Merged
ihb2032 merged 1 commit into
mainfrom
perf/aggregate-predicate-crossing
Sep 26, 2026
Merged

ihb2032 merged 1 commit into
mainfrom
perf/aggregate-predicate-crossing

Conversation

@ihb2032

@ihb2032 ihb2032 commented Sep 26, 2026

Copy link
Copy Markdown
Owner

Unfreezes the first deferred optimizer item. The fence on mean/min/max was argued from an all-null group's null cell flipping the stitched column's backend — a difference column equality no longer observes, so the old argument is void rather than merely weakened. The crossing now carries its own group-invariance argument: a predicate reading only bare keys gives every row of a group the same verdict, so the group set and every group's cells are fixed, and these ops are pure functions of their group's cells. The row_stable-operand demand stays (a value-raising operand still fences), and std/var/median/first/last remain fenced, pinned by tests. Behaviour-verified against the eager chain on the all-null-group shape the old fence was argued from. 1449 tests green, coverage fully covered, mbti unchanged.

The conservative fence on mean/min/max was argued from an all-null
group's null cell flipping the stitched column's backend - a difference
column equality no longer observes. The crossing now carries its own
argument: a predicate that reads only bare keys gives every row of a
group the same verdict, so the group set and every group's cells are
fixed by the crossing conditions themselves, and these ops are pure
functions of their group's cells - per-group values, null-ness, and
raised errors all unchanged. The row_stable-operand demand stays (a
value-raising operand still fences), and std/var/median/first/last
remain fenced as a conservative bound, pinned by tests.
@ihb2032
ihb2032 force-pushed the perf/aggregate-predicate-crossing branch from 7d055bd to 30f017b Compare September 26, 2026 10:59
@ihb2032
ihb2032 merged commit 55650af into main Sep 26, 2026
3 checks passed
@ihb2032
ihb2032 deleted the perf/aggregate-predicate-crossing branch September 26, 2026 10:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant