diff --git a/datafusion/core/benches/sql_planner.rs b/datafusion/core/benches/sql_planner.rs index eb5357c512ec..2a795f2be123 100644 --- a/datafusion/core/benches/sql_planner.rs +++ b/datafusion/core/benches/sql_planner.rs @@ -188,9 +188,27 @@ fn criterion_benchmark(c: &mut Criterion) { // --- TPC-DS --- let tpcds_ctx = register_defs(SessionContext::new(), tpcds_schemas()); - let all_tpcds_sql_queries = (1..100) + + let ignored = [ + // Physical plan does not support logical expression Exists() + 10, + // Physical plan does not support logical expression Exists() + 35, // : Optimizing disjunctions not supported + 41, // Physical plan does not support logical expression () + 45, + ]; + + let raw_tpcds_sql_queries = (1..100) + .filter(|q| !ignored.contains(q)) .map(|q| std::fs::read_to_string(format!("./tests/tpc-ds/{q}.sql")).unwrap()) .collect::>(); + + // some queries have multiple statements + let all_tpcds_sql_queries = raw_tpcds_sql_queries + .iter() + .flat_map(|sql| sql.split(';').filter(|s| !s.trim().is_empty())) + .collect::>(); + c.bench_function("physical_plan_tpcds_all", |b| { b.iter(|| { for sql in &all_tpcds_sql_queries {