lidavidm commented on a change in pull request #12139:
URL: https://github.com/apache/arrow/pull/12139#discussion_r798024695



##########
File path: cpp/src/arrow/compute/kernels/scalar_arithmetic.cc
##########
@@ -214,6 +214,62 @@ struct SubtractChecked {
   }
 };
 
+template <bool is_32bit, int64_t multiple>
+struct SubtractTimeDuration {
+  template <typename T, typename Arg0, typename Arg1>
+  static enable_if_t<is_32bit, T> Call(KernelContext*, Arg0 left, Arg1 right,
+                                       Status* st) {
+    T result = arrow::internal::SafeSignedSubtract(left, 
static_cast<T>(right));
+    if (result < 0) {
+      *st = Status::Invalid(result, " is not within the acceptable range of ", 
"[0, ",
+                            multiple, ") s");
+    }

Review comment:
       I poked around stdlib datetime but it doesn't seem to implement this. 
However, I still think we need to check whether the result is in range on both 
ends.




-- 
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