f59dd9882132daf50e846719d4c87c831cb10615
[dbsrgits/Data-Query.git] / t / example.t
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 );