Add tests using select/as to sqlahacks
[dbsrgits/DBIx-Class-Historic.git] / t / sqlahacks / limit_dialects / rownumberover.t
CommitLineData
a5f843e3 1use strict;
2use warnings;
3
4use Test::More;
5use lib qw(t/lib);
6use DBICTest;
7use DBIC::SqlMakerTest;
8
9my $schema = DBICTest->init_schema;
10
11delete $schema->storage->_sql_maker->{_cached_syntax};
12$schema->storage->_sql_maker->limit_dialect ('RowNumberOver');
13
14my $rs_selectas_rno = $schema->resultset ('BooksInLibrary')->search ({}, { '+select' => ['owner.name'], '+as' => ['owner_name'], join => 'owner', rows => 1 });
15
16is_same_sql_bind( $rs_selectas_rno->search({})->as_query,
17 "(SELECT
18 me.id, me.source, me.owner, me.title, me.price,
19 owner.name
20 FROM
21 (SELECT me.*,
22 ROW_NUMBER() OVER( ) AS rno__row__index
23 FROM
24 (SELECT me.id, me.source, me.owner, me.title, me.price, owner.name
25 FROM books me
26 JOIN owners owner ON owner.id = me.owner
27 WHERE ( source = ? )
28 ) me
29 ) me
30 JOIN owners owner ON owner.id = me.owner
31 WHERE rno__row__index BETWEEN 1 AND 1 )",
32 [ [ 'source', 'Library' ] ],
33 );
34
35
36done_testing;