X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fsearch%2Fsubquery.t;h=2d96605db0241b14b292c93e2e829f04a2f847d6;hb=639cf8f9d212c3e950ae5bae680133762c1df0aa;hp=b5e05481255a595bc0d7a4c05b90e8f9a2ea674e;hpb=8996a659891c455154e3c31ec82cdc50583c10ec;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/t/search/subquery.t b/t/search/subquery.t index b5e0548..2d96605 100644 --- a/t/search/subquery.t +++ b/t/search/subquery.t @@ -7,12 +7,7 @@ use Data::Dumper; use Test::More; -BEGIN { - eval "use SQL::Abstract 1.49"; - plan $@ - ? ( skip_all => "Needs SQLA 1.49+" ) - : ( tests => 8 ); -} +plan ( tests => 8 ); use lib qw(t/lib); use DBICTest; @@ -31,7 +26,7 @@ my $cdrs = $schema->resultset('CD'); my ($query, @bind) = @{$$arr}; is_same_sql_bind( $query, \@bind, - "SELECT me.cdid,me.artist,me.title,me.year,me.genreid,me.single_track FROM cd me WHERE artist_id IN ( SELECT id FROM artist me LIMIT 1 )", + "( SELECT me.cdid,me.artist,me.title,me.year,me.genreid,me.single_track FROM cd me WHERE artist_id IN ( SELECT id FROM artist me LIMIT 1 ) )", [], ); } @@ -50,7 +45,7 @@ my $cdrs = $schema->resultset('CD'); my ($query, @bind) = @{$$arr}; is_same_sql_bind( $query, \@bind, - "SELECT (SELECT id FROM cd me LIMIT 1) FROM artist me", + "( SELECT (SELECT id FROM cd me LIMIT 1) FROM artist me )", [], ); } @@ -69,7 +64,7 @@ my $cdrs = $schema->resultset('CD'); my ($query, @bind) = @{$$arr}; is_same_sql_bind( $query, \@bind, - "SELECT me.artistid, me.name, me.rank, me.charfield, (SELECT id FROM cd me LIMIT 1) FROM artist me", + "( SELECT me.artistid, me.name, me.rank, me.charfield, (SELECT id FROM cd me LIMIT 1) FROM artist me )", [], ); } @@ -90,8 +85,10 @@ my $cdrs = $schema->resultset('CD'); my ($query, @bind) = @{$$arr}; is_same_sql_bind( $query, \@bind, - "SELECT cd2.cdid, cd2.artist, cd2.title, cd2.year, cd2.genreid, cd2.single_track FROM (SELECT me.cdid,me.artist,me.title,me.year,me.genreid,me.single_track FROM cd me WHERE id > 20) cd2", - [], + "( SELECT cd2.cdid, cd2.artist, cd2.title, cd2.year, cd2.genreid, cd2.single_track FROM (SELECT me.cdid,me.artist,me.title,me.year,me.genreid,me.single_track FROM cd me WHERE id > ?) cd2 )", + [ + [ 'id', 20 ] + ], ); } @@ -108,7 +105,7 @@ my $cdrs = $schema->resultset('CD'); my ($query, @bind) = @{$$arr}; is_same_sql_bind( $query, \@bind, - "SELECT me.artistid, me.name, me.rank, me.charfield FROM artist me JOIN (SELECT me.artist as cds_artist FROM cd me) cds ON me.artistid = cds_artist", [] + "( SELECT me.artistid, me.name, me.rank, me.charfield FROM artist me JOIN (SELECT me.artist as cds_artist FROM cd me) cds ON me.artistid = cds_artist )", [] ); @@ -137,14 +134,18 @@ my $cdrs = $schema->resultset('CD'); my ($query, @bind) = @{$$arr}; is_same_sql_bind( $query, \@bind, - "SELECT cd2.cdid, cd2.artist, cd2.title, cd2.year, cd2.genreid, cd2.single_track + "( SELECT cd2.cdid, cd2.artist, cd2.title, cd2.year, cd2.genreid, cd2.single_track FROM (SELECT cd3.cdid,cd3.artist,cd3.title,cd3.year,cd3.genreid,cd3.single_track FROM (SELECT me.cdid,me.artist,me.title,me.year,me.genreid,me.single_track - FROM cd me WHERE id < 40) cd3 - WHERE id > 20) cd2", - [], + FROM cd me WHERE id < ?) cd3 + WHERE id > ?) cd2 + )", + [ + [ 'id', 40 ], + [ 'id', 20 ] + ], ); } @@ -162,7 +163,7 @@ my $cdrs = $schema->resultset('CD'); my ($query, @bind) = @{$$arr}; is_same_sql_bind( $query, \@bind, - "SELECT me.cdid, me.artist, me.title, me.year, me.genreid, me.single_track FROM cd me WHERE year = (SELECT MAX(inner.year) FROM cd inner WHERE artistid = me.artistid)", + "( SELECT me.cdid, me.artist, me.title, me.year, me.genreid, me.single_track FROM cd me WHERE year = (SELECT MAX(inner.year) FROM cd inner WHERE artistid = me.artistid) )", [], ); } @@ -182,8 +183,12 @@ my $cdrs = $schema->resultset('CD'); my ($query, @bind) = @{$$arr}; is_same_sql_bind( $query, \@bind, - "SELECT cd2.cdid, cd2.artist, cd2.title, cd2.year, cd2.genreid, cd2.single_track FROM (SELECT me.cdid,me.artist,me.title,me.year,me.genreid,me.single_track FROM cd me WHERE title = 'Thriller') cd2", - [], + "(SELECT cd2.cdid, cd2.artist, cd2.title, cd2.year, cd2.genreid, cd2.single_track FROM (SELECT me.cdid,me.artist,me.title,me.year,me.genreid,me.single_track FROM cd me WHERE title = ?) cd2)", + [ + [ 'title', + 'Thriller' + ] + ], ); }