@@ -142,13 +142,15 @@ impl LocalExchangeQueryBench {
142142 Ok ( QueryBenchSources :: Single {
143143 input : make_fact_source (
144144 value_name,
145- self . total_rows ,
146- self . batch_rows ,
147- self . source_partitions ,
148- self . key_domain ,
149- grp_domain,
150- key_distribution,
151- value_offset,
145+ FactSourceSpec {
146+ total_rows : self . total_rows ,
147+ batch_rows : self . batch_rows ,
148+ source_partitions : self . source_partitions ,
149+ key_domain : self . key_domain ,
150+ grp_domain,
151+ key_distribution,
152+ value_offset,
153+ } ,
152154 ) ?,
153155 } )
154156 }
@@ -162,23 +164,27 @@ impl LocalExchangeQueryBench {
162164 Ok ( QueryBenchSources :: Join {
163165 left : make_fact_source (
164166 "left_value" ,
165- self . total_rows ,
166- self . batch_rows ,
167- self . source_partitions ,
168- self . key_domain ,
169- 16 ,
170- left_distribution,
171- 0 ,
167+ FactSourceSpec {
168+ total_rows : self . total_rows ,
169+ batch_rows : self . batch_rows ,
170+ source_partitions : self . source_partitions ,
171+ key_domain : self . key_domain ,
172+ grp_domain : 16 ,
173+ key_distribution : left_distribution,
174+ value_offset : 0 ,
175+ } ,
172176 ) ?,
173177 right : make_fact_source (
174178 "right_value" ,
175- right_total_rows,
176- self . batch_rows ,
177- self . source_partitions ,
178- right_key_domain,
179- 16 ,
180- KeyDistribution :: Uniform ,
181- 17 ,
179+ FactSourceSpec {
180+ total_rows : right_total_rows,
181+ batch_rows : self . batch_rows ,
182+ source_partitions : self . source_partitions ,
183+ key_domain : right_key_domain,
184+ grp_domain : 16 ,
185+ key_distribution : KeyDistribution :: Uniform ,
186+ value_offset : 17 ,
187+ } ,
182188 ) ?,
183189 } )
184190 }
@@ -586,8 +592,8 @@ fn group_cols_to_exprs(group_cols: &[(&str, usize)]) -> Vec<(Arc<dyn PhysicalExp
586592 . iter ( )
587593 . map ( |( name, index) | {
588594 (
589- Arc :: new ( Column :: new ( * name, * index) ) as Arc < dyn PhysicalExpr > ,
590- ( * name) . to_string ( ) ,
595+ Arc :: new ( Column :: new ( name, * index) ) as Arc < dyn PhysicalExpr > ,
596+ name. to_string ( ) ,
591597 )
592598 } )
593599 . collect ( )
@@ -599,8 +605,8 @@ fn group_cols_to_final_exprs(group_cols: &[(&str, usize)]) -> Vec<(Arc<dyn Physi
599605 . enumerate ( )
600606 . map ( |( index, ( name, _) ) | {
601607 (
602- Arc :: new ( Column :: new ( * name, index) ) as Arc < dyn PhysicalExpr > ,
603- ( * name) . to_string ( ) ,
608+ Arc :: new ( Column :: new ( name, index) ) as Arc < dyn PhysicalExpr > ,
609+ name. to_string ( ) ,
604610 )
605611 } )
606612 . collect ( )
@@ -610,7 +616,7 @@ fn partial_group_columns(group_cols: &[(&str, usize)]) -> Vec<Arc<dyn PhysicalEx
610616 group_cols
611617 . iter ( )
612618 . enumerate ( )
613- . map ( |( index, ( name, _) ) | Arc :: new ( Column :: new ( * name, index) ) as Arc < dyn PhysicalExpr > )
619+ . map ( |( index, ( name, _) ) | Arc :: new ( Column :: new ( name, index) ) as Arc < dyn PhysicalExpr > )
614620 . collect ( )
615621}
616622
@@ -620,27 +626,20 @@ enum KeyDistribution {
620626 HotKey ,
621627}
622628
623- fn make_fact_source (
624- value_name : & str ,
629+ # [ derive ( Clone , Copy ) ]
630+ struct FactSourceSpec {
625631 total_rows : usize ,
626632 batch_rows : usize ,
627633 source_partitions : usize ,
628634 key_domain : usize ,
629635 grp_domain : usize ,
630636 key_distribution : KeyDistribution ,
631637 value_offset : i64 ,
632- ) -> Result < PreparedFactSource > {
638+ }
639+
640+ fn make_fact_source ( value_name : & str , spec : FactSourceSpec ) -> Result < PreparedFactSource > {
633641 let schema = fact_schema ( value_name) ;
634- let partitions = make_fact_batches (
635- Arc :: clone ( & schema) ,
636- total_rows,
637- batch_rows,
638- source_partitions,
639- key_domain,
640- grp_domain,
641- key_distribution,
642- value_offset,
643- ) ?;
642+ let partitions = make_fact_batches ( Arc :: clone ( & schema) , spec) ?;
644643 Ok ( PreparedFactSource { schema, partitions } )
645644}
646645
@@ -652,16 +651,17 @@ fn fact_schema(value_name: &str) -> SchemaRef {
652651 ] ) )
653652}
654653
655- fn make_fact_batches (
656- schema : SchemaRef ,
657- total_rows : usize ,
658- batch_rows : usize ,
659- source_partitions : usize ,
660- key_domain : usize ,
661- grp_domain : usize ,
662- key_distribution : KeyDistribution ,
663- value_offset : i64 ,
664- ) -> Result < Vec < Vec < RecordBatch > > > {
654+ fn make_fact_batches ( schema : SchemaRef , spec : FactSourceSpec ) -> Result < Vec < Vec < RecordBatch > > > {
655+ let FactSourceSpec {
656+ total_rows,
657+ batch_rows,
658+ source_partitions,
659+ key_domain,
660+ grp_domain,
661+ key_distribution,
662+ value_offset,
663+ } = spec;
664+
665665 if batch_rows == 0 {
666666 return exec_err ! ( "benchmark batch_rows must be greater than zero" ) ;
667667 }
0 commit comments