allow optional hashref as final arg to helpers
[dbsrgits/Data-Query.git] / t / example.t
CommitLineData
aad6ee1b 1use strictures;
aad6ee1b 2use Devel::Dwarn;
3
d605d949 4BEGIN { require 't/example.to_sql' };
aad6ee1b 5
d605d949 6make_renderer;
aad6ee1b 7
a609e537 8DwarnL to_sql(SELECT { $_->foo, "bar" });
9DwarnL to_sql(SELECT { $_->foo, "bar" } FROM { $_->baz });
10DwarnL to_sql(SELECT { $_->foo } FROM { $_->baz, AS('quux') });
11DwarnL to_sql(
d605d949 12 SELECT { $_->cd->name } FROM { $_->cds, AS('cd') }
aad6ee1b 13);
d605d949 14
15my $w_join =
aad6ee1b 16 SELECT { $_->cd->name }
17 FROM { $_->cds, AS 'cd' }
18 JOIN { $_->artists, AS 'artist' }
d605d949 19 ON { $_->cd->artistid eq $_->artist->id };
20
21DwarnL to_sql($w_join);
22
23Dwarn to_sql(FROM { $w_join } WHERE { $_->cd->year > 2000 });
24
a609e537 25DwarnL to_sql(
aad6ee1b 26 SELECT { $_->artist->name }
27 FROM { $_->artists, AS 'artist' }
28 LEFT JOIN { $_->cds, AS 'cd' }
29 ON { $_->cd->artistid eq $_->artist->id }
30);
a609e537 31DwarnL to_sql(
4e0c6139 32 SELECT { $_->artist->name } WHERE { $_->artist->age > 25 }
33);
a609e537 34DwarnL to_sql(
4e0c6139 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);
a609e537 41DwarnL to_sql(ORDER BY { $_->foo, $_->bar, $_->baz } DESC);
9f0ad8f6 42
43my $basic = SELECT { $_->cd->name } FROM { $_->cds, AS 'cd' };
44
a609e537 45DwarnL to_sql(
9f0ad8f6 46 FROM { $basic } WHERE { $_->year > 2000 }
47);
48
a609e537 49DwarnL to_sql(
9f0ad8f6 50 FROM { $basic } ORDER BY { $_->year }
51);
52
a609e537 53DwarnL to_sql(
e3335558 54 SELECT { $_->cd->name } FROM { $_->cds, AS 'cd' } ORDER BY { $_->year } DESC NULLS LAST
9f0ad8f6 55);
d2773428 56
a609e537 57my $lo =
d2773428 58 SELECT { $_->cd->name }
59 FROM { $_->cds, AS 'cd' }
60 ORDER BY { $_->year }
a609e537 61 LIMIT { 10 } OFFSET { 10 };
62
63sub render_orders {
64
d605d949 65 make_renderer('LimitOffset');
a609e537 66
67 DwarnL to_sql($lo);
68
d605d949 69 make_renderer('RowNum');
a609e537 70
71 DwarnL to_sql($lo);
72
d605d949 73 make_renderer('RowNumberOver');
a609e537 74
75 DwarnL to_sql($lo);
76
77}
78
79render_orders();
80
81$lo =
82 SELECT { $_->cd->name, $_->artist->name }
83 FROM { $_->cds, AS 'cd' }
84 JOIN { $_->artists, AS 'artist' }
85 ON { $_->cd->artistid eq $_->artist->id }
86 WHERE { $_->artist->age > 25 }
87 ORDER BY { $_->artist->age, $_->cd->id }
88 LIMIT { 10 } OFFSET { 20 };
89
90render_orders();
d605d949 91
92my @cols = qw(name year genre);
93
94DwarnL to_sql(
95 SELECT { my $cd = $_->cd; map $cd->$_, @cols }
96 FROM { $_->cds, AS 'cd' }
97);