@@ -33,7 +33,6 @@ use datafusion_physical_plan::ExecutionPlan;
33
33
use parquet:: arrow:: arrow_reader:: { RowSelection , RowSelector } ;
34
34
use parquet:: arrow:: ArrowWriter ;
35
35
use parquet:: file:: properties:: WriterProperties ;
36
- use std:: path:: Path ;
37
36
use std:: sync:: { Arc , OnceLock } ;
38
37
use tempfile:: NamedTempFile ;
39
38
@@ -315,19 +314,12 @@ impl TestFull {
315
314
316
315
let TestData {
317
316
_temp_file : _,
318
- ref schema,
319
- ref file_name,
320
- ref file_size,
317
+ schema,
318
+ file_name,
319
+ file_size,
321
320
} = get_test_data ( ) ;
322
321
323
- let new_file_name = if cfg ! ( target_os = "windows" ) {
324
- // Windows path separator is different from Unix
325
- file_name. replace ( "\\ " , "/" )
326
- } else {
327
- file_name. clone ( )
328
- } ;
329
-
330
- let mut partitioned_file = PartitionedFile :: new ( new_file_name, * file_size) ;
322
+ let mut partitioned_file = PartitionedFile :: new ( file_name, * file_size) ;
331
323
332
324
// add the access plan, if any, as an extension
333
325
if let Some ( access_plan) = access_plan {
@@ -363,8 +355,6 @@ impl TestFull {
363
355
pretty_format_batches( & results) . unwrap( )
364
356
) ;
365
357
366
- std:: fs:: remove_file ( file_name) . unwrap ( ) ;
367
-
368
358
Ok ( MetricsFinder :: find_metrics ( plan. as_ref ( ) ) . unwrap ( ) )
369
359
}
370
360
}
@@ -379,43 +369,45 @@ struct TestData {
379
369
file_size : u64 ,
380
370
}
381
371
382
- static _TEST_DATA : OnceLock < TestData > = OnceLock :: new ( ) ;
372
+ static TEST_DATA : OnceLock < TestData > = OnceLock :: new ( ) ;
383
373
384
374
/// Return a parquet file with 2 row groups each with 5 rows
385
- fn get_test_data ( ) -> TestData {
386
- let scenario = Scenario :: UTF8 ;
387
- let row_per_group = 5 ;
375
+ fn get_test_data ( ) -> & ' static TestData {
376
+ TEST_DATA . get_or_init ( || {
377
+ let scenario = Scenario :: UTF8 ;
378
+ let row_per_group = 5 ;
388
379
389
- let mut temp_file = tempfile:: Builder :: new ( )
390
- . prefix ( "user_access_plan" )
391
- . suffix ( ".parquet" )
392
- . tempfile_in ( Path :: new ( "" ) )
393
- . expect ( "tempfile creation" ) ;
380
+ let mut temp_file = tempfile:: Builder :: new ( )
381
+ . prefix ( "user_access_plan" )
382
+ . suffix ( ".parquet" )
383
+ . tempfile ( )
384
+ . expect ( "tempfile creation" ) ;
394
385
395
- let props = WriterProperties :: builder ( )
396
- . set_max_row_group_size ( row_per_group)
397
- . build ( ) ;
386
+ let props = WriterProperties :: builder ( )
387
+ . set_max_row_group_size ( row_per_group)
388
+ . build ( ) ;
398
389
399
- let batches = create_data_batch ( scenario) ;
400
- let schema = batches[ 0 ] . schema ( ) ;
390
+ let batches = create_data_batch ( scenario) ;
391
+ let schema = batches[ 0 ] . schema ( ) ;
401
392
402
- let mut writer =
403
- ArrowWriter :: try_new ( & mut temp_file, schema. clone ( ) , Some ( props) ) . unwrap ( ) ;
393
+ let mut writer =
394
+ ArrowWriter :: try_new ( & mut temp_file, schema. clone ( ) , Some ( props) ) . unwrap ( ) ;
404
395
405
- for batch in batches {
406
- writer. write ( & batch) . expect ( "writing batch" ) ;
407
- }
408
- writer. close ( ) . unwrap ( ) ;
396
+ for batch in batches {
397
+ writer. write ( & batch) . expect ( "writing batch" ) ;
398
+ }
399
+ writer. close ( ) . unwrap ( ) ;
409
400
410
- let file_name = temp_file. path ( ) . to_string_lossy ( ) . to_string ( ) ;
411
- let file_size = temp_file. path ( ) . metadata ( ) . unwrap ( ) . len ( ) ;
401
+ let file_name = temp_file. path ( ) . to_string_lossy ( ) . to_string ( ) ;
402
+ let file_size = temp_file. path ( ) . metadata ( ) . unwrap ( ) . len ( ) ;
412
403
413
- TestData {
414
- _temp_file : temp_file,
415
- schema,
416
- file_name,
417
- file_size,
418
- }
404
+ TestData {
405
+ _temp_file : temp_file,
406
+ schema,
407
+ file_name,
408
+ file_size,
409
+ }
410
+ } )
419
411
}
420
412
421
413
/// Return the total value of the specified metric name
0 commit comments