]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 299653: sanitycheck.cgi should catch missing bugs.creation_ts - Patch by Frédéric...
authorlpsolit%gmail.com <>
Wed, 14 Dec 2005 04:41:24 +0000 (04:41 +0000)
committerlpsolit%gmail.com <>
Wed, 14 Dec 2005 04:41:24 +0000 (04:41 +0000)
sanitycheck.cgi

index 902832300bf3dbfb963f5474c3fd5d6afae1190f..eeb45902f405933290b37138c57f557158e643c8 100755 (executable)
@@ -187,6 +187,32 @@ if (defined $cgi->param('createmissinggroupcontrolmapentries')) {
     Status("Repaired $counter defective group control settings.");
 }
 
+###########################################################################
+# Fix missing creation date
+###########################################################################
+
+if (defined $cgi->param('repair_creation_date')) {
+    Status("OK, now fixing missing bug creation dates");
+
+    my $bug_ids = $dbh->selectcol_arrayref('SELECT bug_id FROM bugs
+                                            WHERE creation_ts IS NULL');
+
+    my $sth_UpdateDate = $dbh->prepare('UPDATE bugs SET creation_ts = ?
+                                        WHERE bug_id = ?');
+
+    # All bugs have an entry in the 'longdescs' table when they are created,
+    # even if 'commentoncreate' is turned off.
+    my $sth_getDate = $dbh->prepare('SELECT MIN(bug_when) FROM longdescs
+                                     WHERE bug_id = ?');
+
+    foreach my $bugid (@$bug_ids) {
+        $sth_getDate->execute($bugid);
+        my $date = $sth_getDate->fetchrow_array;
+        $sth_UpdateDate->execute($date, $bugid);
+    }
+    Status(scalar(@$bug_ids) . " bugs have been fixed.");
+}
+
 ###########################################################################
 # Send unsent mail
 ###########################################################################
@@ -692,6 +718,11 @@ sub BugCheck {
     }
 }
 
+Status("Checking for bugs with no creation date (which makes them invisible)");
+
+BugCheck("bugs WHERE creation_ts IS NULL", "Bugs with no creation date",
+         "repair_creation_date", "Repair missing creation date for these bugs");
+
 Status("Checking resolution/duplicates");
 
 BugCheck("bugs INNER JOIN duplicates ON bugs.bug_id = duplicates.dupe " .