4 use Data::Query::ExprDeclare qw(SELECT FROM WHERE JOIN ON ORDER BY DESC NULLS LAST AS LEFT JOIN OFFSET LIMIT);
6 BEGIN { require 't/example.to_sql' };
10 DwarnL to_sql(SELECT { $_->foo, "bar" });
11 DwarnL to_sql(SELECT { $_->foo, "bar" } FROM { $_->baz });
12 DwarnL to_sql(SELECT { $_->foo } FROM { $_->baz, AS('quux') });
14 SELECT { $_->cd->name } FROM { $_->cds, AS('cd') }
18 SELECT { $_->cd->name }
19 FROM { $_->cds, AS 'cd' }
20 JOIN { $_->artists, AS 'artist' }
21 ON { $_->cd->artistid eq $_->artist->id };
23 DwarnL to_sql($w_join);
25 Dwarn to_sql(FROM { $w_join } WHERE { $_->cd->year > 2000 });
28 SELECT { $_->artist->name }
29 FROM { $_->artists, AS 'artist' }
30 LEFT JOIN { $_->cds, AS 'cd' }
31 ON { $_->cd->artistid eq $_->artist->id }
34 SELECT { $_->artist->name } WHERE { $_->artist->age > 25 }
37 SELECT { $_->cd->name }
38 FROM { $_->cds, AS 'cd' }
39 JOIN { $_->artists, AS 'artist' }
40 ON { $_->cd->artistid eq $_->artist->id }
41 WHERE { $_->artist->age > 25 }
43 DwarnL to_sql(ORDER BY { $_->foo, $_->bar, $_->baz } DESC);
45 my $basic = SELECT { $_->cd->name } FROM { $_->cds, AS 'cd' };
48 FROM { $basic } WHERE { $_->year > 2000 }
52 FROM { $basic } ORDER BY { $_->year }
56 SELECT { $_->cd->name } FROM { $_->cds, AS 'cd' } ORDER BY { $_->year } DESC NULLS LAST
60 SELECT { $_->cd->name }
61 FROM { $_->cds, AS 'cd' }
63 LIMIT { 10 } OFFSET { 10 };
67 make_renderer('LimitOffset');
71 make_renderer('RowNum');
75 make_renderer('RowNumberOver');
84 SELECT { $_->cd->name, $_->artist->name }
85 FROM { $_->cds, AS 'cd' }
86 JOIN { $_->artists, AS 'artist' }
87 ON { $_->cd->artistid eq $_->artist->id }
88 WHERE { $_->artist->age > 25 }
89 ORDER BY { $_->artist->age, $_->cd->id }
90 LIMIT { 10 } OFFSET { 20 };
94 my @cols = qw(name year genre);
97 SELECT { my $cd = $_->cd; map $cd->$_, @cols }
98 FROM { $_->cds, AS 'cd' }