X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FPK%2FAuto.pm;h=b4d509cb3d4e0131ba07647178b11e101426a14d;hb=534521dac62f6ab58e83a42d4e8e3cb586db464b;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..b4d509c 100644 --- a/lib/DBIx/Class/PK/Auto.pm +++ b/lib/DBIx/Class/PK/Auto.pm @@ -1,25 +1,55 @@ package DBIx::Class::PK::Auto; +#use base qw/DBIx::Class::PK/; +use base qw/DBIx::Class/; use strict; use warnings; -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 }); - die "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->store_column($pri => $id); - } - return $ret; -} - 1; + +__END__ + +=head1 NAME + +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. + +PK::Auto is now part of Core. + +See L for details of component interactions. + +=head1 LOGIC + +C does this by letting the database assign the primary key field and +fetching the assigned value afterwards. + +=head1 METHODS + +=head2 insert + +The code that was handled here is now in Row for efficiency. + +=head2 sequence + +The code that was handled here is now in ResultSource, and is being proxied to +Row as well. + +=head1 FURTHER QUESTIONS? + +Check the list of L. + +=head1 COPYRIGHT AND LICENSE + +This module is free software L +by the L. You can +redistribute it and/or modify it under the same terms as the +L.