2 use Data::Query::ExprDeclare;
3 use Data::Query::Renderer::SQL::Naive;
10 Moo::Role->create_class_with_roles(
11 'Data::Query::Renderer::SQL::Naive',
12 "Data::Query::Renderer::SQL::Slice::$_[0]"
15 'Data::Query::Renderer::SQL::Naive'
21 my $renderer = make_renderer;
24 my ($sql, @bindp) = @{$renderer->render($_[0])};
25 ($sql, map $_->{value}, @bindp);
28 DwarnL to_sql(SELECT { $_->foo, "bar" });
29 DwarnL to_sql(SELECT { $_->foo, "bar" } FROM { $_->baz });
30 DwarnL to_sql(SELECT { $_->foo } FROM { $_->baz, AS('quux') });
32 SELECT { $_->cd->name } FROM { $_->cds, AS('cd') } JOIN { $_->artists }
35 SELECT { $_->cd->name }
36 FROM { $_->cds, AS 'cd' }
37 JOIN { $_->artists, AS 'artist' }
38 ON { $_->cd->artistid eq $_->artist->id }
41 SELECT { $_->artist->name }
42 FROM { $_->artists, AS 'artist' }
43 LEFT JOIN { $_->cds, AS 'cd' }
44 ON { $_->cd->artistid eq $_->artist->id }
47 SELECT { $_->artist->name } WHERE { $_->artist->age > 25 }
50 SELECT { $_->cd->name }
51 FROM { $_->cds, AS 'cd' }
52 JOIN { $_->artists, AS 'artist' }
53 ON { $_->cd->artistid eq $_->artist->id }
54 WHERE { $_->artist->age > 25 }
56 DwarnL to_sql(ORDER BY { $_->foo, $_->bar, $_->baz } DESC);
58 my $basic = SELECT { $_->cd->name } FROM { $_->cds, AS 'cd' };
61 FROM { $basic } WHERE { $_->year > 2000 }
65 FROM { $basic } ORDER BY { $_->year }
69 SELECT { $_->cd->name } FROM { $_->cds, AS 'cd' } ORDER BY { $_->year }
73 SELECT { $_->cd->name }
74 FROM { $_->cds, AS 'cd' }
76 LIMIT { 10 } OFFSET { 10 };
80 $renderer = make_renderer('LimitOffset');
84 $renderer = make_renderer('RowNum');
88 $renderer = make_renderer('RowNumberOver');
97 SELECT { $_->cd->name, $_->artist->name }
98 FROM { $_->cds, AS 'cd' }
99 JOIN { $_->artists, AS 'artist' }
100 ON { $_->cd->artistid eq $_->artist->id }
101 WHERE { $_->artist->age > 25 }
102 ORDER BY { $_->artist->age, $_->cd->id }
103 LIMIT { 10 } OFFSET { 20 };