-
Notifications
You must be signed in to change notification settings - Fork 867
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add BooleanArray::from_unary and BooleanArray::from_binary #3258
Conversation
I've confirmed this makes no difference to the comparison benchmarks |
/// Combines the null bitmaps of multiple arrays using a bitwise `and` operation. | ||
/// | ||
/// This function is useful when implementing operations on higher level arrays. | ||
pub fn combine_option_bitmap( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Previously this would return an error if called with an empty arrays
.
In practice no codepaths could hit this, and so I removed it as it seemed unnecessary
/// Compares the null bitmaps of two arrays using a bitwise `or` operation. | ||
/// | ||
/// This function is useful when implementing operations on higher level arrays. | ||
pub(super) fn compare_option_bitmap( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function wasn't being used anywhere - so I opted to just remove it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok. Looks a bit weird to have this in tests
although it looks like to be a utility function.
/// | ||
/// # Panics | ||
/// | ||
/// This function panics if left and right are not the same length |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I specifically want this to be infallible, because I want a future try_from_binary
to be able to return a user-provided error, instead of bundling it up in ArrowError
.
Benchmark runs are scheduled for baseline = 9abdb55 and contender = ecbb8c2. ecbb8c2 is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
Which issue does this PR close?
Part of #3259
Relates to #2594
Rationale for this change
What changes are included in this PR?
Promotes some implementation code from the comparison kernels to a first-class primitive
Are there any user-facing changes?