| 295 | } |
| 296 | |
| 297 | fn filter_benchmarks( |
| 298 | args: &EnvParser, |
| 299 | benchmarks: BTreeMap<String, Vec<SqlBenchmark>>, |
| 300 | ) -> BTreeMap<String, Vec<SqlBenchmark>> { |
| 301 | match &args.name { |
| 302 | Some(bench_name) => benchmarks |
| 303 | .into_iter() |
| 304 | .filter(|(key, _val)| key.eq_ignore_ascii_case(bench_name)) |
| 305 | .map(|(key, mut val)| { |
| 306 | if let Some(subgroup) = &args.subgroup { |
| 307 | val.retain(|bench| bench.subgroup().eq_ignore_ascii_case(subgroup)); |
| 308 | } |
| 309 | if let Some(query_number) = &args.query { |
| 310 | let padded = format!("Q{query_number:0>2}"); |
| 311 | val.retain(|bench| bench.name().eq_ignore_ascii_case(&padded)); |
| 312 | } |
| 313 | (key, val) |
| 314 | }) |
| 315 | .collect(), |
| 316 | None => benchmarks, |
| 317 | } |
| 318 | } |