@@ -14,6 +14,8 @@ use vortex_bench::Opts;
1414use vortex_bench:: create_benchmark;
1515use vortex_bench:: create_output_writer;
1616use vortex_bench:: display:: DisplayFormat ;
17+ use vortex_bench:: runner:: BenchmarkMode ;
18+ use vortex_bench:: runner:: BenchmarkQueryResult ;
1719use vortex_bench:: runner:: SqlBenchmarkRunner ;
1820use vortex_bench:: runner:: filter_queries;
1921use vortex_bench:: setup_logging_and_tracing;
@@ -59,6 +61,20 @@ struct Args {
5961 options : Vec < Opt > ,
6062}
6163
64+ struct ClickHouseQueryResult {
65+ row_count : usize ,
66+ }
67+
68+ impl BenchmarkQueryResult for ClickHouseQueryResult {
69+ fn row_count ( & self ) -> usize {
70+ self . row_count
71+ }
72+
73+ fn display ( self ) -> String {
74+ format ! ( "{} rows" , self . row_count)
75+ }
76+ }
77+
6278fn main ( ) -> anyhow:: Result < ( ) > {
6379 let args = Args :: parse ( ) ;
6480 let opts = Opts :: from ( args. options ) ;
@@ -91,9 +107,14 @@ fn main() -> anyhow::Result<()> {
91107
92108 runner. run_all (
93109 & filtered_queries,
94- args. iterations ,
110+ BenchmarkMode :: Run {
111+ iterations : args. iterations ,
112+ } ,
95113 |format| ClickHouseClient :: new ( benchmark. as_ref ( ) , format) ,
96- |ctx, _query_idx, _format, query| ctx. execute_query ( query) ,
114+ |ctx, _query_idx, _format, query| {
115+ let ( row_count, duration) = ctx. execute_query ( query) ?;
116+ Ok ( ( duration, ClickHouseQueryResult { row_count } ) )
117+ } ,
97118 ) ?;
98119
99120 let benchmark_id = format ! ( "clickhouse-{}" , benchmark. dataset_name( ) ) ;
0 commit comments