X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FPK%2FAuto.pm;h=43a1ece3239a9a8cc7069777943cf4becf860762;hb=daec44b85cffd777869c9652273670b27625e167;hp=98e3b8911e3871b4258b6c97712dad26f5d4c9fd;hpb=c1d2357300903fa0f4ec7d85c132f04547c4ccba;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/lib/DBIx/Class/PK/Auto.pm b/lib/DBIx/Class/PK/Auto.pm index 98e3b89..43a1ece 100644 --- a/lib/DBIx/Class/PK/Auto.pm +++ b/lib/DBIx/Class/PK/Auto.pm @@ -3,6 +3,31 @@ package DBIx::Class::PK::Auto; use strict; use warnings; +=head1 NAME + +DBIx::Class::PK::Auto - Automatic Primary Key class + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +This class overrides the insert method to get automatically +incremented primary keys. + +You don't want to be using this directly - instead load the appropriate +one for your database, e.g. PK::Auto::SQLite + +=head1 METHODS + +=over 4 + +=item insert + +Overrides insert so that it will get the value of autoincremented +primary keys. + +=cut + sub insert { my ($self, @rest) = @_; my $ret = $self->NEXT::ACTUAL::insert(@rest); @@ -10,16 +35,29 @@ sub insert { (grep { $self->_primaries->{$_}{'auto_increment'} } keys %{ $self->_primaries }) || (keys %{ $self->_primaries }); - die "More than one possible key found for auto-inc on ".ref $self + $self->throw( "More than one possible key found for auto-inc on ".ref $self ) if $too_many; unless (defined $self->get_column($pri)) { - die "Can't auto-inc for $pri on ".ref $self.": no _last_insert_id method" - unless $self->can('_last_insert_id'); - my $id = $self->_last_insert_id; - die "Can't get last insert id" unless $id; + $self->throw( "Can't auto-inc for $pri on ".ref $self.": no _last_insert_id method" ) + unless $self->can('last_insert_id'); + my $id = $self->last_insert_id; + $self->throw( "Can't get last insert id" ) unless $id; $self->store_column($pri => $id); } return $ret; } 1; + +=back + +=head1 AUTHORS + +Matt S. Trout + +=head1 LICENSE + +You may distribute this code under the same terms as Perl itself. + +=cut +