X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FPK%2FAuto.pm;h=26bd6df729e3788ee54825d4344079e85447df0f;hb=3334d204fcbbddedd73a7f63a285bdda9cb3e031;hp=ff4ed69822185406b35543a1b03bd86fc4f8e5ef;hpb=78bab9cad621ac5e3d1d12b02c41d662dec7a22a;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/PK/Auto.pm b/lib/DBIx/Class/PK/Auto.pm index ff4ed69..26bd6df 100644 --- a/lib/DBIx/Class/PK/Auto.pm +++ b/lib/DBIx/Class/PK/Auto.pm @@ -1,60 +1,52 @@ package DBIx::Class::PK::Auto; +#use base qw/DBIx::Class::PK/; +use base qw/DBIx::Class/; use strict; use warnings; -=head1 NAME +1; + +=head1 NAME -DBIx::Class::PK::Auto - Automatic Primary Key class +DBIx::Class::PK::Auto - Automatic primary key class =head1 SYNOPSIS +use base 'DBIx::Class::Core'; +__PACKAGE__->set_primary_key('id'); + =head1 DESCRIPTION -This class overrides the insert method to get automatically -incremented primary keys. +This class overrides the insert method to get automatically incremented primary +keys. -=head1 METHODS +PK::Auto is now part of Core. -=over 4 +See L for details of component interactions. -=item insert +=head1 LOGIC -Overrides insert so that it will get the value of autoincremented -primary keys. +C does this by letting the database assign the primary key field and +fetching the assigned value afterwards. -=cut +=head1 METHODS -sub insert { - my ($self, @rest) = @_; - my $ret = $self->NEXT::ACTUAL::insert(@rest); - my ($pri, $too_many) = - (grep { $self->_primaries->{$_}{'auto_increment'} } - keys %{ $self->_primaries }) - || (keys %{ $self->_primaries }); - $self->throw( "More than one possible key found for auto-inc on ".ref $self ) - if $too_many; - unless (defined $self->get_column($pri)) { - $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; -} +=head2 insert -1; +The code that was handled here is now in Row for efficiency. -=back +=head2 sequence -=head1 AUTHORS +The code that was handled here is now in ResultSource, and is being proxied to +Row as well. -Matt S. Trout +=head1 AUTHOR AND CONTRIBUTORS + +See L and L in DBIx::Class =head1 LICENSE You may distribute this code under the same terms as Perl itself. =cut -