tustvold commented on code in PR #2650:
URL: https://github.com/apache/arrow-rs/pull/2650#discussion_r963814613
##########
arrow/src/compute/kernels/arity.rs:
##########
@@ -83,6 +84,41 @@ where
PrimitiveArray::<O>::from(data)
}
+/// A overflow-checking variant of `unary`.
+pub(crate) fn unary_checked<I, F, O>(
+ array: &PrimitiveArray<I>,
+ op: F,
+) -> Result<PrimitiveArray<O>>
+where
+ I: ArrowPrimitiveType,
+ O: ArrowPrimitiveType,
+ F: Fn(I::Native) -> Option<O::Native>,
+ I::Native: ArrowNativeTypeOp,
+{
+ let values = array.values().iter().map(|v| {
Review Comment:
The null slot may have any value, not just `0`. Consider the case where a
null is added to a non-null value of `200`, the resulting null slot will now
have a value `200 + whatever was in the null slot`. The only guarantee is it is
uninitalized, the actual value is arbitrary.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]