@@ -29,33 +29,6 @@ use num::traits::CheckedRem;
2929use num:: { CheckedAdd , CheckedDiv , CheckedMul , CheckedSub } ;
3030use std:: sync:: Arc ;
3131
32- fn checked_arithmetic_impl < T > ( left_arr : & ArrayRef , right_arr : & ArrayRef , op_kind : & str ) -> ArrayRef
33- where
34- T : ArrowPrimitiveType ,
35- T :: Native : CheckedAdd + CheckedSub + CheckedMul + CheckedDiv + CheckedRem + Copy ,
36- {
37- let left = left_arr. as_primitive :: < T > ( ) ;
38- let right = right_arr. as_primitive :: < T > ( ) ;
39- let mut builder = PrimitiveBuilder :: < T > :: with_capacity ( left. len ( ) ) ;
40-
41- for i in 0 ..left. len ( ) {
42- if left. is_null ( i) || right. is_null ( i) {
43- builder. append_null ( ) ;
44- } else {
45- let l = left. value ( i) ;
46- let r = right. value ( i) ;
47- let val = match op_kind {
48- "checked_add" => l. checked_add ( & r) ,
49- "checked_sub" => l. checked_sub ( & r) ,
50- "checked_mul" => l. checked_mul ( & r) ,
51- _ => todo ! ( "Unsupported operation: {}" , op_kind) ,
52- } ;
53- builder. append_option ( val) ;
54- }
55- }
56- Arc :: new ( builder. finish ( ) ) as ArrayRef
57- }
58-
5932pub fn try_arithmetic_kernel < T > (
6033 left : & PrimitiveArray < T > ,
6134 right : & PrimitiveArray < T > ,
0 commit comments