Argh.. committing missing test file for load_namespaces tests
[dbsrgits/DBIx-Class.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
a5f843e3 11$schema->storage->_sql_maker->limit_dialect ('RowNumberOver');
12
41eac664 13my $rs_selectas_col = $schema->resultset ('BooksInLibrary')->search ({}, {
14 '+select' => ['owner.name'],
15 '+as' => ['owner.name'],
16 join => 'owner',
17 rows => 1,
18});
a5f843e3 19
41eac664 20is_same_sql_bind(
21 $rs_selectas_col->as_query,
22 '(
23 SELECT me.id, me.source, me.owner, me.title, me.price,
24 owner.name
25 FROM (
26 SELECT me.*,
27 ROW_NUMBER() OVER( ) AS rno__row__index
28 FROM (
29 SELECT me.id, me.source, me.owner, me.title, me.price,
30 owner.name
31 FROM books me
32 JOIN owners owner ON owner.id = me.owner
33 WHERE ( source = ? )
34 ) me
35 ) me
36 JOIN owners owner ON owner.id = me.owner
37 WHERE rno__row__index BETWEEN 1 AND 1
38 )',
39 [ [ 'source', 'Library' ] ],
40);
41
42
43my $rs_selectas_rel = $schema->resultset ('BooksInLibrary')->search ({}, {
44 '+select' => ['owner.name'],
45 '+as' => ['owner_name'],
46 join => 'owner',
47 rows => 1
48});
49
50is_same_sql_bind(
51 $rs_selectas_rel->as_query,
52 '(
53 SELECT me.id, me.source, me.owner, me.title, me.price,
54 owner.name
55 FROM (
56 SELECT me.*,
57 ROW_NUMBER() OVER( ) AS rno__row__index
58 FROM (
59 SELECT me.id, me.source, me.owner, me.title, me.price,
60 owner.name
61 FROM books me
62 JOIN owners owner ON owner.id = me.owner
63 WHERE ( source = ? )
64 ) me
65 ) me
66 JOIN owners owner ON owner.id = me.owner
67 WHERE rno__row__index BETWEEN 1 AND 1
68 )',
69 [ [ 'source', 'Library' ] ],
70);
a5f843e3 71
72done_testing;