X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fsqlmaker%2Flimit_dialects%2Ffetch_first.t;h=c521b528a34c23d42958a3ffefb2cc949afdd90a;hb=2182826a5adfbd6bd8f12576b0bd1ff0ccd6e828;hp=302201c564b889bed6328c63f973fe8e34f899d2;hpb=186ba34c1682108f16b159c06e86132371abadc9;p=dbsrgits%2FDBIx-Class.git diff --git a/t/sqlmaker/limit_dialects/fetch_first.t b/t/sqlmaker/limit_dialects/fetch_first.t index 302201c..c521b52 100644 --- a/t/sqlmaker/limit_dialects/fetch_first.t +++ b/t/sqlmaker/limit_dialects/fetch_first.t @@ -114,6 +114,15 @@ for my $ord_set ( exselect_outer => 'ORDER__BY__001, ORDER__BY__002, ORDER__BY__003', exselect_inner => 'title AS ORDER__BY__001, bar AS ORDER__BY__002, sensors AS ORDER__BY__003', }, + + { + order_by => [ + 'name', + ], + order_inner => 'name', + order_outer => 'name DESC', + order_req => 'name', + }, ) { my $o_sel = $ord_set->{exselect_outer} ? ', ' . $ord_set->{exselect_outer} @@ -124,8 +133,13 @@ for my $ord_set ( : '' ; + my $rs = $books_45_and_owners->search ({}, {order_by => $ord_set->{order_by}}); + + # query actually works + ok( defined $rs->count, 'Query actually works' ); + is_same_sql_bind( - $books_45_and_owners->search ({}, {order_by => $ord_set->{order_by}})->as_query, + $rs->as_query, "(SELECT me.id, me.source, me.owner, me.price, owner__id, owner__name FROM ( SELECT me.id, me.source, me.owner, me.price, owner__id, owner__name$o_sel @@ -145,6 +159,7 @@ for my $ord_set ( [ [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'source' } => 'Library' ] ], ); + } # with groupby @@ -152,11 +167,11 @@ is_same_sql_bind ( $books_45_and_owners->search ({}, { group_by => 'title', order_by => 'title' })->as_query, '(SELECT me.id, me.source, me.owner, me.price, owner.id, owner.name FROM ( - SELECT me.id, me.source, me.owner, me.price + SELECT me.id, me.source, me.owner, me.price, me.title FROM ( - SELECT me.id, me.source, me.owner, me.price, ORDER__BY__001 + SELECT me.id, me.source, me.owner, me.price, me.title FROM ( - SELECT me.id, me.source, me.owner, me.price, title AS ORDER__BY__001 + SELECT me.id, me.source, me.owner, me.price, me.title FROM books me JOIN owners owner ON owner.id = me.owner WHERE ( source = ? ) @@ -164,10 +179,10 @@ is_same_sql_bind ( ORDER BY title FETCH FIRST 5 ROWS ONLY ) me - ORDER BY ORDER__BY__001 DESC + ORDER BY title DESC FETCH FIRST 2 ROWS ONLY ) me - ORDER BY ORDER__BY__001 + ORDER BY title ) me JOIN owners owner ON owner.id = me.owner WHERE ( source = ? )