@@ -21,45 +21,49 @@ extern crate criterion;
2121use criterion:: * ;
2222
2323use arrow:: array:: * ;
24+ #[ cfg( feature = "csv" ) ]
2425use arrow:: csv;
2526use arrow:: datatypes:: * ;
2627use arrow:: record_batch:: RecordBatch ;
2728use std:: fs:: File ;
2829use std:: sync:: Arc ;
2930
3031fn record_batches_to_csv ( ) {
31- let schema = Schema :: new ( vec ! [
32- Field :: new( "c1" , DataType :: Utf8 , false ) ,
33- Field :: new( "c2" , DataType :: Float64 , true ) ,
34- Field :: new( "c3" , DataType :: UInt32 , false ) ,
35- Field :: new( "c3" , DataType :: Boolean , true ) ,
36- ] ) ;
32+ #[ cfg( feature = "csv" ) ]
33+ {
34+ let schema = Schema :: new ( vec ! [
35+ Field :: new( "c1" , DataType :: Utf8 , false ) ,
36+ Field :: new( "c2" , DataType :: Float64 , true ) ,
37+ Field :: new( "c3" , DataType :: UInt32 , false ) ,
38+ Field :: new( "c3" , DataType :: Boolean , true ) ,
39+ ] ) ;
3740
38- let c1 = StringArray :: from ( vec ! [
39- "Lorem ipsum dolor sit amet" ,
40- "consectetur adipiscing elit" ,
41- "sed do eiusmod tempor" ,
42- ] ) ;
43- let c2 = PrimitiveArray :: < Float64Type > :: from ( vec ! [
44- Some ( 123.564532 ) ,
45- None ,
46- Some ( -556132.25 ) ,
47- ] ) ;
48- let c3 = PrimitiveArray :: < UInt32Type > :: from ( vec ! [ 3 , 2 , 1 ] ) ;
49- let c4 = BooleanArray :: from ( vec ! [ Some ( true ) , Some ( false ) , None ] ) ;
41+ let c1 = StringArray :: from ( vec ! [
42+ "Lorem ipsum dolor sit amet" ,
43+ "consectetur adipiscing elit" ,
44+ "sed do eiusmod tempor" ,
45+ ] ) ;
46+ let c2 = PrimitiveArray :: < Float64Type > :: from ( vec ! [
47+ Some ( 123.564532 ) ,
48+ None ,
49+ Some ( -556132.25 ) ,
50+ ] ) ;
51+ let c3 = PrimitiveArray :: < UInt32Type > :: from ( vec ! [ 3 , 2 , 1 ] ) ;
52+ let c4 = BooleanArray :: from ( vec ! [ Some ( true ) , Some ( false ) , None ] ) ;
5053
51- let b = RecordBatch :: try_new (
52- Arc :: new ( schema) ,
53- vec ! [ Arc :: new( c1) , Arc :: new( c2) , Arc :: new( c3) , Arc :: new( c4) ] ,
54- )
55- . unwrap ( ) ;
56- let file = File :: create ( "target/bench_write_csv.csv" ) . unwrap ( ) ;
57- let mut writer = csv:: Writer :: new ( file) ;
58- let batches = vec ! [ & b, & b, & b, & b, & b, & b, & b, & b, & b, & b, & b] ;
59- #[ allow( clippy:: unit_arg) ]
60- criterion:: black_box ( for batch in batches {
61- writer. write ( batch) . unwrap ( )
62- } ) ;
54+ let b = RecordBatch :: try_new (
55+ Arc :: new ( schema) ,
56+ vec ! [ Arc :: new( c1) , Arc :: new( c2) , Arc :: new( c3) , Arc :: new( c4) ] ,
57+ )
58+ . unwrap ( ) ;
59+ let file = File :: create ( "target/bench_write_csv.csv" ) . unwrap ( ) ;
60+ let mut writer = csv:: Writer :: new ( file) ;
61+ let batches = vec ! [ & b, & b, & b, & b, & b, & b, & b, & b, & b, & b, & b] ;
62+ #[ allow( clippy:: unit_arg) ]
63+ criterion:: black_box ( for batch in batches {
64+ writer. write ( batch) . unwrap ( )
65+ } ) ;
66+ }
6367}
6468
6569fn criterion_benchmark ( c : & mut Criterion ) {
0 commit comments