Commit | Line | Data |
d5dedbd6 |
1 | use strict; |
2 | use warnings; |
3 | |
4 | use Test::More; |
5 | |
6 | use lib qw(t/lib); |
7 | use DBICTest::Schema; |
8 | use DBIC::SqlMakerTest; |
9 | |
10 | # This is legacy stuff from SQL::Absract::Limit |
11 | # Keep it around just in case someone is using it |
12 | |
13 | { |
14 | package DBICTest::SQLMaker::CustomDialect; |
15 | use base qw/DBIx::Class::SQLMaker/; |
16 | sub emulate_limit { |
17 | my ($self, $sql, $rs_attrs, $limit, $offset) = @_; |
18 | return sprintf ('shiny sproc ((%s), %d, %d)', |
19 | $sql, |
20 | $limit || 0, |
21 | $offset || 0, |
22 | ); |
23 | } |
24 | } |
25 | |
26 | my $s = DBICTest::Schema->connect ('dbi:SQLite::memory:'); |
27 | $s->storage->sql_maker_class ('DBICTest::SQLMaker::CustomDialect'); |
28 | |
29 | my $rs = $s->resultset ('CD'); |
30 | is_same_sql_bind ( |
31 | $rs->search ({}, { rows => 1, offset => 3,columns => [ |
32 | { id => 'foo.id' }, |
33 | { 'bar.id' => 'bar.id' }, |
34 | { bleh => \ 'TO_CHAR (foo.womble, "blah")' }, |
35 | ]})->as_query, |
36 | '( |
37 | shiny sproc ( |
38 | ( |
39 | SELECT foo.id, bar.id, TO_CHAR (foo.womble, "blah") |
40 | FROM cd me |
41 | ), |
42 | 1, |
43 | 3 |
44 | ) |
45 | )', |
46 | [], |
47 | 'Rownum subsel aliasing works correctly' |
48 | ); |
49 | |
50 | done_testing; |