]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 543459: Speed up the new duplicates.cgi
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Mon, 1 Feb 2010 23:54:14 +0000 (15:54 -0800)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Mon, 1 Feb 2010 23:54:14 +0000 (15:54 -0800)
r=LpSolit, a=LpSolit

Bugzilla/User.pm
duplicates.cgi

index 06c6be5cb59b64bba5a3f621f964a8fd8e05503b..d1e4694eca1a42668089c4563eba948d34113ff6 100644 (file)
@@ -652,12 +652,13 @@ sub visible_bugs {
         }
 
         $sth->execute(@check_ids);
+        my $use_qa_contact = Bugzilla->params->{'useqacontact'};
         while (my $row = $sth->fetchrow_arrayref) {
             my ($bug_id, $reporter, $owner, $qacontact, $reporter_access, 
                 $cclist_access, $isoncclist, $missinggroup) = @$row;
             $visible_cache->{$bug_id} ||= 
                 ((($reporter == $user_id) && $reporter_access)
-                 || (Bugzilla->params->{'useqacontact'}
+                 || ($use_qa_contact
                      && $qacontact && ($qacontact == $user_id))
                  || ($owner == $user_id)
                  || ($isoncclist && $cclist_access)
index cbc991b7d1108504c3d027a4570336b0f6911d6a..2a52742c64ffe621854a76b963454f46529d6ae1 100755 (executable)
@@ -180,16 +180,17 @@ my %since_dups = @{$dbh->selectcol_arrayref(
     "SELECT dupe_of, COUNT(dupe)
        FROM duplicates INNER JOIN bugs_activity 
                        ON bugs_activity.bug_id = duplicates.dupe 
-      WHERE added = 'DUPLICATE' AND fieldid = ? AND " 
-            . $dbh->sql_to_days('bug_when') . " >= (" 
-            . $dbh->sql_to_days('NOW()') . " - ?)
  GROUP BY dupe_of", {Columns=>[1,2]},
+      WHERE added = 'DUPLICATE' AND fieldid = ? 
+            AND bug_when >= LOCALTIMESTAMP(0) - "
+                . $dbh->sql_interval('?', 'DAY') .
" GROUP BY dupe_of", {Columns=>[1,2]},
     $reso_field_id, $changedsince)};
 add_indirect_dups(\%since_dups, \%dupe_relation);
 
 # Enforce the mostfreqthreshold parameter and the "bug_id" cgi param.
+my $mostfreq = Bugzilla->params->{'mostfreqthreshold'};
 foreach my $id (keys %total_dups) {
-    if ($total_dups{$id} < Bugzilla->params->{'mostfreqthreshold'}) {
+    if ($total_dups{$id} < $mostfreq) {
         delete $total_dups{$id};
         next;
     }