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) <[email protected]>
|
🤖 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?
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