select+join+where
[dbsrgits/Data-Query.git] / t / example.t
CommitLineData
aad6ee1b 1use strictures;
2use Data::Query::ExprDeclare;
3use Data::Query::Renderer::SQL::Naive;
4use Devel::Dwarn;
5
6my $renderer = Data::Query::Renderer::SQL::Naive->new;
7
8sub render_expr {
9 my ($sql, @bindp) = @{$renderer->render($_[0])};
10 ($sql, map $_->{value}, @bindp);
11}
12
13DwarnL render_expr(SELECT { $_->foo, "bar" });
14DwarnL render_expr(SELECT { $_->foo, "bar" } FROM { $_->baz });
15DwarnL render_expr(SELECT { $_->foo } FROM { $_->baz, AS('quux') });
16DwarnL render_expr(
17 SELECT { $_->cd->name } FROM { $_->cds, AS('cd') } JOIN { $_->artists }
18);
19DwarnL render_expr(
20 SELECT { $_->cd->name }
21 FROM { $_->cds, AS 'cd' }
22 JOIN { $_->artists, AS 'artist' }
23 ON { $_->cd->artistid eq $_->artist->id }
24);
25DwarnL 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 31DwarnL render_expr(
32 SELECT { $_->artist->name } WHERE { $_->artist->age > 25 }
33);
34DwarnL 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);