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

   # Which issue does this PR close?
   
   - Spawn off from #9653 
   - Contributes to #9731
   
   # Rationale for this change
   
   See #9731
   
   # What changes are included in this PR?
   
   Restructure `write_list()` to accumulate consecutive null and empty rows and 
flush them in a single `visit_leaves()` call using `extend(repeat_n(...))`, 
instead of calling `visit_leaves()` per row.
   
   With sparse data (99% nulls), a 4096-row batch previously triggered ~4000 
individual tree traversals, each pushing a single value per leaf. Now 
consecutive null/empty runs are collapsed into one traversal that extends all 
leaf level buffers in bulk.
   
   This follows the same pattern already used by `write_struct()`. The 
`write_non_null_slice` path is unchanged since each non-null row has different 
offsets and cannot be batched.
   
   # Are these changes tested?
   
   All tests passing; existing tests give 100% coverage.
   
   # Are there any user-facing changes?
   
   N/A
   


-- 
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