Skip to content

Commit f926c8c

Browse files
committed
[FIXUP proper message] more tests
1 parent 284215b commit f926c8c

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

rust/cubesql/cubesql/src/compile/test/test_wrapper.rs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1240,3 +1240,59 @@ async fn select_agg_where_false() {
12401240
}
12411241
);
12421242
}
1243+
1244+
/// Aggregation(dimension) with falsy filter should NOT get pushed to CubeScan with limit=0
1245+
#[tokio::test]
1246+
async fn wrapper_dimension_agg_where_false() {
1247+
if !Rewriter::sql_push_down_enabled() {
1248+
return;
1249+
}
1250+
init_testing_logger();
1251+
1252+
let query_plan = convert_select_to_query_plan(
1253+
// language=PostgreSQL
1254+
r#"
1255+
SELECT
1256+
MAX(customer_gender)
1257+
FROM
1258+
KibanaSampleDataEcommerce
1259+
WHERE 1 = 0
1260+
"#
1261+
.to_string(),
1262+
DatabaseProtocol::PostgreSQL,
1263+
)
1264+
.await;
1265+
1266+
let physical_plan = query_plan.as_physical_plan().await.unwrap();
1267+
println!(
1268+
"Physical plan: {}",
1269+
displayable(physical_plan.as_ref()).indent()
1270+
);
1271+
1272+
let logical_plan = query_plan.as_logical_plan();
1273+
assert_eq!(
1274+
logical_plan.find_cube_scan().request,
1275+
V1LoadRequestQuery {
1276+
measures: Some(vec![]),
1277+
dimensions: Some(vec![]),
1278+
segments: Some(vec![]),
1279+
order: Some(vec![]),
1280+
limit: Some(0),
1281+
ungrouped: Some(true),
1282+
..Default::default()
1283+
}
1284+
);
1285+
1286+
assert!(logical_plan
1287+
.find_cube_scan_wrapper()
1288+
.wrapped_sql
1289+
.unwrap()
1290+
.sql
1291+
.contains("\"limit\":0"));
1292+
assert!(logical_plan
1293+
.find_cube_scan_wrapper()
1294+
.wrapped_sql
1295+
.unwrap()
1296+
.sql
1297+
.contains("\"ungrouped\":true"));
1298+
}

0 commit comments

Comments
 (0)