@@ -7,15 +7,24 @@ use std::ops::Range;
77use vortex_buffer:: BufferHandle ;
88use vortex_compute:: filter:: Filter ;
99use vortex_dtype:: DType ;
10- use vortex_error:: vortex_bail;
1110use vortex_error:: VortexExpect ;
1211use vortex_error:: VortexResult ;
12+ use vortex_error:: vortex_bail;
1313use vortex_mask:: Mask ;
1414use vortex_scalar:: Scalar ;
1515
16+ use crate :: Array ;
17+ use crate :: ArrayBufferVisitor ;
18+ use crate :: ArrayChildVisitor ;
19+ use crate :: ArrayEq ;
20+ use crate :: ArrayHash ;
21+ use crate :: ArrayRef ;
22+ use crate :: Canonical ;
23+ use crate :: IntoArray ;
24+ use crate :: Precision ;
25+ use crate :: arrays:: LEGACY_SESSION ;
1626use crate :: arrays:: filter:: array:: FilterArray ;
1727use crate :: arrays:: filter:: kernel:: FilterKernel ;
18- use crate :: arrays:: LEGACY_SESSION ;
1928use crate :: kernel:: BindCtx ;
2029use crate :: kernel:: KernelRef ;
2130use crate :: kernel:: PushDownResult ;
@@ -33,15 +42,6 @@ use crate::vtable::OperationsVTable;
3342use crate :: vtable:: VTable ;
3443use crate :: vtable:: ValidityVTable ;
3544use crate :: vtable:: VisitorVTable ;
36- use crate :: Array ;
37- use crate :: ArrayBufferVisitor ;
38- use crate :: ArrayChildVisitor ;
39- use crate :: ArrayEq ;
40- use crate :: ArrayHash ;
41- use crate :: ArrayRef ;
42- use crate :: Canonical ;
43- use crate :: IntoArray ;
44- use crate :: Precision ;
4545
4646vtable ! ( Filter ) ;
4747
@@ -83,14 +83,15 @@ impl VTable for FilterVTable {
8383 & self ,
8484 dtype : & DType ,
8585 len : usize ,
86- metadata : & Self :: Metadata ,
86+ selection_mask : & Mask ,
8787 _buffers : & [ BufferHandle ] ,
8888 children : & dyn ArrayChildren ,
8989 ) -> VortexResult < Self :: Array > {
90- let child = children. get ( 0 , dtype, len) ?;
90+ assert_eq ! ( len, selection_mask. true_count( ) ) ;
91+ let child = children. get ( 0 , dtype, selection_mask. len ( ) ) ?;
9192 Ok ( FilterArray {
9293 child,
93- mask : metadata . clone ( ) ,
94+ mask : selection_mask . clone ( ) ,
9495 stats : Default :: default ( ) ,
9596 } )
9697 }
0 commit comments