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]

Reply via email to