*** orig/Class/DBI.pm Sat Mar 18 14:24:09 2006 --- mine/Class/DBI.pm Sat Mar 18 14:23:46 2006 *************** *** 464,469 **** --- 464,470 ---- # We increment instead of setting to 1 because it might be useful to # someone to know how many times a value has changed between updates. for my $col (keys %$vals) { $self->{__Changed}{$col}++; } + for my $col (keys %$vals) { $self->{__OldValues}{$col} = $self->$col unless exists $self->{__OldValues}{$col}; } $self->_attribute_store($vals); } *************** *** 570,575 **** --- 571,577 ---- if @primary_columns == 1; delete $self->{__Changed}; + delete $self->{__OldValues}; my %primary_columns; @primary_columns{@primary_columns} = (); *************** *** 790,795 **** --- 792,798 ---- # delete columns that changed (in case adding to DB modifies them again) $self->_attribute_delete(@changed_cols); delete $self->{__Changed}; + delete $self->{__OldValues}; return 1; } *************** *** 818,823 **** --- 821,827 ---- if $self->autoupdate; $self->_attribute_delete($self->is_changed); delete $self->{__Changed}; + delete $self->{__OldValues}; return 1; }