]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 310325: Workaround MySQL bug incorrectly thinking a column contains NULL values
authormkanat%kerio.com <>
Mon, 19 Dec 2005 02:55:02 +0000 (02:55 +0000)
committermkanat%kerio.com <>
Mon, 19 Dec 2005 02:55:02 +0000 (02:55 +0000)
Patch By Olav Vitters <bugzilla-mozilla@bkor.dhs.org> r=mkanat, a=justdave

Bugzilla/DB/Mysql.pm

index fc5d47e7853b74e156e220ea8a23d02e1ba675fd..538656a555fb57e4b2eb0a5f42d24845e1558d7e 100644 (file)
@@ -262,6 +262,17 @@ sub bz_setup_database {
         print "\nISAM->MyISAM table conversion done.\n\n";
     }
 
+    # There is a bug in MySQL 4.1.0 - 4.1.15 that makes certain SELECT
+    # statements fail after a SHOW TABLE STATUS: 
+    # http://bugs.mysql.com/bug.php?id=13535
+    # This is a workaround, a dummy SELECT to reset the LAST_INSERT_ID.
+    my @tables = $self->bz_table_list_real();
+    if (lsearch(\@tables, 'bugs') != -1
+        && $self->bz_column_info_real("bugs", "bug_id"))
+    {
+        $self->do('SELECT 1 FROM bugs WHERE bug_id IS NULL');
+    }
+
     # Versions of Bugzilla before the existence of Bugzilla::DB::Schema did 
     # not provide explicit names for the table indexes. This means
     # that our upgrades will not be reliable, because we look for the name
@@ -277,7 +288,6 @@ sub bz_setup_database {
     # has existed at least since Bugzilla 2.8, and probably earlier.
     # For fixing the inconsistent naming of Schema indexes,
     # we also check for one of those inconsistently-named indexes.
-    my @tables = $self->bz_table_list_real();
     if ( scalar(@tables) && 
          ($self->bz_index_info_real('bugs', 'assigned_to') ||
           $self->bz_index_info_real('flags', 'flags_bidattid_idx')) )