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