X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FPK.pm;h=cf8a194cc99f7a1fb51b82594c4cdf680d734163;hb=89cb2a63dbf0a2ed3d807dbee4eb1f6030926290;hp=9b9f8a4adbb334ee5fbade204b89dc2281931ab7;hpb=e04df8eca9c7bffa47dc33a45e44634e0b908651;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/PK.pm b/lib/DBIx/Class/PK.pm index 9b9f8a4..cf8a194 100644 --- a/lib/DBIx/Class/PK.pm +++ b/lib/DBIx/Class/PK.pm @@ -20,33 +20,6 @@ depending on them. =cut -sub _ident_values { - my ($self) = @_; - return (map { $self->{_column_data}{$_} } $self->primary_columns); -} - -=head2 discard_changes - -Re-selects the row from the database, losing any changes that had -been made. - -=cut - -sub discard_changes { - my ($self) = @_; - delete $self->{_dirty_columns}; - return unless $self->in_storage; # Don't reload if we aren't real! - my ($reload) = $self->result_source->resultset->find - (map { $self->$_ } $self->primary_columns); - unless ($reload) { # If we got deleted in the mean-time - $self->in_storage(0); - return $self; - } - delete @{$self}{keys %$self}; - @{$self}{keys %$reload} = values %$reload; - return $self; -} - =head2 id Returns the primary key(s) for a row. Can't be called as @@ -62,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 {