You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"SELECT a.attname, pg_catalog.format_type(a.atttypid, a.atttypmod), NULL, a.attnotnull, NULL AS attcollation, a.attidentity, a.attgenerated FROM pg_catalog.pg_attribute AS a WHERE a.attrelid = '16384' AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum");
1310
1404
}
1311
1405
1406
+
#[test]
1407
+
fntest_keep_simple_aggregated_subquery(){
1408
+
let rules:Vec<Arc<dynSqlStatementRewriteRule>> =
1409
+
vec![Arc::new(RemoveSubqueryFromProjection)];
1410
+
1411
+
assert_rewrite!(&rules,
1412
+
"SELECT id, (SELECT COUNT(*) FROM pg_catalog.pg_attribute) AS attr_count FROM pg_catalog.pg_class",
1413
+
"SELECT id, (SELECT COUNT(*) FROM pg_catalog.pg_attribute LIMIT 1) AS attr_count FROM pg_catalog.pg_class"
1414
+
);
1415
+
}
1416
+
1417
+
#[test]
1418
+
fntest_remove_correlated_subquery(){
1419
+
let rules:Vec<Arc<dynSqlStatementRewriteRule>> =
1420
+
vec![Arc::new(RemoveSubqueryFromProjection)];
1421
+
1422
+
assert_rewrite!(&rules,
1423
+
"SELECT a.attname, (SELECT COUNT(*) FROM pg_catalog.pg_attribute WHERE attrelid = a.oid) AS count FROM pg_catalog.pg_attribute a",
1424
+
"SELECT a.attname, NULL AS count FROM pg_catalog.pg_attribute AS a"
1425
+
);
1426
+
}
1427
+
1428
+
#[test]
1429
+
fntest_remove_non_aggregated_subquery(){
1430
+
let rules:Vec<Arc<dynSqlStatementRewriteRule>> =
1431
+
vec![Arc::new(RemoveSubqueryFromProjection)];
1432
+
1433
+
assert_rewrite!(&rules,
1434
+
"SELECT id, (SELECT attname FROM pg_catalog.pg_attribute LIMIT 1) AS first_attr FROM pg_catalog.pg_class",
1435
+
"SELECT id, (SELECT attname FROM pg_catalog.pg_attribute LIMIT 1) AS first_attr FROM pg_catalog.pg_class"
1436
+
);
1437
+
}
1438
+
1439
+
#[test]
1440
+
fntest_keep_simple_scalar_subquery(){
1441
+
let rules:Vec<Arc<dynSqlStatementRewriteRule>> =
1442
+
vec![Arc::new(RemoveSubqueryFromProjection)];
1443
+
1444
+
assert_rewrite!(
1445
+
&rules,
1446
+
"SELECT (SELECT 1) AS constant",
1447
+
"SELECT (SELECT 1 LIMIT 1) AS constant"
1448
+
);
1449
+
1450
+
assert_rewrite!(
1451
+
&rules,
1452
+
"SELECT (SELECT 'value') AS str_val",
1453
+
"SELECT (SELECT 'value' LIMIT 1) AS str_val"
1454
+
);
1455
+
}
1456
+
1312
1457
#[test]
1313
1458
fntest_version_rewrite(){
1314
1459
let rules:Vec<Arc<dynSqlStatementRewriteRule>> = vec![Arc::new(FixVersionColumnName)];
0 commit comments