@@ -9466,39 +9466,40 @@ ORDER BY "source"."str0" ASC
94669466 async fn test_filter_extract_by_year_and_quarter() {
94679467 init_testing_logger();
94689468
9469- let logical_plan = convert_select_to_query_plan(
9470- r#"
9471- SELECT
9472- COUNT(*) AS "count",
9473- EXTRACT(YEAR FROM "KibanaSampleDataEcommerce"."order_date") AS "yr:completedAt:ok"
9474- FROM "public"."KibanaSampleDataEcommerce" "KibanaSampleDataEcommerce"
9475- WHERE EXTRACT(YEAR FROM "KibanaSampleDataEcommerce"."order_date") = 2019 AND EXTRACT(QUARTER FROM "KibanaSampleDataEcommerce"."order_date") = 2
9476- GROUP BY 2
9477- ;"#
9478- .to_string(),
9479- DatabaseProtocol::PostgreSQL,
9480- )
9481- .await
9482- .as_logical_plan();
9469+ async fn assert_quarter_result(quarter: i32, start_date: &str, end_date: &str) {
9470+ let query_plan = convert_select_to_query_plan(
9471+ format!(r#"
9472+ SELECT COUNT(*) AS "count",
9473+ EXTRACT(YEAR FROM "KibanaSampleDataEcommerce"."order_date") AS "yr:completedAt:ok"
9474+ FROM "public"."KibanaSampleDataEcommerce" "KibanaSampleDataEcommerce"
9475+ WHERE EXTRACT(YEAR FROM "KibanaSampleDataEcommerce"."order_date") = 2019
9476+ AND EXTRACT(QUARTER FROM "KibanaSampleDataEcommerce"."order_date") = {}
9477+ GROUP BY 2
9478+ "#, quarter),
9479+ DatabaseProtocol::PostgreSQL,
9480+ ).await;
94839481
9484- assert_eq!(
9485- logical_plan.find_cube_scan().request,
9486- V1LoadRequestQuery {
9487- measures: Some(vec!["KibanaSampleDataEcommerce.count".to_string()]),
9488- dimensions: Some(vec![]),
9489- segments: Some(vec![]),
9490- time_dimensions: Some(vec![V1LoadRequestQueryTimeDimension {
9491- dimension: "KibanaSampleDataEcommerce.order_date".to_string(),
9492- granularity: Some("year".to_string()),
9493- date_range: Some(json!(vec![
9494- "2019-04-01".to_string(),
9495- "2019-06-31".to_string(),
9496- ])),
9497- },]),
9498- order: Some(vec![]),
9499- ..Default::default()
9500- }
9501- )
9482+ assert_eq!(
9483+ query_plan.as_logical_plan().find_cube_scan().request,
9484+ V1LoadRequestQuery {
9485+ measures: Some(vec!["KibanaSampleDataEcommerce.count".to_string()]),
9486+ dimensions: Some(vec![]),
9487+ segments: Some(vec![]),
9488+ time_dimensions: Some(vec![V1LoadRequestQueryTimeDimension {
9489+ dimension: "KibanaSampleDataEcommerce.order_date".to_string(),
9490+ granularity: Some("year".to_string()),
9491+ date_range: Some(json!(vec![start_date, end_date])),
9492+ },]),
9493+ order: Some(vec![]),
9494+ ..Default::default()
9495+ }
9496+ )
9497+ }
9498+
9499+ assert_quarter_result(1, "2019-01-01", "2019-03-31").await;
9500+ assert_quarter_result(2, "2019-04-01", "2019-06-30").await;
9501+ assert_quarter_result(3, "2019-07-01", "2019-09-30").await;
9502+ assert_quarter_result(4, "2019-10-01", "2019-12-31").await;
95029503 }
95039504
95049505 #[tokio::test]
0 commit comments