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

   # Which issue does this PR close?
   
   It doesn't directly close the issue, but it's related to 
https://github.com/apache/arrow-rs/issues/7698
   
   # Rationale for this change
   
   This commit  changes the `dict` field in `VariantBuilder` + the `fields` 
field in `ObjectBuilder` to be `BTreeMap`s, and also consolidates `dict` and 
`dict_keys` inside of `VariantBuilder`.
   
   These collections are often used in places where having an already sorted 
structure would be more performant. Inside of `ObjectBuilder::finish()`, we 
sort the fields by `field_name` and we can use the fact that `VariantBuilder`'s 
`dict` maintains a sorted mapping to `field_id` by `field_name`. 
   
   This also simplifies the code by removing a superfluous field `dict_key` 
which removes a superfluous string copy when appending a new key. 
   
   We make `ObjectBuilder` `fields` a `BTreeMap` sorted by `field_id`. Since 
`field_id`s correlate to insertion order, we now have some notion of which 
fields were inserted first. This also improves the time to look up the max 
field id, as it changes the linear scan over the entire `fields` collection to 
a logarithmic call using `fields.keys().last()`. 
   
   


-- 
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: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to