Skip to content

Commit 24d1177

Browse files
authored
fix(cubesql): Add missing aggregate expressions for ORDER BY clause (#9990)
1 parent bd20e65 commit 24d1177

File tree

4 files changed

+50
-13
lines changed

4 files changed

+50
-13
lines changed

packages/cubejs-backend-native/Cargo.lock

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/cubesql/Cargo.lock

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/cubesql/cubesql/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ homepage = "https://cube.dev"
1010

1111
[dependencies]
1212
arc-swap = "1"
13-
datafusion = { git = 'https://github.com/cube-js/arrow-datafusion.git', rev = "0ba29ac12e2b13444bd536e1cbe4f73411383521", default-features = false, features = [
13+
datafusion = { git = 'https://github.com/cube-js/arrow-datafusion.git', rev = "6ac106244a1d4699f36d2bcbf435ca37363d1e21", default-features = false, features = [
1414
"regex_expressions",
1515
"unicode_expressions",
1616
] }

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

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17778,4 +17778,41 @@ LIMIT {{ limit }}{% endif %}"#.to_string(),
1777817778
}
1777917779
)
1778017780
}
17781+
17782+
#[tokio::test]
17783+
async fn test_order_by_missing_aggr() {
17784+
if !Rewriter::sql_push_down_enabled() {
17785+
return;
17786+
}
17787+
init_testing_logger();
17788+
17789+
let logical_plan = convert_select_to_query_plan(
17790+
r#"
17791+
SELECT customer_gender
17792+
FROM KibanaSampleDataEcommerce
17793+
GROUP BY customer_gender
17794+
ORDER BY SUM(sumPrice) DESC
17795+
"#
17796+
.to_string(),
17797+
DatabaseProtocol::PostgreSQL,
17798+
)
17799+
.await
17800+
.as_logical_plan();
17801+
17802+
assert_eq!(
17803+
logical_plan.find_cube_scan().request,
17804+
V1LoadRequestQuery {
17805+
measures: Some(vec![]),
17806+
dimensions: Some(vec![
17807+
"KibanaSampleDataEcommerce.customer_gender".to_string(),
17808+
]),
17809+
segments: Some(vec![]),
17810+
order: Some(vec![vec![
17811+
"KibanaSampleDataEcommerce.sumPrice".to_string(),
17812+
"desc".to_string(),
17813+
]]),
17814+
..Default::default()
17815+
}
17816+
)
17817+
}
1778117818
}

0 commit comments

Comments
 (0)