X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FDB2.pm;h=4988c0696eecb4160ba85ce39a79a8702bc6d22f;hb=a49fe31273f9306254dd3d0a29cbf765146fcfe0;hp=ebe106774a5c71dc8800d30ae102834c37a21c59;hpb=a9f32dbced12b2b6c4f8b8a7aa142d5922350830;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/lib/DBIx/Class/Storage/DBI/DB2.pm b/lib/DBIx/Class/Storage/DBI/DB2.pm index ebe1067..4988c06 100644 --- a/lib/DBIx/Class/Storage/DBI/DB2.pm +++ b/lib/DBIx/Class/Storage/DBI/DB2.pm @@ -7,21 +7,29 @@ use base qw/DBIx::Class::Storage::DBI/; # __PACKAGE__->load_components(qw/PK::Auto/); -sub last_insert_id -{ - my ($self) = @_; +sub _dbh_last_insert_id { + my ($self, $dbh, $source, $col) = @_; - my $sth = $self->dbh_do(sub { shift->prepare_cached("VALUES(IDENTITY_VAL_LOCAL())", {}, 3) }); + my $sth = $dbh->prepare_cached('VALUES(IDENTITY_VAL_LOCAL())', {}, 3); $sth->execute(); my @res = $sth->fetchrow_array(); return @res ? $res[0] : undef; - } sub datetime_parser_type { "DateTime::Format::DB2"; } +sub _sql_maker_opts { + my ( $self, $opts ) = @_; + + if ( $opts ) { + $self->{_sql_maker_opts} = { %$opts }; + } + + return { limit_dialect => 'RowNumberOver', %{$self->{_sql_maker_opts}||{}} }; +} + 1; =head1 NAME