sahuagin opened a new pull request, #9786:
URL: https://github.com/apache/arrow-rs/pull/9786

   Closes #9783
   
   In the non-terminal skip path of `DeltaBitPackDecoder::skip()`, miniblocks 
with
   `bit_width=0` no longer call `get_batch`. Every delta in a bw=0 miniblock 
equals
   `min_delta` exactly, so `last_value` can be advanced by `n * min_delta` 
using a
   single `wrapping_mul` + `wrapping_add`. When `min_delta == 0` no update is
   needed at all.
   
   **Benchmarks (arrow_reader bench vs upstream HEAD):**
   ```
   bw=0 single-value skip:     -21.6%
   bw=0 increasing-value skip: -24.3%
   ```
   
   **Origin:** Observed that constant and near-constant integer columns encoded
   with DELTA_BINARY_PACKED are common in practice (timestamps with uniform 
step,
   run-length-like data). The bw=0 case is the hot path for those columns and 
the
   decode loop was doing unnecessary work.
   
   **Verification:** Existing skip tests pass. The bw=0 path produces identical
   `last_value` state as the decode-based path by construction
   (`n * min_delta == sum of n copies of min_delta`).
   
   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]

Reply via email to