test_order_by/
test_order_by.rs1use qail_core::parse;
4use qail_core::transpiler::ToSql;
5
6fn main() {
7 println!("=== Testing Complex ORDER BY ===\n");
8
9 let query1 = "get users fields name order by created_at desc";
11 println!("Query 1 (Simple ORDER BY):");
12 match parse(query1) {
13 Ok(cmd) => println!(" SQL: {}\n", cmd.to_sql()),
14 Err(e) => println!(" Error: {}\n", e),
15 }
16
17 let query2 = "get users fields name order by first_name || last_name";
19 println!("Query 2 (ORDER BY expression):");
20 match parse(query2) {
21 Ok(cmd) => println!(" SQL: {}\n", cmd.to_sql()),
22 Err(e) => println!(" Error: {}\n", e),
23 }
24
25 let query3 = "get orders fields id order by case when status = 'urgent' then 1 else 2 end";
27 println!("Query 3 (ORDER BY CASE WHEN):");
28 match parse(query3) {
29 Ok(cmd) => println!(" SQL: {}\n", cmd.to_sql()),
30 Err(e) => println!(" Error: {}\n", e),
31 }
32
33 let query4 = r#"get orders fields normalized_phone order by
35 case when phone like '0%' then '62' || substring(phone from 2) else phone end,
36 created_at desc"#;
37 println!("Query 4 (Complex CASE + SUBSTRING in ORDER BY):");
38 match parse(query4) {
39 Ok(cmd) => println!(" SQL: {}\n", cmd.to_sql()),
40 Err(e) => println!(" Error: {}\n", e),
41 }
42}