X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FPK%2FAuto.pm;h=b4d509cb3d4e0131ba07647178b11e101426a14d;hb=6c5aa1fbffdc9e5679d2f68780b11a9569ec1993;hp=24f88107439d7767ee0453541eb571a4dedc5f6a;hpb=772547820db1ef7538e36902bd728c6afc11bde8;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/PK/Auto.pm b/lib/DBIx/Class/PK/Auto.pm index 24f8810..b4d509c 100644 --- a/lib/DBIx/Class/PK/Auto.pm +++ b/lib/DBIx/Class/PK/Auto.pm @@ -5,13 +5,17 @@ use base qw/DBIx::Class/; use strict; use warnings; -=head1 NAME +1; + +__END__ + +=head1 NAME DBIx::Class::PK::Auto - Automatic primary key class =head1 SYNOPSIS -__PACKAGE__->load_components(qw/PK::Auto Core/); +use base 'DBIx::Class::Core'; __PACKAGE__->set_primary_key('id'); =head1 DESCRIPTION @@ -19,9 +23,9 @@ __PACKAGE__->set_primary_key('id'); This class overrides the insert method to get automatically incremented primary keys. - __PACKAGE__->load_components(qw/PK::Auto Core/); +PK::Auto is now part of Core. -Note that C is specified as the leftmost argument. +See L for details of component interactions. =head1 LOGIC @@ -32,51 +36,20 @@ fetching the assigned value afterwards. =head2 insert -Overrides C so that it will get the value of autoincremented primary -keys. - -=cut - -sub insert { - my ($self, @rest) = @_; - my $ret = $self->next::method(@rest); - - my ($pri, $too_many) = grep { !defined $self->get_column($_) } $self->primary_columns; - return $ret unless defined $pri; # if all primaries are already populated, skip auto-inc - $self->throw_exception( "More than one possible key found for auto-inc on ".ref $self ) - if defined $too_many; - - my $storage = $self->result_source->storage; - $self->throw_exception( "Missing primary key but Storage doesn't support last_insert_id" ) unless $storage->can('last_insert_id'); - my $id = $storage->last_insert_id($self->result_source,$pri); - $self->throw_exception( "Can't get last insert id" ) unless $id; - $self->store_column($pri => $id); - - return $ret; -} +The code that was handled here is now in Row for efficiency. =head2 sequence -Manually define the correct sequence for your table, to avoid the overhead -associated with looking up the sequence automatically. - -=cut - -sub sequence { - my ($self,$seq) = @_; - foreach my $pri ($self->primary_columns) { - $self->column_info($pri)->{sequence} = $seq; - } -} - -1; - -=head1 AUTHORS +The code that was handled here is now in ResultSource, and is being proxied to +Row as well. -Matt S. Trout +=head1 FURTHER QUESTIONS? -=head1 LICENSE +Check the list of L. -You may distribute this code under the same terms as Perl itself. +=head1 COPYRIGHT AND LICENSE -=cut +This module is free software L +by the L. You can +redistribute it and/or modify it under the same terms as the +L.