@@ -404,58 +404,58 @@ pub fn long_simple_in_str_expr_1k(c: &mut Criterion) {
404404
405405fn get_long_in_expr ( ) -> String {
406406 r#"
407- SELECT
408- "WideCube"."dim1" as "column1",
409- "WideCube"."dim2" as "column2",
410- "WideCube"."dim3" as "column3",
411- "WideCube"."dim4" as "column4",
412- "WideCube"."dim5" as "column5",
413- "WideCube"."dim6" as "column6",
414- "WideCube"."dim7" as "column7",
415- "WideCube"."dim8" as "column8",
416- "WideCube"."dim9" as "column9",
417- "WideCube"."dim10" as "column10",
418- "WideCube"."dim11" as "column11",
419- "WideCube"."dim12" as "column12",
420- "WideCube"."dim13" as "column13",
421- "WideCube"."dim14" as "column14",
422- "WideCube"."dim15" as "column15",
423- SUM("WideCube"."dim16") as "some_sum"
424- FROM
425- "WideCube"
426- WHERE
427- "WideCube"."dim1" = 1
428- AND "WideCube"."dim2" = 2
429- AND "WideCube"."dim3" = 3
430- AND "WideCube"."dim4" = 4
431- AND "WideCube"."dim5" = 5
432- AND "WideCube"."dim6" = 6
433- AND "WideCube"."dim7" = 7
434- AND "WideCube"."dim8" = 8
435- AND "WideCube"."dim9" = 9
436- AND "WideCube"."dim10" = 10
437- AND ("WideCube"."dim11" = 42 OR "WideCube"."dim11" IS NULL)
407+ SELECT
408+ "WideCube"."dim1" as "column1",
409+ "WideCube"."dim2" as "column2",
410+ "WideCube"."dim3" as "column3",
411+ "WideCube"."dim4" as "column4",
412+ "WideCube"."dim5" as "column5",
413+ "WideCube"."dim6" as "column6",
414+ "WideCube"."dim7" as "column7",
415+ "WideCube"."dim8" as "column8",
416+ "WideCube"."dim9" as "column9",
417+ "WideCube"."dim10" as "column10",
418+ "WideCube"."dim11" as "column11",
419+ "WideCube"."dim12" as "column12",
420+ "WideCube"."dim13" as "column13",
421+ "WideCube"."dim14" as "column14",
422+ "WideCube"."dim15" as "column15",
423+ SUM("WideCube"."dim16") as "some_sum"
424+ FROM
425+ "WideCube"
426+ WHERE
427+ "WideCube"."dim1" = 1
428+ AND "WideCube"."dim2" = 2
429+ AND "WideCube"."dim3" = 3
430+ AND "WideCube"."dim4" = 4
431+ AND "WideCube"."dim5" = 5
432+ AND "WideCube"."dim6" = 6
433+ AND "WideCube"."dim7" = 7
434+ AND "WideCube"."dim8" = 8
435+ AND "WideCube"."dim9" = 9
436+ AND "WideCube"."dim10" = 10
437+ AND ("WideCube"."dim11" = 42 OR "WideCube"."dim11" IS NULL)
438438 AND (
439439 "WideCube"."dim12" IN (
440- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
440+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
441441 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
442442 ) OR "WideCube"."dim12" IS NULL
443- ) AND "WideCube"."dim20" = 55
444- GROUP BY
445- "WideCube"."dim1",
446- "WideCube"."dim2",
447- "WideCube"."dim3",
448- "WideCube"."dim4",
449- "WideCube"."dim5",
450- "WideCube"."dim6",
451- "WideCube"."dim7",
452- "WideCube"."dim8",
453- "WideCube"."dim9",
454- "WideCube"."dim10",
455- "WideCube"."dim11",
456- "WideCube"."dim12",
457- "WideCube"."dim13",
458- "WideCube"."dim14",
443+ ) AND "WideCube"."dim20" = 55
444+ GROUP BY
445+ "WideCube"."dim1",
446+ "WideCube"."dim2",
447+ "WideCube"."dim3",
448+ "WideCube"."dim4",
449+ "WideCube"."dim5",
450+ "WideCube"."dim6",
451+ "WideCube"."dim7",
452+ "WideCube"."dim8",
453+ "WideCube"."dim9",
454+ "WideCube"."dim10",
455+ "WideCube"."dim11",
456+ "WideCube"."dim12",
457+ "WideCube"."dim13",
458+ "WideCube"."dim14",
459459 "WideCube"."dim15"
460460 "# . into ( )
461461}
@@ -482,8 +482,8 @@ pub fn tableau_logical_17(c: &mut Criterion) {
482482fn get_ts_last_day_redshift_query ( ) -> String {
483483 r#"
484484 WITH "qt_0" AS (
485- SELECT
486- DATE_TRUNC('month', "ta_1"."order_date") "ca_1",
485+ SELECT
486+ DATE_TRUNC('month', "ta_1"."order_date") "ca_1",
487487 CASE
488488 WHEN sum("ta_1"."sumPrice") IS NOT NULL THEN sum("ta_1"."sumPrice")
489489 ELSE 0
@@ -495,8 +495,8 @@ fn get_ts_last_day_redshift_query() -> String {
495495 )
496496 GROUP BY "ca_1"
497497 )
498- SELECT
499- min("ta_2"."ca_1") "ca_3",
498+ SELECT
499+ min("ta_2"."ca_1") "ca_3",
500500 max("ta_2"."ca_1") "ca_4"
501501 FROM "qt_0" "ta_2"
502502 "#
@@ -743,4 +743,26 @@ criterion_group! {
743743 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,
744744 tableau_bugs_b8888, ts_last_day_redshift, quicksight_1, quicksight_2
745745}
746- criterion_main ! ( benches) ;
746+
747+ fn simple_rules_loading ( c : & mut Criterion ) {
748+ let context = Arc :: new (
749+ futures:: executor:: block_on ( create_test_postgresql_cube_context ( get_test_tenant_ctx ( ) ) )
750+ . unwrap ( ) ,
751+ ) ;
752+ // preload rules at least once
753+ let _rules = rewrite_rules ( context. clone ( ) ) ;
754+
755+ c. bench_function ( "simple_rules_loading" , |b| {
756+ b. iter ( || {
757+ rewrite_rules ( context. clone ( ) ) ;
758+ } )
759+ } ) ;
760+ }
761+
762+ criterion_group ! {
763+ name = rules_loading;
764+ config = Criterion :: default ( ) ;
765+ targets = simple_rules_loading
766+ }
767+
768+ criterion_main ! ( benches, rules_loading) ;
0 commit comments