From d247ef1bcd7506152b99e091f4a8f4251b78c627 Mon Sep 17 00:00:00 2001 From: Byron Jones Date: Mon, 17 Aug 2015 22:29:08 +0800 Subject: Bug 981487 - change bugs_fulltext from myisam to innodb --- Bugzilla/Bug.pm | 14 ++++---------- Bugzilla/Constants.pm | 4 ++-- Bugzilla/DB/Schema/Mysql.pm | 2 +- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 389747011..9e4135d1c 100644 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -832,13 +832,11 @@ sub create { stash => $stash, }); - $dbh->bz_commit_transaction(); - # Because MySQL doesn't support transactions on the fulltext table, - # we do this after we've committed the transaction. That way we're - # sure we're inserting a good Bug ID. $bug->_sync_fulltext( new_bug => 1 ); + $dbh->bz_commit_transaction(); + # BMO - some work should happen outside of the transaction block Bugzilla::Hook::process('bug_after_create', { bug => $bug, timestamp => $timestamp }); @@ -1178,17 +1176,13 @@ sub update { delete $user->{bugs_ignored} if $bug_ignored_changed; } - $dbh->bz_commit_transaction(); - - # The only problem with this here is that update() is often called - # in the middle of a transaction, and if that transaction is rolled - # back, this change will *not* be rolled back. As we expect rollbacks - # to be extremely rare, that is OK for us. $self->_sync_fulltext( update_short_desc => $changes->{short_desc}, update_comments => $self->{added_comments} || $self->{comment_isprivate} ); + $dbh->bz_commit_transaction(); + # Remove obsolete internal variables. delete $self->{'_old_assigned_to'}; delete $self->{'_old_qa_contact'}; diff --git a/Bugzilla/Constants.pm b/Bugzilla/Constants.pm index c6359be60..99c2fe70c 100644 --- a/Bugzilla/Constants.pm +++ b/Bugzilla/Constants.pm @@ -535,8 +535,8 @@ use constant INSTALLATION_MODE_NON_INTERACTIVE => 1; # Data about what we require for different databases. use constant DB_MODULE => { - # MySQL 5.0.15 was the first production 5.0.x release. - 'mysql' => {db => 'Bugzilla::DB::Mysql', db_version => '5.0.15', + # Require MySQL 5.6.x for innodb's fulltext support + 'mysql' => {db => 'Bugzilla::DB::Mysql', db_version => '5.6.12', dbd => { package => 'DBD-mysql', module => 'DBD::mysql', diff --git a/Bugzilla/DB/Schema/Mysql.pm b/Bugzilla/DB/Schema/Mysql.pm index 5fc50a986..b0a40586f 100644 --- a/Bugzilla/DB/Schema/Mysql.pm +++ b/Bugzilla/DB/Schema/Mysql.pm @@ -89,7 +89,7 @@ use constant REVERSE_MAPPING => { # as in their db-specific version, so no reverse mapping is needed. }; -use constant MYISAM_TABLES => qw(bugs_fulltext); +use constant MYISAM_TABLES => qw(); #------------------------------------------------------------------------------ sub _initialize { -- cgit v1.2.3-24-g4f1b