Latest Results
Build empty partials in tests through empty_partial
Tests that needed an empty partial were spelling out the identity state
by hand, restating in the test what each vtable already defines. They
now call `empty_partial`, so a change to an aggregate's identity state
cannot leave a test asserting against a stale hand-written one.
Covers First, Last, BoundedMin, BoundedMax, GeometryAabb and BloomFilter.
First and Last no longer touch their partial structs at all: the
non-empty cases go through `partial_from_scalar`, which for both is
exactly a wrapped non-null scalar.
`Accumulator::empty_partial` becomes `pub(crate)`, matching the existing
visibility of `fold_partial`, so the bounded min/max tests can fold an
empty partial without rebuilding the dtypes.
Left alone: the is_sorted and is_constant partials, whose tests assert a
non-empty verdict is distinguishable from the empty state and so must
build it directly; the non-identity partials in sum, min_max and the
decimal sum tests; and the BloomPartial unit tests, which exercise the
partial type itself rather than the aggregate.
Signed-off-by: "Robert" <robert@spiraldb.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BAC54whRD3iHLBZfM4TCvdclaude/aggregate-fn-vtable-refactor-ny5l4s Latest Branches
+7%
claude/aggregate-fn-vtable-refactor-ny5l4s +5%
+30%
© 2026 CodSpeed Technology