File tree Expand file tree Collapse file tree 1 file changed +5
-3
lines changed
vortex-array/src/arrays/decimal/compute Expand file tree Collapse file tree 1 file changed +5
-3
lines changed Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ use arrow_schema::DECIMAL256_MAX_PRECISION;
55use num_traits:: AsPrimitive ;
66use vortex_dtype:: Nullability :: Nullable ;
77use vortex_dtype:: { DecimalDType , DecimalType , match_each_decimal_value_type} ;
8- use vortex_error:: { VortexResult , vortex_bail} ;
8+ use vortex_error:: { VortexResult , vortex_bail, vortex_err } ;
99use vortex_mask:: Mask ;
1010use vortex_scalar:: { DecimalValue , Scalar } ;
1111
@@ -19,7 +19,8 @@ macro_rules! sum_decimal {
1919 let mut sum: $ty = <$ty>:: default ( ) ;
2020 for v in $values. iter( ) {
2121 let v: $ty = ( * v) . as_( ) ;
22- sum += v;
22+ sum = num_traits:: CheckedAdd :: checked_add( & sum, & v)
23+ . ok_or_else( || vortex_err!( "Overflow when summing decimal {sum:?} + {v:?}" ) ) ?
2324 }
2425 sum
2526 } } ;
@@ -30,7 +31,8 @@ macro_rules! sum_decimal {
3031 for ( v, valid) in $values. iter( ) . zip_eq( $validity) {
3132 if valid {
3233 let v: $ty = ( * v) . as_( ) ;
33- sum += v;
34+ sum = num_traits:: CheckedAdd :: checked_add( & sum, & v)
35+ . ok_or_else( || vortex_err!( "Overflow when summing decimal {sum:?} + {v:?}" ) ) ?
3436 }
3537 }
3638 sum
You can’t perform that action at this time.
0 commit comments