From: Rob Kinyon Date: Fri, 31 Jul 2009 20:41:01 +0000 (+0000) Subject: Added MooseX::Traits to Makefile.PL X-Git-Tag: v0.08109~48^2~12 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=6a05068a32e17893a96dd937b7daeb7961704dcc;p=dbsrgits%2FDBIx-Class.git Added MooseX::Traits to Makefile.PL --- diff --git a/Makefile.PL b/Makefile.PL index 2c65cfe..6b47c71 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -86,6 +86,7 @@ my %force_requires_if_author = ( # t/93storage_replication.t 'Moose', => 0.87, 'MooseX::AttributeHelpers' => 0.21, + 'MooseX::Traits', => 0.06, 'MooseX::Types', => 0.16, 'namespace::clean' => 0.11, 'Hash::Merge', => 0.11, diff --git a/t/count/prefetch.t b/t/count/prefetch.t index 2032a4b..1103c56 100644 --- a/t/count/prefetch.t +++ b/t/count/prefetch.t @@ -8,7 +8,7 @@ use DBICTest; use DBIC::SqlMakerTest; use DBIC::DebugObj; -plan tests => 6; +plan tests => 9; my $schema = DBICTest->init_schema(); @@ -37,6 +37,31 @@ my $schema = DBICTest->init_schema(); ); } +# collapsing prefetch with distinct +{ + my $rs = $schema->resultset("Artist")->search(undef, {distinct => 1}) + ->search_related('cds')->search_related('genre', + { 'genre.name' => 'foo' }, + { prefetch => q(cds) }, + ); + is ($rs->all, 5, 'Correct number of objects'); + + + my ($sql, @bind); + $schema->storage->debugobj(DBIC::DebugObj->new(\$sql, \@bind)); + $schema->storage->debug(1); + + + is ($rs->count, 5, 'Correct count'); + + is_same_sql_bind ( + $sql, + \@bind, + 'SELECT COUNT( * ) FROM (SELECT cds.cdid FROM artist me JOIN cd cds ON cds.artist = me.artistid LEFT JOIN track tracks ON tracks.cd = cds.cdid JOIN artist artist ON artist.artistid = cds.artist WHERE tracks.position = ? OR tracks.position = ? GROUP BY cds.cdid) count_subq', + [ qw/'1' '2'/ ], + ); +} + # non-collapsing prefetch (no multi prefetches) { my $rs = $schema->resultset("CD")