order by somewhat working
[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 );
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 );
41 DwarnL render_expr(ORDER BY { $_->foo, $_->bar, $_->baz } DESC);
42
43 my $basic = SELECT { $_->cd->name } FROM { $_->cds, AS 'cd' };
44
45 DwarnL render_expr(
46   FROM { $basic } WHERE { $_->year > 2000 }
47 );
48
49 DwarnL render_expr(
50   FROM { $basic } ORDER BY { $_->year }
51 );
52
53 DwarnL render_expr(
54   SELECT { $_->cd->name } FROM { $_->cds, AS 'cd' } ORDER BY { $_->year }
55 );