]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 340160: Speed up LogActivityEntry()
authorFrédéric Buclin <LpSolit@gmail.com>
Mon, 14 Oct 2013 14:43:44 +0000 (16:43 +0200)
committerFrédéric Buclin <LpSolit@gmail.com>
Mon, 14 Oct 2013 14:43:44 +0000 (16:43 +0200)
r=dkl a=glob

Bugzilla/Bug.pm

index 61731c039819eaa9020dc261ea0687e9a0b5786e..88f1f18bcad30f9f7e05b7bc0390d87a3844c3c8 100644 (file)
@@ -3954,7 +3954,11 @@ sub get_activity {
 # Update the bugs_activity table to reflect changes made in bugs.
 sub LogActivityEntry {
     my ($i, $col, $removed, $added, $whoid, $timestamp, $comment_id) = @_;
-    my $dbh = Bugzilla->dbh;
+    my $sth = Bugzilla->dbh->prepare_cached(
+      'INSERT INTO bugs_activity
+       (bug_id, who, bug_when, fieldid, removed, added, comment_id)
+       VALUES (?, ?, ?, ?, ?, ?, ?)');
+
     # in the case of CCs, deps, and keywords, there's a possibility that someone
     # might try to add or remove a lot of them at once, which might take more
     # space than the activity table allows.  We'll solve this by splitting it
@@ -3978,10 +3982,7 @@ sub LogActivityEntry {
         trick_taint($addstr);
         trick_taint($removestr);
         my $fieldid = get_field_id($col);
-        $dbh->do("INSERT INTO bugs_activity
-                  (bug_id, who, bug_when, fieldid, removed, added, comment_id)
-                  VALUES (?, ?, ?, ?, ?, ?, ?)",
-                  undef, ($i, $whoid, $timestamp, $fieldid, $removestr, $addstr, $comment_id));
+        $sth->execute($i, $whoid, $timestamp, $fieldid, $removestr, $addstr, $comment_id);
     }
 }