Skip to content

feat: First Last#7313

Merged
blaginin merged 4 commits into
developfrom
db/first-last
Apr 7, 2026
Merged

feat: First Last#7313
blaginin merged 4 commits into
developfrom
db/first-last

Conversation

@blaginin

@blaginin blaginin commented Apr 7, 2026

Copy link
Copy Markdown
Member

No description provided.

blaginin and others added 3 commits April 7, 2026 13:52
Signed-off-by: blaginin <github@blaginin.me>
Signed-off-by: blaginin <github@blaginin.me>
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: blaginin <github@blaginin.me>
@blaginin blaginin self-assigned this Apr 7, 2026
@blaginin blaginin added the changelog/feature A new feature label Apr 7, 2026
Signed-off-by: blaginin <github@blaginin.me>
@codspeed-hq

codspeed-hq Bot commented Apr 7, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 31.26%

⚡ 24 improved benchmarks
✅ 1098 untouched benchmarks
⏩ 1530 skipped benchmarks1

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation take_search[(0.005, 1.0)] 3.1 ms 2.3 ms +31.26%
Simulation take_search[(0.005, 0.1)] 320.1 µs 246.9 µs +29.65%
Simulation take_search[(0.005, 0.5)] 1.5 ms 1.2 ms +31.05%
Simulation take_search[(0.01, 0.5)] 1.6 ms 1.3 ms +28.59%
Simulation take_search[(0.1, 0.05)] 249 µs 212.2 µs +17.34%
Simulation take_search[(0.1, 0.1)] 459.5 µs 386.3 µs +18.95%
Simulation take_search[(0.01, 0.05)] 179.2 µs 142.4 µs +25.83%
Simulation take_search[(0.005, 0.05)] 168.1 µs 131.4 µs +28%
Simulation take_search_chunked[(0.005, 0.5)] 1.8 ms 1.5 ms +20.54%
Simulation take_search[(0.1, 0.5)] 2.2 ms 1.8 ms +20.42%
Simulation take_search[(0.01, 1.0)] 3.3 ms 2.5 ms +28.78%
Simulation take_search[(0.01, 0.1)] 340.8 µs 267.7 µs +27.35%
Simulation take_search_chunked[(0.005, 0.1)] 376.6 µs 314.4 µs +19.8%
Simulation take_search[(0.1, 1.0)] 4.3 ms 3.5 ms +20.65%
Simulation take_search_chunked[(0.005, 1.0)] 3.6 ms 3 ms +20.66%
Simulation take_search_chunked[(0.01, 0.05)] 209.9 µs 178.6 µs +17.52%
Simulation take_search_chunked[(0.005, 0.05)] 197 µs 165.7 µs +18.89%
Simulation take_search_chunked[(0.01, 0.5)] 1.9 ms 1.6 ms +19.04%
Simulation take_search_chunked[(0.1, 0.05)] 275.8 µs 244.5 µs +12.78%
Simulation take_search_chunked[(0.01, 0.1)] 401 µs 338.8 µs +18.37%
... ... ... ... ... ...

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.


Comparing db/first-last (fbf570a) with develop (951bdf9)

Open in CodSpeed

Footnotes

  1. 1530 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@blaginin blaginin merged commit 7a144d3 into develop Apr 7, 2026
62 checks passed
@blaginin blaginin deleted the db/first-last branch April 7, 2026 15:10
Comment on lines +31 to +36
pub struct FirstPartial {
/// The nullable version of the input dtype, used for the result and for empty/all-null inputs.
return_dtype: DType,
/// The first non-null value seen so far, or `None` if no non-null value has been observed.
value: Option<Scalar>,
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

why did you put this in partial and not options? Do you think we will never not know the dtype externally

@joseph-isaacs

Copy link
Copy Markdown
Contributor

Can we merge this without serialise enabled in the future

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.

3 participants