diff options
author | Byron Jones <bjones@mozilla.com> | 2013-12-19 06:44:01 +0100 |
---|---|---|
committer | Byron Jones <bjones@mozilla.com> | 2013-12-19 06:44:01 +0100 |
commit | a11f4823342225b2dbe8b931b90d8d14ba80a236 (patch) | |
tree | 0f8abf8c82525cfdaafae2e50cb3e109d9c7cb87 /Bugzilla/DB.pm | |
parent | eda2c8f8f6fd009e2b2621a4fc839c8697ebcf7b (diff) | |
download | bugzilla-a11f4823342225b2dbe8b931b90d8d14ba80a236.tar.gz bugzilla-a11f4823342225b2dbe8b931b90d8d14ba80a236.tar.xz |
Bug 237498: Add memcached integration
r=dkl, a=sgreen
Diffstat (limited to 'Bugzilla/DB.pm')
-rw-r--r-- | Bugzilla/DB.pm | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/Bugzilla/DB.pm b/Bugzilla/DB.pm index 063e2cf69..df84d9c79 100644 --- a/Bugzilla/DB.pm +++ b/Bugzilla/DB.pm @@ -1362,14 +1362,19 @@ sub _bz_real_schema { my ($self) = @_; return $self->{private_real_schema} if exists $self->{private_real_schema}; - my ($data, $version) = $self->selectrow_array( - "SELECT schema_data, version FROM bz_schema"); + my $bz_schema; + unless ($bz_schema = Bugzilla->memcached->get({ key => 'bz_schema' })) { + $bz_schema = $self->selectrow_arrayref( + "SELECT schema_data, version FROM bz_schema" + ); + Bugzilla->memcached->set({ key => 'bz_schema', value => $bz_schema }); + } (die "_bz_real_schema tried to read the bz_schema table but it's empty!") - if !$data; + if !$bz_schema; - $self->{private_real_schema} = - $self->_bz_schema->deserialize_abstract($data, $version); + $self->{private_real_schema} = + $self->_bz_schema->deserialize_abstract($bz_schema->[0], $bz_schema->[1]); return $self->{private_real_schema}; } @@ -1411,6 +1416,8 @@ sub _bz_store_real_schema { $sth->bind_param(1, $store_me, $self->BLOB_TYPE); $sth->bind_param(2, $schema_version); $sth->execute(); + + Bugzilla->memcached->clear({ key => 'bz_schema' }); } # For bz_populate_enum_tables |