11use num_traits:: AsPrimitive ;
22use vortex_array:: compute:: { ComputeVTable , FillForwardFn , ScalarAtFn , SliceFn , TakeFn } ;
3- use vortex_array:: validity:: { ArrayValidity , LogicalValidity , Validity } ;
3+ use vortex_array:: validity:: { ArrayValidity , Validity } ;
44use vortex_array:: variants:: PrimitiveArrayTrait ;
55use vortex_array:: { ArrayDType , ArrayData , ArrayLen , IntoArrayData , IntoArrayVariant , ToArrayData } ;
66use vortex_dtype:: { match_each_integer_ptype, Nullability } ;
77use vortex_error:: { vortex_err, VortexResult } ;
8+ use vortex_mask:: Mask ;
89use vortex_scalar:: Scalar ;
910
1011use super :: { ByteBoolArray , ByteBoolEncoding } ;
@@ -55,7 +56,7 @@ impl TakeFn<ByteBoolArray> for ByteBoolEncoding {
5556 // FIXME(ngates): we should be operating over canonical validity, which doesn't
5657 // have fallible is_valid function.
5758 let arr = match validity {
58- LogicalValidity :: AllValid ( _) => {
59+ Mask :: AllTrue ( _) => {
5960 let bools = match_each_integer_ptype ! ( indices. ptype( ) , |$I | {
6061 indices. as_slice:: <$I >( )
6162 . iter( )
@@ -68,16 +69,14 @@ impl TakeFn<ByteBoolArray> for ByteBoolEncoding {
6869
6970 ByteBoolArray :: from ( bools) . into_array ( )
7071 }
71- LogicalValidity :: AllInvalid ( _) => {
72- ByteBoolArray :: from ( vec ! [ None ; indices. len( ) ] ) . into_array ( )
73- }
74- LogicalValidity :: Mask ( mask) => {
72+ Mask :: AllFalse ( _) => ByteBoolArray :: from ( vec ! [ None ; indices. len( ) ] ) . into_array ( ) ,
73+ Mask :: Values ( values) => {
7574 let bools = match_each_integer_ptype ! ( indices. ptype( ) , |$I | {
7675 indices. as_slice:: <$I >( )
7776 . iter( )
7877 . map( |& idx| {
7978 let idx = idx. as_( ) ;
80- if mask . value( idx) {
79+ if values . value( idx) {
8180 Some ( bools[ idx] )
8281 } else {
8382 None
@@ -101,21 +100,21 @@ impl FillForwardFn<ByteBoolArray> for ByteBoolEncoding {
101100 return Ok ( array. to_array ( ) ) ;
102101 }
103102 // all valid, but we need to convert to non-nullable
104- if validity. all_valid ( ) {
103+ if validity. all_true ( ) {
105104 return Ok (
106105 ByteBoolArray :: try_new ( array. buffer ( ) . clone ( ) , Validity :: AllValid ) ?. into_array ( ) ,
107106 ) ;
108107 }
109108 // all invalid => fill with default value (false)
110- if validity. all_invalid ( ) {
109+ if validity. all_false ( ) {
111110 return Ok (
112111 ByteBoolArray :: try_from_vec ( vec ! [ false ; array. len( ) ] , Validity :: AllValid ) ?
113112 . into_array ( ) ,
114113 ) ;
115114 }
116115
117116 let validity = validity
118- . to_null_buffer ( ) ?
117+ . to_null_buffer ( )
119118 . ok_or_else ( || vortex_err ! ( "Failed to convert array validity to null buffer" ) ) ?;
120119
121120 let bools = array. as_slice ( ) ;
0 commit comments