Commit | Line | Data |
c0329273 |
1 | BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) } |
2 | |
3d98c75e |
3 | use warnings; |
4a233f30 |
4 | use strict; |
f1952f5c |
5 | |
6 | use Test::More; |
c0329273 |
7 | |
a5a7bb73 |
8 | use DBICTest ':DiffSQL'; |
f1952f5c |
9 | |
10 | my $schema = DBICTest->init_schema(); |
11 | |
f1952f5c |
12 | # While this is a rather GIGO case, make sure it behaves as pre-103, |
13 | # as it may result in hard-to-track bugs |
14 | my $cds = $schema->resultset('Artist') |
15 | ->search_related ('cds') |
16 | ->search ({}, { |
17 | prefetch => [ 'single_track', { single_track => 'cd' } ], |
18 | }); |
19 | |
20 | is_same_sql( |
21 | ${$cds->as_query}->[0], |
22 | '( |
23 | SELECT |
24 | cds.cdid, cds.artist, cds.title, cds.year, cds.genreid, cds.single_track, |
3d98c75e |
25 | single_track.trackid, single_track.cd, single_track.position, single_track.title, single_track.last_updated_on, single_track.last_updated_at, |
26 | single_track_2.trackid, single_track_2.cd, single_track_2.position, single_track_2.title, single_track_2.last_updated_on, single_track_2.last_updated_at, |
f1952f5c |
27 | cd.cdid, cd.artist, cd.title, cd.year, cd.genreid, cd.single_track |
28 | FROM artist me |
95c73ab2 |
29 | JOIN cd cds ON cds.artist = me.artistid |
f1952f5c |
30 | LEFT JOIN track single_track ON single_track.trackid = cds.single_track |
31 | LEFT JOIN track single_track_2 ON single_track_2.trackid = cds.single_track |
32 | LEFT JOIN cd cd ON cd.cdid = single_track_2.cd |
33 | )', |
34 | ); |
574dd7c9 |
35 | |
36 | done_testing; |