diff options
Diffstat (limited to 'Bugzilla/FlagType.pm')
-rw-r--r-- | Bugzilla/FlagType.pm | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/Bugzilla/FlagType.pm b/Bugzilla/FlagType.pm index c70c1598c..773996b2e 100644 --- a/Bugzilla/FlagType.pm +++ b/Bugzilla/FlagType.pm @@ -185,12 +185,15 @@ sub update { # Silently remove requestees from flags which are no longer # specifically requestable. if (!$self->is_requesteeble) { - my @ids = $dbh->selectrow_array( - "SELECT id FROM flags WHERE type_id = ?", undef, $self->id); - $dbh->do("UPDATE flags SET requestee_id = NULL WHERE " - . $dbh->sql_in('type_id', \@ids)); - foreach my $id (@ids) { - Bugzilla->memcached->clear({ table => 'flags', id => $id }); + my $ids = $dbh->selectcol_arrayref( + 'SELECT id FROM flags WHERE type_id = ? AND requestee_id IS NOT NULL', + undef, $self->id); + + if (@$ids) { + $dbh->do('UPDATE flags SET requestee_id = NULL WHERE ' . $dbh->sql_in('id', $ids)); + foreach my $id (@$ids) { + Bugzilla->memcached->clear({ table => 'flags', id => $id }); + } } } |