]> 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:45:17 +0000 (04:45 +0000)
committerlpsolit%gmail.com <>
Wed, 14 Dec 2005 04:45:17 +0000 (04:45 +0000)
sanitycheck.cgi

index 8113eb703cd3b344c6250d1b2e54368f1e967c75..276abfd320ea070e82235ca4674b518453374247 100755 (executable)
@@ -245,6 +245,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
 ###########################################################################
@@ -752,6 +778,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 " .