Avoid a clone when creating ListViewArray from ArrayData#9193
Merged
alamb merged 5 commits intoapache:mainfrom Jan 18, 2026
Merged
Avoid a clone when creating ListViewArray from ArrayData#9193alamb merged 5 commits intoapache:mainfrom
ListViewArray from ArrayData#9193alamb merged 5 commits intoapache:mainfrom
Conversation
f7d8a97 to
72d0fcc
Compare
alamb
commented
Jan 15, 2026
| ))); | ||
| } | ||
|
|
||
| let values = data.child_data()[0].clone(); |
Contributor
Author
There was a problem hiding this comment.
here is a clone of ArrayData (which requires an extra Vec allocaton) which is no longer needed
Closed
1 task
Contributor
Author
|
@brancz sorry I meant to tag you on this PR given your effort working on ListViewArray recently |
Contributor
|
I'm confused, this looks to be the same change as the one for |
Contributor
Author
That is a great catch -- thank you -- fixed |
alamb
commented
Jan 17, 2026
| )) | ||
| })?; | ||
|
|
||
| let values = data.child_data()[0].clone(); |
Contributor
Author
There was a problem hiding this comment.
This saves a real clone of ArrayData (and thus an allocation)
alamb
commented
Jan 17, 2026
| let value_sizes = ScalarBuffer::new(sizes_buffer, offset, len); | ||
|
|
||
| Ok(Self { | ||
| data_type: data.data_type().clone(), |
Contributor
Author
There was a problem hiding this comment.
This saves a DataType::drop and a clone of NullBuffer -- probably not a huge deal but unecessary
Contributor
|
Looks good 🚀 |
Contributor
Author
|
Thanks (again) for the review @jhorstmann |
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?
make_array) #9061ArrayData(speed up reading from Parquet reader) #9058Rationale for this change
Let's make arrow-rs the fastest we can and the fewer allocations the better
What changes are included in this PR?
Apply pattern from #9114
Are these changes tested?
Existing tests
Are there any user-facing changes?
No