@@ -293,6 +293,7 @@ impl StatisticsCollector<BTreeMap<String, Duration>, BTreeMap<String, Vec<Durati
293293pub struct QueryMetrics < T : ExtendedMetrics , R : ExtendedMetrics > {
294294 pub run_id : Uuid ,
295295 pub run_name : String ,
296+ pub spiced_version : String ,
296297 pub commit_sha : String ,
297298 pub branch_name : String ,
298299 pub test_type : TestType ,
@@ -373,6 +374,7 @@ impl<T: ExtendedMetrics, R: ExtendedMetrics> QueryMetrics<T, R> {
373374
374375 let mut base_fields = vec ! [
375376 Field :: new( "run_id" , DataType :: Utf8 , false ) ,
377+ Field :: new( "spiced_version" , DataType :: Utf8 , false ) ,
376378 Field :: new( "run_name" , DataType :: Utf8 , false ) ,
377379 Field :: new( "commit_sha" , DataType :: Utf8 , false ) ,
378380 Field :: new( "branch_name" , DataType :: Utf8 , false ) ,
@@ -397,6 +399,7 @@ impl<T: ExtendedMetrics, R: ExtendedMetrics> QueryMetrics<T, R> {
397399
398400 let mut base_fields = vec ! [
399401 Field :: new( "run_id" , DataType :: Utf8 , false ) ,
402+ Field :: new( "spiced_version" , DataType :: Utf8 , false ) ,
400403 Field :: new( "started_at" , DataType :: Int64 , false ) ,
401404 Field :: new( "finished_at" , DataType :: Int64 , false ) ,
402405 Field :: new( "query_name" , DataType :: Utf8 , false ) ,
@@ -499,6 +502,7 @@ impl<T: ExtendedMetrics, R: ExtendedMetrics> QueryMetrics<T, R> {
499502 #[ allow( clippy:: cast_possible_wrap) ]
500503 pub fn build_records ( & self ) -> Result < Vec < RecordBatch > > {
501504 let run_id = vec ! [ self . run_id. to_string( ) ; self . metrics. len( ) ] ;
505+ let spiced_version = vec ! [ self . spiced_version. clone( ) ; self . metrics. len( ) ] ;
502506
503507 let started_at = extract_metric_values ! ( self . metrics, started_at, as_i64) ;
504508 let finished_at = extract_metric_values ! ( self . metrics, finished_at, as_i64) ;
@@ -520,6 +524,7 @@ impl<T: ExtendedMetrics, R: ExtendedMetrics> QueryMetrics<T, R> {
520524
521525 let mut columns: Vec < ArrayRef > = vec ! [
522526 Arc :: new( StringArray :: from( run_id) ) ,
527+ Arc :: new( StringArray :: from( spiced_version) ) ,
523528 Arc :: new( Int64Array :: from( started_at) ) ,
524529 Arc :: new( Int64Array :: from( finished_at) ) ,
525530 Arc :: new( StringArray :: from( query_name) ) ,
@@ -569,6 +574,7 @@ impl<T: ExtendedMetrics, R: ExtendedMetrics> QueryMetrics<T, R> {
569574 /// The record batch is a single row, representing the run as a whole - which can pass or fail separately from individual queries
570575 pub fn build_run ( & self , status : QueryStatus ) -> Result < Vec < RecordBatch > > {
571576 let run_id = vec ! [ self . run_id. to_string( ) ] ;
577+ let spiced_version = vec ! [ self . spiced_version. to_string( ) ] ;
572578 let run_name = vec ! [ self . run_name. clone( ) ] ;
573579 let commit_sha = vec ! [ self . commit_sha. clone( ) ] ;
574580 let branch_name = vec ! [ self . branch_name. clone( ) ] ;
@@ -602,6 +608,7 @@ impl<T: ExtendedMetrics, R: ExtendedMetrics> QueryMetrics<T, R> {
602608
603609 let mut columns: Vec < ArrayRef > = vec ! [
604610 Arc :: new( StringArray :: from( run_id) ) ,
611+ Arc :: new( StringArray :: from( spiced_version) ) ,
605612 Arc :: new( StringArray :: from( run_name) ) ,
606613 Arc :: new( StringArray :: from( commit_sha) ) ,
607614 Arc :: new( StringArray :: from( branch_name) ) ,
@@ -650,11 +657,13 @@ pub trait MetricCollector<T: ExtendedMetrics, R: ExtendedMetrics> {
650657 fn start_time ( & self ) -> SystemTime ;
651658 fn end_time ( & self ) -> SystemTime ;
652659 fn name ( & self ) -> String ;
660+ fn spiced_version ( & self ) -> Result < & str > ;
653661 fn metrics ( & self ) -> Result < Vec < QueryMetric < T > > > ;
654662 fn collect ( & self , test_type : TestType ) -> Result < QueryMetrics < T , R > > {
655663 Ok ( QueryMetrics {
656664 run_id : uuid:: Uuid :: new_v4 ( ) ,
657665 run_name : self . name ( ) ,
666+ spiced_version : self . spiced_version ( ) ?. to_string ( ) ,
658667 commit_sha : git:: get_commit_sha ( ) ,
659668 branch_name : git:: get_branch_name ( ) ,
660669 test_type,
0 commit comments