@@ -223,8 +223,6 @@ impl LayoutReader for StructReader {
223223 mask : Mask ,
224224 ) -> VortexResult < MaskFuture > {
225225 // Partition the expression into expressions that can be evaluated over individual fields
226- // TODO(aduffy): handle validity expressions such as "IS NULL" that can be executed directly against
227- // the validity
228226 match & self . partition_expr ( expr. clone ( ) ) {
229227 Partitioned :: Single ( name, partition) => self
230228 . field_reader ( name) ?
@@ -281,18 +279,15 @@ impl LayoutReader for StructReader {
281279 partition. is :: < PackVTable > ( ) || partition. is :: < MergeVTable > ( ) ,
282280 ) ,
283281
284- Partitioned :: Multi ( partitioned) => {
285- // Apply the validity to each internal field instead.
286- (
287- partitioned
288- . clone ( )
289- . into_array_future ( mask_fut, |name, expr, mask| {
290- self . field_reader ( name) ?
291- . projection_evaluation ( row_range, expr, mask)
292- } ) ?,
293- partitioned. root . is :: < PackVTable > ( ) || partitioned. root . is :: < MergeVTable > ( ) ,
294- )
295- }
282+ Partitioned :: Multi ( partitioned) => (
283+ partitioned
284+ . clone ( )
285+ . into_array_future ( mask_fut, |name, expr, mask| {
286+ self . field_reader ( name) ?
287+ . projection_evaluation ( row_range, expr, mask)
288+ } ) ?,
289+ partitioned. root . is :: < PackVTable > ( ) || partitioned. root . is :: < MergeVTable > ( ) ,
290+ ) ,
296291 } ;
297292
298293 Ok ( Box :: pin ( async move {
0 commit comments