sahuagin opened a new pull request, #9787: URL: https://github.com/apache/arrow-rs/pull/9787
Closes #9784 Adds a terminal-skip fast path to `DeltaBitPackDecoder::skip()`. When `to_skip >= values_left` the caller is discarding all remaining values on the page and `last_value` will not be read again. In this case: - Use `BitReader::skip(n, bit_width)` to advance the stream without decoding. - Return early without allocating a scratch buffer or updating `last_value`. The existing decode path is preserved unchanged for non-terminal skips where `last_value` accuracy is required for subsequent `get()` calls. **Benchmarks (arrow_reader bench vs upstream HEAD):** ``` mixed stepped skip: -3.9% ``` **Origin:** The common "skip rest of page" pattern during row-group filtering hits this path frequently. Removing the unconditional scratch allocation for a case where the decoded values are immediately discarded is the right call. **Verification:** Existing skip tests pass. The terminal path never updates `last_value`; the non-terminal path is unmodified, so all existing behavior is preserved. Generated-by: Claude (claude-sonnet-4-6) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
