Skip to content

Conversation

@alamb
Copy link
Contributor

@alamb alamb commented Jan 15, 2026

Which issue does this PR close?

Rationale 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

@github-actions github-actions bot added the arrow Changes to the arrow crate label Jan 15, 2026
@alamb alamb force-pushed the alamb/union_array branch from 53cfd08 to ff4a428 Compare January 15, 2026 13:52
for (cd, (field_id, _)) in data.child_data().iter().zip(fields.iter()) {
boxed_fields[field_id as usize] = Some(make_array(cd.clone()));
for (cd, (field_id, _)) in child_data.into_iter().zip(fields.iter()) {
boxed_fields[field_id as usize] = Some(make_array(cd));
Copy link
Contributor Author

@alamb alamb Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this saves a clone of ArrayData (which each requires a Vec allocation) for each child of the UnionArray

}
Self {
data_type: data.data_type().clone(),
data_type,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this saves a call of DataType::drop

@alamb alamb marked this pull request as ready for review January 16, 2026 19:30
@jhorstmann
Copy link
Contributor

Looks good 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arrow Changes to the arrow crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants