@@ -307,12 +307,16 @@ async fn read_spill_as_stream(
307307 TKReceiver < ArrowResult < RecordBatch > > ,
308308 ) = tokio:: sync:: mpsc:: channel ( 2 ) ;
309309 let path_clone = path. clone ( ) ;
310- task:: spawn_blocking ( move || {
310+ let join_handle = task:: spawn_blocking ( move || {
311311 if let Err ( e) = read_spill ( sender, path_clone) {
312312 error ! ( "Failure while reading spill file: {}. Error: {}" , path, e) ;
313313 }
314314 } ) ;
315- Ok ( RecordBatchReceiverStream :: create ( & schema, receiver) )
315+ Ok ( RecordBatchReceiverStream :: create (
316+ & schema,
317+ receiver,
318+ join_handle,
319+ ) )
316320}
317321
318322pub ( crate ) async fn convert_stream_disk_based (
@@ -521,30 +525,41 @@ pub async fn external_sort(
521525#[ cfg( test) ]
522526mod tests {
523527 use super :: * ;
528+ use crate :: datasource:: object_store:: local:: LocalFileSystem ;
524529 use crate :: physical_plan:: coalesce_partitions:: CoalescePartitionsExec ;
525530 use crate :: physical_plan:: expressions:: col;
526531 use crate :: physical_plan:: memory:: MemoryExec ;
527- use crate :: physical_plan:: sorts:: SortOptions ;
528532 use crate :: physical_plan:: {
529533 collect,
530- csv :: { CsvExec , CsvReadOptions } ,
534+ file_format :: { CsvExec , PhysicalPlanConfig } ,
531535 } ;
532536 use crate :: test;
537+ use crate :: test_util;
533538 use arrow:: array:: * ;
539+ use arrow:: compute:: sort:: SortOptions ;
534540 use arrow:: datatypes:: * ;
535541
536542 #[ tokio:: test]
537543 async fn test_sort ( ) -> Result < ( ) > {
538- let schema = test :: aggr_test_schema ( ) ;
544+ let schema = test_util :: aggr_test_schema ( ) ;
539545 let partitions = 4 ;
540- let path = test:: create_partitioned_csv ( "aggregate_test_100.csv" , partitions) ?;
541- let csv = CsvExec :: try_new (
542- & path,
543- CsvReadOptions :: new ( ) . schema ( & schema) ,
544- None ,
545- 1024 ,
546- None ,
547- ) ?;
546+ let ( _, files) =
547+ test:: create_partitioned_csv ( "aggregate_test_100.csv" , partitions) ?;
548+
549+ let csv = CsvExec :: new (
550+ PhysicalPlanConfig {
551+ object_store : Arc :: new ( LocalFileSystem { } ) ,
552+ file_schema : Arc :: clone ( & schema) ,
553+ file_groups : files,
554+ statistics : Statistics :: default ( ) ,
555+ projection : None ,
556+ batch_size : 1024 ,
557+ limit : None ,
558+ table_partition_cols : vec ! [ ] ,
559+ } ,
560+ true ,
561+ b',' ,
562+ ) ;
548563
549564 let sort_exec = Arc :: new ( ExternalSortExec :: try_new (
550565 vec ! [
0 commit comments