use Test::More;
use lib qw(t/lib);
use DBICTest;
+use Data::Dumper;
my $schema = DBICTest->init_schema();
eval "use DBD::SQLite";
plan $@
? ( skip_all => 'needs DBD::SQLite for testing' )
- : ( tests => 47 );
+ : ( tests => 49 );
}
# figure out if we've got a version of sqlite that is older than 3.2.6, in
is($rs->first->name, 'We Are Goth', 'Correct record returned');
-$rs = $schema->resultset("CD")->search(
- { 'artist.name' => 'Caterwauler McCrae' },
- { prefetch => [ qw/artist liner_notes/ ],
- order_by => 'me.cdid' });
+# bug in 0.07000 caused attr (join/prefetch) to be modifed by search
+# so we check the search & attr arrays are not modified
+my $search = { 'artist.name' => 'Caterwauler McCrae' };
+my $attr = { prefetch => [ qw/artist liner_notes/ ],
+ order_by => 'me.cdid' };
+my $search_str = Dumper($search);
+my $attr_str = Dumper($attr);
+
+$rs = $schema->resultset("CD")->search($search, $attr);
+is(Dumper($search), $search_str, 'Search hash untouched after search()');
+is(Dumper($attr), $attr_str, 'Attribute hash untouched after search()');
cmp_ok($rs + 0, '==', 3, 'Correct number of records returned');
my $queries = 0;
$tree_like = eval { $schema->resultset('TreeLike')->search(
{ 'children.id' => 2, 'children_2.id' => 5 },
{ join => [qw/children children/] }
- )->search_related('children', { 'children_3.id' => 6 }, { prefetch => 'children' }
+ )->search_related('children', { 'children_4.id' => 6 }, { prefetch => 'children' }
)->first->children->first; };
is(eval { $tree_like->name }, 'fong', 'Tree with multiple has_many joins ok');
})->search_related('tracks')->first;
};
-like( $sql, qr/^SELECT tracks\.trackid/, "collapsed join didn't add _2 to alias" );
+like( $sql, qr/^SELECT tracks_2\.trackid/, "join not collapsed for search_related" );
$schema->storage->debug($orig_debug);
$schema->storage->debugobj->callback(undef);