2 use Data::Query::ExprDeclare;
3 use Data::Query::Renderer::SQL::Naive;
7 my $renderer = Data::Query::Renderer::SQL::Naive->new;
10 my ($sql, @bindp) = @{$renderer->render($_[0])};
11 ($sql, map $_->{value}, @bindp);
14 DwarnL render_expr(SELECT { $_->foo, "bar" });
15 DwarnL render_expr(SELECT { $_->foo, "bar" } FROM { $_->baz });
16 DwarnL render_expr(SELECT { $_->foo } FROM { $_->baz, AS('quux') });
18 SELECT { $_->cd->name } FROM { $_->cds, AS('cd') } JOIN { $_->artists }
21 SELECT { $_->cd->name }
22 FROM { $_->cds, AS 'cd' }
23 JOIN { $_->artists, AS 'artist' }
24 ON { $_->cd->artistid eq $_->artist->id }
27 SELECT { $_->artist->name }
28 FROM { $_->artists, AS 'artist' }
29 LEFT JOIN { $_->cds, AS 'cd' }
30 ON { $_->cd->artistid eq $_->artist->id }
33 SELECT { $_->artist->name } WHERE { $_->artist->age > 25 }
36 SELECT { $_->cd->name }
37 FROM { $_->cds, AS 'cd' }
38 JOIN { $_->artists, AS 'artist' }
39 ON { $_->cd->artistid eq $_->artist->id }
40 WHERE { $_->artist->age > 25 }
42 DwarnL render_expr(ORDER BY { $_->foo, $_->bar, $_->baz } DESC);
44 my $basic = SELECT { $_->cd->name } FROM { $_->cds, AS 'cd' };
47 FROM { $basic } WHERE { $_->year > 2000 }
51 FROM { $basic } ORDER BY { $_->year }
55 SELECT { $_->cd->name } FROM { $_->cds, AS 'cd' } ORDER BY { $_->year }
58 $renderer = Moo::Role->create_class_with_roles(
59 'Data::Query::Renderer::SQL::Naive',
60 'Data::Query::Renderer::SQL::Slice::LimitOffset'
64 SELECT { $_->cd->name }
65 FROM { $_->cds, AS 'cd' }
67 LIMIT { 10 } OFFSET { 10 }