Commit dec46c31 authored by Max Kanat-Alexander's avatar Max Kanat-Alexander

Bug 543459: Speed up the new duplicates.cgi

r=LpSolit, a=LpSolit
parent fde6d4aa
...@@ -652,12 +652,13 @@ sub visible_bugs { ...@@ -652,12 +652,13 @@ sub visible_bugs {
} }
$sth->execute(@check_ids); $sth->execute(@check_ids);
my $use_qa_contact = Bugzilla->params->{'useqacontact'};
while (my $row = $sth->fetchrow_arrayref) { while (my $row = $sth->fetchrow_arrayref) {
my ($bug_id, $reporter, $owner, $qacontact, $reporter_access, my ($bug_id, $reporter, $owner, $qacontact, $reporter_access,
$cclist_access, $isoncclist, $missinggroup) = @$row; $cclist_access, $isoncclist, $missinggroup) = @$row;
$visible_cache->{$bug_id} ||= $visible_cache->{$bug_id} ||=
((($reporter == $user_id) && $reporter_access) ((($reporter == $user_id) && $reporter_access)
|| (Bugzilla->params->{'useqacontact'} || ($use_qa_contact
&& $qacontact && ($qacontact == $user_id)) && $qacontact && ($qacontact == $user_id))
|| ($owner == $user_id) || ($owner == $user_id)
|| ($isoncclist && $cclist_access) || ($isoncclist && $cclist_access)
......
...@@ -180,16 +180,17 @@ my %since_dups = @{$dbh->selectcol_arrayref( ...@@ -180,16 +180,17 @@ my %since_dups = @{$dbh->selectcol_arrayref(
"SELECT dupe_of, COUNT(dupe) "SELECT dupe_of, COUNT(dupe)
FROM duplicates INNER JOIN bugs_activity FROM duplicates INNER JOIN bugs_activity
ON bugs_activity.bug_id = duplicates.dupe ON bugs_activity.bug_id = duplicates.dupe
WHERE added = 'DUPLICATE' AND fieldid = ? AND " WHERE added = 'DUPLICATE' AND fieldid = ?
. $dbh->sql_to_days('bug_when') . " >= (" AND bug_when >= LOCALTIMESTAMP(0) - "
. $dbh->sql_to_days('NOW()') . " - ?) . $dbh->sql_interval('?', 'DAY') .
GROUP BY dupe_of", {Columns=>[1,2]}, " GROUP BY dupe_of", {Columns=>[1,2]},
$reso_field_id, $changedsince)}; $reso_field_id, $changedsince)};
add_indirect_dups(\%since_dups, \%dupe_relation); add_indirect_dups(\%since_dups, \%dupe_relation);
# Enforce the mostfreqthreshold parameter and the "bug_id" cgi param. # Enforce the mostfreqthreshold parameter and the "bug_id" cgi param.
my $mostfreq = Bugzilla->params->{'mostfreqthreshold'};
foreach my $id (keys %total_dups) { foreach my $id (keys %total_dups) {
if ($total_dups{$id} < Bugzilla->params->{'mostfreqthreshold'}) { if ($total_dups{$id} < $mostfreq) {
delete $total_dups{$id}; delete $total_dups{$id};
next; next;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment