File tree Expand file tree Collapse file tree 2 files changed +17
-5
lines changed Expand file tree Collapse file tree 2 files changed +17
-5
lines changed Original file line number Diff line number Diff line change @@ -269,7 +269,8 @@ impl PlanContext {
269269 } ;
270270
271271 // TODO: Ideally we could ditch this intermediate Vec as we return an iterator.
272- let mut filtered_mfcs = vec ! [ ] ;
272+ let mut filtered_deletes_mfcs = vec ! [ ] ;
273+ let mut filtered_data_mfcs = vec ! [ ] ;
273274
274275 for manifest_file in & manifest_files {
275276 let ( delete_file_idx, tx) = if manifest_file. content == ManifestContentType :: Deletes {
@@ -313,10 +314,22 @@ impl PlanContext {
313314 filter_fn. clone ( ) ,
314315 ) ;
315316
316- filtered_mfcs. push ( Ok ( mfc) ) ;
317+ match manifest_file. content {
318+ ManifestContentType :: Deletes => {
319+ filtered_deletes_mfcs. push ( Ok ( mfc) ) ;
320+ }
321+ ManifestContentType :: Data => {
322+ filtered_data_mfcs. push ( Ok ( mfc) ) ;
323+ }
324+ }
317325 }
318326
319- Ok ( Box :: new ( filtered_mfcs. into_iter ( ) ) )
327+ // Push deletes manifest first then data manifest files.
328+ Ok ( Box :: new (
329+ filtered_deletes_mfcs
330+ . into_iter ( )
331+ . chain ( filtered_data_mfcs. into_iter ( ) ) ,
332+ ) )
320333 }
321334
322335 fn create_manifest_file_context (
Original file line number Diff line number Diff line change @@ -456,8 +456,7 @@ impl TableScan {
456456 . send ( Err ( error) )
457457 . await ;
458458 }
459- } )
460- . await ;
459+ } ) ;
461460 }
462461
463462 let mut channel_for_data_manifest_entry_error = file_scan_task_tx. clone ( ) ;
You can’t perform that action at this time.
0 commit comments