1package DBIx::Class::Storage::DBI::DB2;
2
3use strict;
4use warnings;
5
6use base qw/DBIx::Class::Storage::DBI/;
7use mro 'c3';
8
9sub _dbh_last_insert_id {
10    my ($self, $dbh, $source, $col) = @_;
11
12    my $sth = $dbh->prepare_cached('VALUES(IDENTITY_VAL_LOCAL())', {}, 3);
13    $sth->execute();
14
15    my @res = $sth->fetchrow_array();
16
17    return @res ? $res[0] : undef;
18}
19
20sub datetime_parser_type { "DateTime::Format::DB2"; }
21
22sub _sql_maker_opts {
23    my ( $self, $opts ) = @_;
24
25    if ( $opts ) {
26        $self->{_sql_maker_opts} = { %$opts };
27    }
28
29    return { limit_dialect => 'RowNumberOver', %{$self->{_sql_maker_opts}||{}} };
30}
31
321;
33
34=head1 NAME
35
36DBIx::Class::Storage::DBI::DB2 - Automatic primary key class for DB2
37
38=head1 SYNOPSIS
39
40  # In your table classes
41  use base 'DBIx::Class::Core';
42  __PACKAGE__->set_primary_key('id');
43
44=head1 DESCRIPTION
45
46This class implements autoincrements for DB2.
47
48=head1 AUTHORS
49
50Jess Robinson
51
52=head1 LICENSE
53
54You may distribute this code under the same terms as Perl itself.
55
56=cut
57