@@ -3,7 +3,7 @@ mod invert;
33use vortex_array:: array:: BoolArray ;
44use vortex_array:: compute:: { slice, ComputeVTable , InvertFn , ScalarAtFn , SliceFn , TakeFn } ;
55use vortex_array:: variants:: PrimitiveArrayTrait ;
6- use vortex_array:: { ArrayData , ArrayLen , IntoArrayData , IntoArrayVariant , ToArrayData } ;
6+ use vortex_array:: { ArrayDType , ArrayData , ArrayLen , IntoArrayData , IntoArrayVariant , ToArrayData } ;
77use vortex_dtype:: match_each_integer_ptype;
88use vortex_error:: { vortex_bail, VortexResult } ;
99use vortex_scalar:: Scalar ;
@@ -29,10 +29,10 @@ impl ComputeVTable for RunEndBoolEncoding {
2929impl ScalarAtFn < RunEndBoolArray > for RunEndBoolEncoding {
3030 fn scalar_at ( & self , array : & RunEndBoolArray , index : usize ) -> VortexResult < Scalar > {
3131 let start = array. start ( ) ;
32- Ok ( Scalar :: from ( value_at_index (
33- array. find_physical_index ( index) ?,
34- start ,
35- ) ) )
32+ Ok ( Scalar :: bool (
33+ value_at_index ( array. find_physical_index ( index) ?, start ) ,
34+ array . dtype ( ) . nullability ( ) ,
35+ ) )
3636 }
3737}
3838
@@ -90,9 +90,11 @@ impl SliceFn<RunEndBoolArray> for RunEndBoolEncoding {
9090
9191#[ cfg( test) ]
9292mod tests {
93- use vortex_array:: compute:: slice;
93+ use vortex_array:: compute:: { scalar_at , slice} ;
9494 use vortex_array:: validity:: Validity ;
9595 use vortex_array:: { ArrayLen , IntoArrayData } ;
96+ use vortex_dtype:: Nullability ;
97+ use vortex_scalar:: Scalar ;
9698
9799 use crate :: RunEndBoolArray ;
98100
@@ -110,4 +112,16 @@ mod tests {
110112 let re_slice = RunEndBoolArray :: try_from ( sliced_array) . unwrap ( ) ;
111113 assert ! ( re_slice. ends( ) . is_empty( ) ) ;
112114 }
115+
116+ #[ test]
117+ fn scalar_at_nullability ( ) {
118+ let re_array =
119+ RunEndBoolArray :: try_new ( vec ! [ 7_u64 , 10 ] . into_array ( ) , false , Validity :: AllValid )
120+ . unwrap ( ) ;
121+
122+ assert_eq ! (
123+ scalar_at( & re_array, 0 ) . unwrap( ) ,
124+ Scalar :: bool ( false , Nullability :: Nullable )
125+ ) ;
126+ }
113127}
0 commit comments