X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fsearch%2Fselect_chains.t;h=234439dc4890380cd7be3349eb1f3a95701450de;hb=eb37b376461257fc2faf281c905d14d8bb3a3757;hp=6adbca53b85c069b16133728725f597bb47b25dd;hpb=36fd7f073078f8f36277b467910ab68676361edf;p=dbsrgits%2FDBIx-Class.git diff --git a/t/search/select_chains.t b/t/search/select_chains.t index 6adbca5..234439d 100644 --- a/t/search/select_chains.t +++ b/t/search/select_chains.t @@ -84,22 +84,36 @@ while (@chain) { } # Make sure we don't lose bits even with weird selector specs -$rs = $schema->resultset('CD')->search ({}, { - 'columns' => [ 'me.title' ], -})->search ({}, { - '+select' => \'me.year AS foo', -})->search ({}, { - '+select' => [ \'me.artistid AS bar' ], -})->search ({}, { - '+select' => { count => 'artistid', -as => 'baz' }, -}); +# also check that the default selector list is lazy +$rs = $schema->resultset('CD'); +for my $attr ( + { '+columns' => [ 'me.title' ] }, # this one should be de-duplicated but not the select's + + { '+select' => \'me.year AS foo' }, # duplication of identical select expected (FIXME ?) + { '+select' => \['me.year AS foo'] }, + + { '+select' => [ \'me.artistid AS bar' ] }, + { '+select' => { count => 'artistid', -as => 'baz' } }, +) { + for (qw/columns select as/) { + ok (! exists $rs->{attrs}{$_}, "No eager '$_' attr on fresh resultset" ); + } + + $rs = $rs->search({}, $attr); +} is_same_sql_bind ( $rs->as_query, '( SELECT + me.cdid, + me.artist, me.title, + me.year, + me.genreid, + me.single_track, COUNT( artistid ) AS baz, me.year AS foo, + me.year AS foo, me.artistid AS bar FROM cd me )',