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