X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fresultset%2Fas_subselect_rs.t;h=c0f811051c302d8968f2c5315c1eba98b6a31fc7;hb=00c12490b0701bf5a4c9db298090f3423f69dabf;hp=61acc59e24fcb0a3d3ef0ef01230fbd5423d67e7;hpb=0e773352a9c6c034dfb2526b8d68bf6ac1e2323b;p=dbsrgits%2FDBIx-Class.git diff --git a/t/resultset/as_subselect_rs.t b/t/resultset/as_subselect_rs.t index 61acc59..c0f8110 100644 --- a/t/resultset/as_subselect_rs.t +++ b/t/resultset/as_subselect_rs.t @@ -27,7 +27,7 @@ my $book_rs = $schema->resultset ('BooksInLibrary')->search ({}, { join => 'owne is_same_sql_bind ( $book_rs->as_subselect_rs->as_query, - '(SELECT me.id, me.source, me.owner, me.title, me.price + '(SELECT me.id, me.source, me.owner, me.title, me.price FROM ( SELECT me.id, me.source, me.owner, me.title, me.price FROM books me @@ -40,4 +40,35 @@ is_same_sql_bind ( 'Resultset-class attributes do not seep outside of the subselect', ); +$schema->storage->debug(1); + +is_same_sql_bind( + $schema->resultset('CD')->search ({}, { + rows => 2, + join => [ 'genre', { artist => 'cds' } ], + distinct => 1, + columns => { + title => 'me.title', + artist__name => 'artist.name', + genre__name => 'genre.name', + cds_for_artist => \ '(SELECT COUNT(*) FROM cds WHERE cd.artist = artist.id)', + }, + order_by => { -desc => 'me.year' }, + })->count_rs->as_query, + '( + SELECT COUNT( * ) + FROM ( + SELECT artist.name AS artist__name, (SELECT COUNT(*) FROM cds WHERE cd.artist = artist.id), genre.name AS genre__name, me.title, me.year + FROM cd me + LEFT JOIN genre genre + ON genre.genreid = me.genreid + JOIN artist artist ON artist.artistid = me.artist + GROUP BY artist.name, (SELECT COUNT(*) FROM cds WHERE cd.artist = artist.id), genre.name, me.title, me.year + LIMIT ? + ) me + )', + [ [{ sqlt_datatype => 'integer' } => 2 ] ], +); + + done_testing;