Add FixedSizeBinary support for MultiGroupBy#23646
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #23646 +/- ##
=======================================
Coverage ? 80.67%
=======================================
Files ? 1087
Lines ? 366894
Branches ? 366894
=======================================
Hits ? 295991
Misses ? 53274
Partials ? 17629 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
There is also this PR However I don't think that will handle FixedSizeBinary |
Rich-T-kid
left a comment
There was a problem hiding this comment.
This PR looks very reasonable. I noticed that this is very similar to the ByteGroupValueBuilder implementation.
I think it would be worth it to try and see if we can modify ByteGroupValueBuilder to support similar optimizations such as batched writes. besides that vectorized/equal_to and the other trait methods are 1-1.
If ByteGroupValueBuilder cant be expanded on to include fixed size binary without extensive branching that hurts readability thats also fine.
|
|
||
| impl GroupColumn for FixedSizeBinaryGroupValueBuilder { | ||
| fn equal_to(&self, lhs_row: usize, array: &ArrayRef, rhs_row: usize) -> bool { | ||
| debug_assert!(matches!(array.data_type(), DataType::FixedSizeBinary(_))); |
There was a problem hiding this comment.
the array input is guaranteed to be the correct type. you can remove the assertion here
| rhs_rows: &[usize], | ||
| equal_to_results: &mut BooleanBufferBuilder, | ||
| ) { | ||
| debug_assert!(matches!(array.data_type(), DataType::FixedSizeBinary(_))); |
This sounds like a good thing to explore in a follow on / parallel PR |
|
Since I think the point of doing this PR is to improve performance it would be nice to have some benchmark results I created a PR with some benchmarks here Hopefully we can merge that and then use it to validate that this PR improves things |
More so that if we're grouping by a FixedSizeBinary column we run out of memory in the GroupValuesRows interning and crash :) |
e843517 to
f8ebf73
Compare
Closes #23645
Rationale for this change
Multi-Group-By has cases for regular Binary/LargeBinary types, but not FixedSizeBinary
Are these changes tested?
Yes.
Are there any user-facing changes?
No