Changeset 570


Ignore:
Timestamp:
01/05/10 08:13:33 (14 years ago)
Author:
nanardon
Message:
  • cache some schema data, taking care to delete cache on commit/rollback
Location:
LATMOS-Accounts/lib/LATMOS/Accounts/Bases
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql.pm

    r568 r570  
    9898        $self->log(LA_DEBUG, 'DB::COMMIT'); 
    9999    } 
     100    $self->{__cache} = undef; 
    100101    $self->db->commit; 
    101102} 
     
    109110        $self->log(LA_DEBUG, 'DB::ROLLBACK'); 
    110111    } 
     112    $self->{__cache} = undef; 
    111113    $self->db->rollback; 
    112114} 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/objects.pm

    r568 r570  
    9191sub _inline_fields { 
    9292    my ($self, $for, $base) = @_; 
     93    if ($base->{__cache}{$self->object_table}) { 
     94        return %{$base->{__cache}{$self->object_table}}; 
     95    } 
    9396    my @res; 
    9497    my $sth = $base->db->prepare( 
     
    105108    } 
    106109    my %fields = map { $_ => $_ } @res; 
     110    $base->{__cache}{$self->object_table} = \%fields; 
    107111    %fields 
    108112} 
     
    122126    my @attr; 
    123127    if ($class->has_extended_attributes) { 
     128        if ($base->{__cache}{_extended_field}{$class}) { 
     129            return map { $_ => $_ } 
     130               @{$base->{__cache}{_extended_field}{$class}}; 
     131        } 
    124132        my $sth = $base->db->prepare_cached( 
    125133            sprintf( 
     
    132140            push(@attr, $res->{canonical}); 
    133141        } 
     142        $base->{__cache}{_extended_field}{$class} = \@attr; 
    134143        return map { $_ => $_ } @attr; 
    135144    } else { 
Note: See TracChangeset for help on using the changeset viewer.