Skip to content

Conversation

@asubiotto
Copy link
Contributor

Previously, List and LargeList would fall through to the interleave_fallback match arm, which is inefficient. This commit implements interleave_list, which interleaves a list's child arrays and rebuilds the offsets buffer. Running it on production tests reduced memory by 80%.

Which issue does this PR close?

Rationale for this change

Performance and memory usage when interleaving List/LargeList

Are these changes tested?

This PR does not include tests because interleave tests for Lists already exist

Are there any user-facing changes?

No, purely performance

Previously, List and LargeList would fall through to the interleave_fallback
match arm, which is inefficient. This commit implements interleave_list, which
interleaves a list's child arrays and rebuilds the offsets buffer. Running it
on production tests reduced memory by 80%.

Signed-off-by: Alfonso Subiotto Marques <[email protected]>
@github-actions github-actions bot added the arrow Changes to the arrow crate label Dec 4, 2025
@asubiotto
Copy link
Contributor Author

cc @alamb / @tustvold

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.

Support performant interleave for List/LargeList

1 participant