optimize(concat): concat map implementation#10048
Conversation
| Ok(Arc::new(array)) | ||
| } | ||
|
|
||
| fn concat_maps( |
There was a problem hiding this comment.
This copy the logic for List, I don't know can we share a offset based template impl here
There was a problem hiding this comment.
Pull request overview
This PR adds a native concat implementation for Arrow MapArray in arrow-select, avoiding the generic concat_fallback path and bringing Map in line with the existing optimized handling for List and Struct.
Changes:
- Added
concat_mapsto efficiently concatenateMapArrayinstances, including correct handling of sliced inputs and null buffers. - Updated
concatdispatch to routeDataType::Mapto the new implementation. - Added unit tests covering basic concatenation, sliced maps, null maps, and empty maps.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
run benchmark concatenate_kernels |
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
🤖 Arrow criterion benchmark running (GKE) | trigger CPU Details (lscpu)Comparing concat-map (9a066dc) to 481223f (merge-base) diff File an issue against this benchmark runner |
|
Benchmark for this request failed. Last 20 lines of output: Click to expandFile an issue against this benchmark runner |
|
run benchmark concatenate_kernel |
|
🤖 Arrow criterion benchmark running (GKE) | trigger CPU Details (lscpu)Comparing concat-map (9a066dc) to 481223f (merge-base) diff File an issue against this benchmark runner |
|
🤖 Arrow criterion benchmark completed (GKE) | trigger Instance: CPU Details (lscpu)Details
Resource Usagebase (merge-base)
branch
File an issue against this benchmark runner |
Which issue does this PR close?
MapArray#10047 .Rationale for this change
Implement concat for map
What changes are included in this PR?
Implement concat for map
Are these changes tested?
Yes
Are there any user-facing changes?
No