Skip to content

Commit 9c4606f

Browse files
committed
chore(cubesql): Add generic query benchmarks
1 parent 4f78b8a commit 9c4606f

File tree

1 file changed

+61
-1
lines changed

1 file changed

+61
-1
lines changed

rust/cubesql/cubesql/benches/benchmarks.rs

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,9 +459,69 @@ pub fn long_in_expr(c: &mut Criterion) {
459459
bench_func!("long_in_expr", get_long_in_expr(), c);
460460
}
461461

462+
fn get_tableau_logical_17_query() -> String {
463+
r#"
464+
SELECT LOWER(CAST("KibanaSampleDataEcommerce"."customer_gender" AS TEXT)) AS "TEMP(Test)(1234567890)(0)"
465+
FROM "public"."KibanaSampleDataEcommerce" "KibanaSampleDataEcommerce"
466+
GROUP BY 1
467+
"#
468+
.into()
469+
}
470+
471+
pub fn tableau_logical_17(c: &mut Criterion) {
472+
std::env::set_var("CUBESQL_SQL_PUSH_DOWN", "true");
473+
bench_func!("tableau_logical_17", get_tableau_logical_17_query(), c);
474+
}
475+
476+
fn get_ts_last_day_redshift_query() -> String {
477+
r#"
478+
WITH "qt_0" AS (
479+
SELECT
480+
DATE_TRUNC('month', "ta_1"."order_date") "ca_1",
481+
CASE
482+
WHEN sum("ta_1"."sumPrice") IS NOT NULL THEN sum("ta_1"."sumPrice")
483+
ELSE 0
484+
END "ca_2"
485+
FROM "db"."public"."KibanaSampleDataEcommerce" "ta_1"
486+
WHERE (
487+
"ta_1"."order_date" >= DATE '1999-12-29'
488+
AND "ta_1"."order_date" < DATE '1999-12-30'
489+
)
490+
GROUP BY "ca_1"
491+
)
492+
SELECT
493+
min("ta_2"."ca_1") "ca_3",
494+
max("ta_2"."ca_1") "ca_4"
495+
FROM "qt_0" "ta_2"
496+
"#
497+
.into()
498+
}
499+
500+
pub fn ts_last_day_redshift(c: &mut Criterion) {
501+
std::env::set_var("CUBESQL_SQL_PUSH_DOWN", "true");
502+
bench_func!("ts_last_day_redshift", get_ts_last_day_redshift_query(), c);
503+
}
504+
505+
fn get_tableau_bugs_b8888_query() -> String {
506+
r#"
507+
SELECT CAST(TRUNC((CASE WHEN 7 = 0 THEN NULL ELSE CAST(((6 + (1 + CAST(EXTRACT(DOW FROM (DATE_TRUNC( 'YEAR', CAST("KibanaSampleDataEcommerce"."order_date" AS TIMESTAMP) ) + (CASE WHEN (CAST(TRUNC(EXTRACT(MONTH FROM "KibanaSampleDataEcommerce"."order_date")) AS INTEGER) < 3) THEN -10 ELSE 2 END) * INTERVAL '1 MONTH')) AS INTEGER))) + (EXTRACT(EPOCH FROM (CAST("KibanaSampleDataEcommerce"."order_date" AS TIMESTAMP) - (DATE_TRUNC( 'YEAR', CAST("KibanaSampleDataEcommerce"."order_date" AS TIMESTAMP) ) + (CASE WHEN (CAST(TRUNC(EXTRACT(MONTH FROM "KibanaSampleDataEcommerce"."order_date")) AS INTEGER) < 3) THEN -10 ELSE 2 END) * INTERVAL '1 MONTH'))) / (60.0 * 60 * 24))) AS DOUBLE PRECISION) / 7 END)) AS BIGINT) AS "Week #",
508+
COUNT(DISTINCT "KibanaSampleDataEcommerce"."order_date") AS "ctd:order_date:ok",
509+
CAST(TRUNC(EXTRACT(YEAR FROM ("KibanaSampleDataEcommerce"."order_date" + 10 * INTERVAL '1 MONTH'))) AS INTEGER) AS "yr:order_date:ok"
510+
FROM "public"."KibanaSampleDataEcommerce" "KibanaSampleDataEcommerce"
511+
GROUP BY 1,
512+
3
513+
"#.into()
514+
}
515+
516+
pub fn tableau_bugs_b8888(c: &mut Criterion) {
517+
std::env::set_var("CUBESQL_SQL_PUSH_DOWN", "true");
518+
bench_func!("tableau_bugs_b8888", get_tableau_bugs_b8888_query(), c);
519+
}
520+
462521
criterion_group! {
463522
name = benches;
464523
config = Criterion::default().measurement_time(std::time::Duration::from_secs(15)).sample_size(10);
465-
targets = split_query, split_query_count_distinct, wrapped_query, power_bi_wrap, power_bi_sum_wrap, long_in_expr, long_simple_in_number_expr_1k, long_simple_in_str_expr_50, long_simple_in_str_expr_1k
524+
targets = split_query, split_query_count_distinct, wrapped_query, power_bi_wrap, power_bi_sum_wrap, long_in_expr, long_simple_in_number_expr_1k, long_simple_in_str_expr_50, long_simple_in_str_expr_1k, tableau_logical_17,
525+
tableau_bugs_b8888, ts_last_day_redshift
466526
}
467527
criterion_main!(benches);

0 commit comments

Comments
 (0)