audit_syntax/
audit_syntax.rs1use qail_core::parse;
4use qail_core::transpiler::ToSql;
5
6fn main() {
7 println!("=== Testing DISTINCT ON with Expressions ===\n");
8
9 let q1 = "get distinct on (phone_number) messages fields phone_number, content order by phone_number, created_at desc";
11 println!("Test 1 (DISTINCT ON column):");
12 match parse(q1) {
13 Ok(cmd) => println!(" OK: {}\n", cmd.to_sql()),
14 Err(e) => println!(" ERR: {}\n", e),
15 }
16
17 let q2 = r#"get distinct on (case when phone like '0%' then '62' || substring(phone from 2) else phone end) orders
19 fields phone, name order by case when phone like '0%' then '62' || substring(phone from 2) else phone end, created_at desc"#;
20 println!("Test 2 (DISTINCT ON CASE WHEN):");
21 match parse(q2) {
22 Ok(cmd) => println!(" OK: {}\n", cmd.to_sql()),
23 Err(e) => println!(" ERR: {}\n", e),
24 }
25
26 let q3 = "get distinct on (lower(email)) users fields email, name order by lower(email), id";
28 println!("Test 3 (DISTINCT ON function):");
29 match parse(q3) {
30 Ok(cmd) => println!(" OK: {}\n", cmd.to_sql()),
31 Err(e) => println!(" ERR: {}\n", e),
32 }
33}