@@ -25,7 +25,7 @@ impl AggFunc for Median {
2525 }
2626
2727 let mut sorted = state;
28- sorted. sort_by ( |a, b| a. partial_cmp ( b ) . unwrap ( ) ) ;
28+ sorted. sort_by ( |a, b| a. total_cmp ( b ) ) ;
2929
3030 let len = sorted. len ( ) ;
3131 if len % 2 == 1 {
@@ -82,8 +82,8 @@ impl AggFunc for Percentile {
8282 return Ok ( Value :: from_float ( values[ 0 ] ) ) ;
8383 }
8484
85- let p = p_value. unwrap ( ) ;
86- values. sort_by ( |a, b| a. partial_cmp ( b ) . unwrap ( ) ) ;
85+ let p = p_value. ok_or ( "percentile value must be provided" ) ? ;
86+ values. sort_by ( |a, b| a. total_cmp ( b ) ) ;
8787 let n = values. len ( ) as f64 ;
8888 let index = p * ( n - 1.0 ) / 100.0 ;
8989 let lower = index. floor ( ) as usize ;
@@ -144,8 +144,8 @@ impl AggFunc for PercentileCont {
144144 return Ok ( Value :: from_float ( values[ 0 ] ) ) ;
145145 }
146146
147- let p = p_value. unwrap ( ) ;
148- values. sort_by ( |a, b| a. partial_cmp ( b ) . unwrap ( ) ) ;
147+ let p = p_value. ok_or ( "percentile value must be provided" ) ? ;
148+ values. sort_by ( |a, b| a. total_cmp ( b ) ) ;
149149 let n = values. len ( ) as f64 ;
150150 let index = p * ( n - 1.0 ) ;
151151 let lower = index. floor ( ) as usize ;
@@ -184,8 +184,8 @@ impl AggFunc for PercentileDisc {
184184 return Err ( err) ;
185185 }
186186
187- let p = p_value. unwrap ( ) ;
188- values. sort_by ( |a, b| a. partial_cmp ( b ) . unwrap ( ) ) ;
187+ let p = p_value. ok_or ( "percentile value must be provided" ) ? ;
188+ values. sort_by ( |a, b| a. total_cmp ( b ) ) ;
189189 let n = values. len ( ) as f64 ;
190190 let index = ( p * ( n - 1.0 ) ) . floor ( ) as usize ;
191191 Ok ( Value :: from_float ( values[ index] ) )
0 commit comments