X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fsqlmaker%2Flimit_dialects%2Ffetch_first.t;h=ab3e17034cc3dad0051d9384b82195387b3442b7;hb=7db287353abcf82c4fe856d4636384084ed5c13f;hp=12b980451fb765b25e097331ce246a221bfd68f9;hpb=08a1eaadb08c5c62b6c0892537ef145d3d7df314;p=dbsrgits%2FDBIx-Class.git diff --git a/t/sqlmaker/limit_dialects/fetch_first.t b/t/sqlmaker/limit_dialects/fetch_first.t index 12b9804..ab3e170 100644 --- a/t/sqlmaker/limit_dialects/fetch_first.t +++ b/t/sqlmaker/limit_dialects/fetch_first.t @@ -3,8 +3,7 @@ use warnings; use Test::More; use lib qw(t/lib); -use DBICTest; -use DBIC::SqlMakerTest; +use DBICTest ':DiffSQL'; my $schema = DBICTest->init_schema; @@ -114,6 +113,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 +132,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 +158,7 @@ for my $ord_set ( [ [ { sqlt_datatype => 'varchar', sqlt_size => 100, dbic_colname => 'source' } => 'Library' ] ], ); + } # with groupby @@ -152,11 +166,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, ORDER__BY__001 AS title + 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 +178,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 = ? )