From c427a6f710a60ffbca41b3cca62de949f1407059 Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Thu, 6 Aug 2009 14:59:37 +0000 Subject: Bug 508729: Cache Bugzilla::Status::BUG_STATE_OPEN Patch by Max Kanat-Alexander r=LpSolit, a=LpSolit --- Bugzilla/Status.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Bugzilla/Status.pm b/Bugzilla/Status.pm index 289e17260..4720dc129 100644 --- a/Bugzilla/Status.pm +++ b/Bugzilla/Status.pm @@ -66,6 +66,7 @@ sub VALIDATORS { sub create { my $class = shift; my $self = $class->SUPER::create(@_); + delete Bugzilla->request_cache->{status_bug_state_open}; add_missing_bug_status_transitions(); return $self; } @@ -80,6 +81,7 @@ sub remove_from_db { WHERE old_status = ? OR new_status = ?', undef, $id, $id); $dbh->bz_commit_transaction(); + delete Bugzilla->request_cache->{status_bug_state_open}; } ############################### @@ -120,9 +122,12 @@ sub _check_value { ############################### sub BUG_STATE_OPEN { - # XXX - We should cache this list. my $dbh = Bugzilla->dbh; - return @{$dbh->selectcol_arrayref('SELECT value FROM bug_status WHERE is_open = 1')}; + my $cache = Bugzilla->request_cache; + $cache->{status_bug_state_open} ||= + $dbh->selectcol_arrayref('SELECT value FROM bug_status + WHERE is_open = 1'); + return @{ $cache->{status_bug_state_open} }; } # Tells you whether or not the argument is a valid "open" state. -- cgit v1.2.1