X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FPK.pm;h=cf8a194cc99f7a1fb51b82594c4cdf680d734163;hb=7f52685f7d241ee38e33afed8b01d4a0b808f569;hp=f664cc685d821a93768bc0b932ca8dfe8629cb31;hpb=b9b4e52f923e01eb496eb04a70e82824ecbe9dbe;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/PK.pm b/lib/DBIx/Class/PK.pm index f664cc6..cf8a194 100644 --- a/lib/DBIx/Class/PK.pm +++ b/lib/DBIx/Class/PK.pm @@ -20,42 +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. - -This method can also be used to refresh from storage, retrieving any -changes made since the row was last read from storage. - -=cut - -sub discard_changes { - my ($self) = @_; - delete $self->{_dirty_columns}; - return unless $self->in_storage; # Don't reload if we aren't real! - - if( my $current_storage = $self->get_current_storage) { - - # 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 @@ -71,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 {