File: custom.t

package info (click to toggle)
libdbix-class-perl 0.08196-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 4,424 kB
  • sloc: perl: 22,328; sql: 362; makefile: 10
file content (50 lines) | stat: -rw-r--r-- 1,078 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
use strict;
use warnings;

use Test::More;

use lib qw(t/lib);
use DBICTest;
use DBICTest::Schema;
use DBIC::SqlMakerTest;

# This is legacy stuff from SQL::Absract::Limit
# Keep it around just in case someone is using it

{
  package DBICTest::SQLMaker::CustomDialect;
  use base qw/DBIx::Class::SQLMaker/;
  sub emulate_limit {
    my ($self, $sql, $rs_attrs, $limit, $offset) = @_;
    return sprintf ('shiny sproc ((%s), %d, %d)',
      $sql,
      $limit || 0,
      $offset || 0,
    );
  }
}
my $s = DBICTest::Schema->connect (DBICTest->_database);
$s->storage->sql_maker_class ('DBICTest::SQLMaker::CustomDialect');

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,
  '(
    shiny sproc (
      (
        SELECT foo.id, bar.id, TO_CHAR (foo.womble, "blah")
          FROM cd me
      ),
      1,
      3
    )
  )',
  [],
  'Rownum subsel aliasing works correctly'
);

done_testing;