neilconway commented on PR #25607:
URL: https://github.com/apache/datafusion/pull/25607#issuecomment-5816220097

   @comphead Thanks! I made the following changes:
   
     - Reuse the string copier for Binary and LargeBinary. Generalized it to 
GenericByteArray. The Binary benchmarks improved by 33–46%.
     - Switch to one-pass copier for utf-8 and binary types. Per discussion 
above, this wins on some workloads and loses on others.
     - Release unused primitive output capacity. Added shrink_to_fit() after 
copying. The mostly-NULL-row example now retains 2.25 KiB instead of 192 KiB. 
This reduces retained capacity; the initial reservation is unchanged.
     - Remove both inlining annotations. The final combined implementation 
supported removing both after benchmarking.
     - Simplify bitmap padding. Replaced manual length checks and padding 
calculations with BooleanBufferBuilder::resize, while retaining batching across 
consecutive NULL rows.
     - Clarify names and comments. Renamed the construction wrapper to 
build_compacted_list, clarified element counts versus byte lengths, documented 
visible-span indexing, and explained why the unchecked string constructor 
preserves UTF-8 validity.
     - Improve and modestly trim tests. Added adjacent retained strings, spans 
crossing row boundaries, empty strings, Unicode, sliced bitmaps, hidden NULL 
payloads, arbitrary binary bytes, masked invalid dictionary keys, and 
retained-capacity checks. Removed redundant numeric/all-NULL cases while 
preserving representative types and both
       offset widths.
   
   I also revised the benchmarks in #25566. There's more that we could do here 
but I think the current state of the PR is definitely a major improvement, 
additional improvements can be taken on as followups.


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to