X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FPK.pm;h=cf8a194cc99f7a1fb51b82594c4cdf680d734163;hb=41df629c7a94f2731404ec11d224e968c16e6e94;hp=5be483325f8de54751f396d555394a511075da3d;hpb=d4daee7b54e38e4b3d3d0a77759bddc1a4ede6e5;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/PK.pm b/lib/DBIx/Class/PK.pm index 5be4833..cf8a194 100644 --- a/lib/DBIx/Class/PK.pm +++ b/lib/DBIx/Class/PK.pm @@ -20,45 +20,6 @@ depending on them. =cut -sub _ident_values { - my ($self) = @_; - return (map { $self->{_column_data}{$_} } $self->primary_columns); -} - -=head2 discard_changes ($attrs) - -Re-selects the row from the database, losing any changes that had -been made. - -This method can also be used to refresh from storage, retrieving any -changes made since the row was last read from storage. - -$attrs is expected to be a hashref of attributes suitable for passing as the -second argument to $resultset->search($cond, $attrs); - -=cut - -sub discard_changes { - my ($self, $attrs) = @_; - delete $self->{_dirty_columns}; - return unless $self->in_storage; # Don't reload if we aren't real! - - if( my $current_storage = $self->get_from_storage($attrs)) { - - # Set $self to the current. - %$self = %$current_storage; - - # Avoid a possible infinite loop with - # sub DESTROY { $_[0]->discard_changes } - bless $current_storage, 'Do::Not::Exist'; - - return $self; - } else { - $self->in_storage(0); - return $self; - } -} - =head2 id Returns the primary key(s) for a row. Can't be called as @@ -74,12 +35,28 @@ sub id { return (wantarray ? @pk : $pk[0]); } +sub _ident_values { + my ($self) = @_; + return (map { $self->{_column_data}{$_} } $self->primary_columns); +} + =head2 ID Returns a unique id string identifying a row object by primary key. Used by L and L. +=over + +=item WARNING + +The default C<_create_ID> method used by this function orders the returned +values by the alphabetical order of the primary column names, B +the L method, which follows the same order in which columns were fed +to L. + +=back + =cut sub ID {