X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fsqlmaker%2Flimit_dialects%2Frownum.t;fp=t%2Fsqlmaker%2Flimit_dialects%2Frownum.t;h=34619fcb78bac039c3f57bed2af36f3c217c826b;hb=d5dedbd62928f65a9071b4d9b6d56c6b663a073b;hp=0000000000000000000000000000000000000000;hpb=2149a4e91f82d2f77657c18d4a0b312327987d5d;p=dbsrgits%2FDBIx-Class.git diff --git a/t/sqlmaker/limit_dialects/rownum.t b/t/sqlmaker/limit_dialects/rownum.t new file mode 100644 index 0000000..34619fc --- /dev/null +++ b/t/sqlmaker/limit_dialects/rownum.t @@ -0,0 +1,54 @@ +use strict; +use warnings; + +use Test::More; + +use lib qw(t/lib); +use DBICTest; +use DBIC::SqlMakerTest; + +my $s = DBICTest->init_schema (no_deploy => 1, ); +$s->storage->sql_maker->limit_dialect ('RowNum'); + +my $rs = $s->resultset ('CD'); + +is_same_sql_bind ( + $rs->search ({}, { rows => 1, offset => 3,columns => [ + { id => 'foo.id' }, + { 'bar.id' => 'bar.id' }, + { bleh => \ 'TO_CHAR (foo.womble, "blah")' }, + ]})->as_query, + '(SELECT id, bar__id, bleh + FROM ( + SELECT id, bar__id, bleh, ROWNUM rownum__index + FROM ( + SELECT foo.id AS id, bar.id AS bar__id, TO_CHAR(foo.womble, "blah") AS bleh + FROM cd me + ) me + ) me + WHERE rownum__index BETWEEN 4 AND 4 + )', + [], + 'Rownum subsel aliasing works correctly' +); + +is_same_sql_bind ( + $rs->search ({}, { rows => 1, offset => 3,columns => [ + { id => 'foo.id' }, + { 'ends_with_me.id' => 'ends_with_me.id' }, + ]})->as_query, + '(SELECT id, ends_with_me__id + FROM ( + SELECT id, ends_with_me__id, ROWNUM rownum__index + FROM ( + SELECT foo.id AS id, ends_with_me.id AS ends_with_me__id + FROM cd me + ) me + ) me + WHERE rownum__index BETWEEN 4 AND 4 + )', + [], + 'Rownum subsel aliasing works correctly' +); + +done_testing;