Changeset 164

Show
Ignore:
Timestamp:
05/04/06 00:15:17 (4 years ago)
Author:
sky
Message:

r167@crucially-3 (orig r1198): ykerherve | 2006-04-06 06:41:36 -0700
Created a new changed_cols_and_pk() method on the object
and update the behaviour of changed_cols() to by default exclude PKs


Location:
branches/archetype-0.4/lib/Data/ObjectDriver
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/archetype-0.4/lib/Data/ObjectDriver/BaseObject.pm

    r163 r164  
    186186} 
    187187 
     188sub changed_cols_and_pk { 
     189    my $obj = shift; 
     190    keys %{$obj->{changed_cols}}; 
     191} 
     192 
    188193sub changed_cols { 
    189194    my $obj = shift; 
    190     keys %{$obj->{changed_cols}}; 
     195    my $pk = $obj->primary_key_tuple; 
     196    my %pk = map { $_ => 1 } @$pk; 
     197    grep !$pk{$_}, $obj->changed_cols_and_pk; 
    191198} 
    192199 
     
    196203        return exists $obj->{changed_cols}->{$_[0]}; 
    197204    } else { 
    198         my $pk = $obj->primary_key_tuple; 
    199         my %pk = map { $_ => 1 } @$pk; 
    200         my @changed_cols = grep !$pk{$_}, $obj->changed_cols; 
    201         return @changed_cols > 0; 
     205        return $obj->changed_cols > 0; 
    202206    } 
    203207} 
  • branches/archetype-0.4/lib/Data/ObjectDriver/Driver/DBI.pm

    r163 r164  
    296296 
    297297    my $cols = $obj->column_names; 
    298     my $pk = $obj->primary_key_tuple; 
    299     my %pk = map { $_ => 1 } @$pk; 
    300     my @changed_cols = grep !$pk{$_}, $obj->changed_cols; 
     298    my @changed_cols = $obj->changed_cols; 
    301299 
    302300    ## If there's no updated columns, update() is no-op