Open
Conversation
It would be nice to add `append_nulls` to MapBuilder, similar to `append_nulls` on `GenericListBuilder`. Appending the nulls at once, instead of using a loop has some nice performance implications: Closes apache#9431 ``` Benchmark results (1,000,000 nulls): ┌─────────────────────────┬─────────┐ │ Method │ Time │ ├─────────────────────────┼─────────┤ │ append(false) in a loop │ 2.36 ms │ ├─────────────────────────┼─────────┤ │ append_nulls(N) │ 50 µs │ └─────────────────────────┴─────────┘ ```
cf19196 to
1b3b079
Compare
scovich
approved these changes
Feb 20, 2026
Comment on lines
180
to
185
| return Err(ArrowError::InvalidArgumentError(format!( | ||
| "Cannot append to a map builder when its keys and values have unequal lengths of {} and {}", | ||
| self.key_builder.len(), | ||
| self.value_builder.len() | ||
| ))); | ||
| } |
Contributor
There was a problem hiding this comment.
There are at least two copies of this now... worth pulling out into an #[inline] check function of some kind?
Contributor
Author
There was a problem hiding this comment.
Wonderful idea, just pushed the change 👍
Contributor
|
Out of curiosity, are there any benchmarks in the repo that show these improvements? |
Contributor
Author
The benchmark results are in the PR description. Let me know if you want me to commit the benchmark as well. I've left it out since it is very specific. |
…fd-map-append-nulls
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Which issue does this PR close?
Closes #9431
Rationale for this change
It would be nice to add
append_nullsto MapBuilder, similar toappend_nullsonGenericListBuilder. Appending the nulls at once, instead of using a loop has some nice performance implications:What changes are included in this PR?
A new public API.
Are these changes tested?
With some fresh unit tests.
Are there any user-facing changes?
A nice and convient new public API