Commit | Line | Data |
aad6ee1b |
1 | use strictures; |
2 | use Data::Query::ExprDeclare; |
3 | use Data::Query::Renderer::SQL::Naive; |
4 | use Devel::Dwarn; |
5 | |
6 | my $renderer = Data::Query::Renderer::SQL::Naive->new; |
7 | |
8 | sub render_expr { |
9 | my ($sql, @bindp) = @{$renderer->render($_[0])}; |
10 | ($sql, map $_->{value}, @bindp); |
11 | } |
12 | |
13 | DwarnL render_expr(SELECT { $_->foo, "bar" }); |
14 | DwarnL render_expr(SELECT { $_->foo, "bar" } FROM { $_->baz }); |
15 | DwarnL render_expr(SELECT { $_->foo } FROM { $_->baz, AS('quux') }); |
16 | DwarnL render_expr( |
17 | SELECT { $_->cd->name } FROM { $_->cds, AS('cd') } JOIN { $_->artists } |
18 | ); |
19 | DwarnL render_expr( |
20 | SELECT { $_->cd->name } |
21 | FROM { $_->cds, AS 'cd' } |
22 | JOIN { $_->artists, AS 'artist' } |
23 | ON { $_->cd->artistid eq $_->artist->id } |
24 | ); |
25 | DwarnL render_expr( |
26 | SELECT { $_->artist->name } |
27 | FROM { $_->artists, AS 'artist' } |
28 | LEFT JOIN { $_->cds, AS 'cd' } |
29 | ON { $_->cd->artistid eq $_->artist->id } |
30 | ); |
4e0c6139 |
31 | DwarnL render_expr( |
32 | SELECT { $_->artist->name } WHERE { $_->artist->age > 25 } |
33 | ); |
34 | DwarnL render_expr( |
35 | SELECT { $_->cd->name } |
36 | FROM { $_->cds, AS 'cd' } |
37 | JOIN { $_->artists, AS 'artist' } |
38 | ON { $_->cd->artistid eq $_->artist->id } |
39 | WHERE { $_->artist->age > 25 } |
40 | ); |