Skip to content

Commit 1cc2063

Browse files
committed
chore: test with different quarters
1 parent d96ef83 commit 1cc2063

File tree

2 files changed

+36
-35
lines changed

2 files changed

+36
-35
lines changed

rust/cubesql/cubesql/src/compile/mod.rs

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -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]

rust/cubesql/cubesql/src/compile/rewrite/rules/filters.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1803,7 +1803,7 @@ impl RewriteRules for FilterRules {
18031803
"?new_values",
18041804
),
18051805
),
1806-
// TODO: Introduce rule to unwrap TRUNC(EXTRACT(?granularity FROM ?column_expr))
1806+
// TODO: Introduce new rule to unwrap TRUNC(EXTRACT(?granularity FROM ?column_expr)) -> EXTRACT(?granularity FROM ?column_expr)
18071807
// When the filter set above is paired with other filters, it needs to be
18081808
// regrouped for the above rewrite rule to match
18091809
rewrite(
@@ -1868,7 +1868,7 @@ impl RewriteRules for FilterRules {
18681868
"FilterOpOp:and",
18691869
),
18701870
),
1871-
// TODO: Introduce rule to unwrap TRUNC(EXTRACT(?granularity FROM ?column_expr))
1871+
// TODO: Introduce new rule to unwrap TRUNC(EXTRACT(?granularity FROM ?column_expr)) -> EXTRACT(?granularity FROM ?column_expr)
18721872
// The filter set above may be inverted, let's account for that as well
18731873
rewrite(
18741874
"extract-date-range-and-trunc-reverse",
@@ -1917,7 +1917,7 @@ impl RewriteRules for FilterRules {
19171917
"FilterOpOp:and",
19181918
),
19191919
),
1920-
// TODO: Introduce rule to unwrap TRUNC(EXTRACT(?granularity FROM ?column_expr))
1920+
// TODO: Introduce new rule to unwrap TRUNC(EXTRACT(?granularity FROM ?column_expr)) -> EXTRACT(?granularity FROM ?column_expr)
19211921
rewrite(
19221922
"extract-date-range-and-trunc-reverse-nested",
19231923
filter_op(

0 commit comments

Comments
 (0)