Skip to content

Commit c13b844

Browse files
committed
fix(cubesql): Add missing aggregate expressions for ORDER BY clause
Signed-off-by: Alex Qyoun-ae <[email protected]>
1 parent 1490598 commit c13b844

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
@@ -17737,4 +17737,41 @@ LIMIT {{ limit }}{% endif %}"#.to_string(),
1773717737
);
1773817738
Ok(())
1773917739
}
17740+
17741+
#[tokio::test]
17742+
async fn test_order_by_missing_aggr() {
17743+
if !Rewriter::sql_push_down_enabled() {
17744+
return;
17745+
}
17746+
init_testing_logger();
17747+
17748+
let logical_plan = convert_select_to_query_plan(
17749+
r#"
17750+
SELECT customer_gender
17751+
FROM KibanaSampleDataEcommerce
17752+
GROUP BY customer_gender
17753+
ORDER BY SUM(sumPrice) DESC
17754+
"#
17755+
.to_string(),
17756+
DatabaseProtocol::PostgreSQL,
17757+
)
17758+
.await
17759+
.as_logical_plan();
17760+
17761+
assert_eq!(
17762+
logical_plan.find_cube_scan().request,
17763+
V1LoadRequestQuery {
17764+
measures: Some(vec![]),
17765+
dimensions: Some(vec![
17766+
"KibanaSampleDataEcommerce.customer_gender".to_string(),
17767+
]),
17768+
segments: Some(vec![]),
17769+
order: Some(vec![vec![
17770+
"KibanaSampleDataEcommerce.sumPrice".to_string(),
17771+
"desc".to_string(),
17772+
]]),
17773+
..Default::default()
17774+
}
17775+
)
17776+
}
1774017777
}

0 commit comments

Comments
 (0)