summaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
authormkanat%bugzilla.org <>2006-11-04 08:11:16 +0100
committermkanat%bugzilla.org <>2006-11-04 08:11:16 +0100
commit9162305edb319289526f4503f5839bb21ea82724 (patch)
tree1c5ae9a0da5898df03413503f0bb2a175badd810 /Bugzilla
parent394a014b635238518511e1c86ecdbdbe70593c5c (diff)
downloadbugzilla-9162305edb319289526f4503f5839bb21ea82724.tar.gz
bugzilla-9162305edb319289526f4503f5839bb21ea82724.tar.xz
Bug 359234: missing indexes on the cc and profiles table cause upgrades to fail
Patch By Noel Cragg <noel@red-bean.com> r=mkanat, a=myk
Diffstat (limited to 'Bugzilla')
-rw-r--r--Bugzilla/Install/DB.pm14
1 files changed, 10 insertions, 4 deletions
diff --git a/Bugzilla/Install/DB.pm b/Bugzilla/Install/DB.pm
index d1d154c53..863ce9bfa 100644
--- a/Bugzilla/Install/DB.pm
+++ b/Bugzilla/Install/DB.pm
@@ -13,6 +13,7 @@
# The Original Code is the Bugzilla Bug Tracking System.
#
# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# Noel Cragg <noel@red-bean.com>
package Bugzilla::Install::DB;
@@ -184,12 +185,16 @@ sub update_table_definitions {
# 2000-03-24 Added unique indexes into the cc and keyword tables. This
# prevents certain database inconsistencies, and, moreover, is required for
# new generalized list code to work.
- if (!$dbh->bz_index_info('cc', 'cc_bug_id_idx')->{TYPE}) {
+ if (!$dbh->bz_index_info('cc', 'cc_bug_id_idx')
+ || !$dbh->bz_index_info('cc', 'cc_bug_id_idx')->{TYPE})
+ {
$dbh->bz_drop_index('cc', 'cc_bug_id_idx');
$dbh->bz_add_index('cc', 'cc_bug_id_idx',
{TYPE => 'UNIQUE', FIELDS => [qw(bug_id who)]});
}
- if (!$dbh->bz_index_info('keywords', 'keywords_bug_id_idx')->{TYPE}) {
+ if (!$dbh->bz_index_info('keywords', 'keywords_bug_id_idx')
+ || !$dbh->bz_index_info('keywords', 'keywords_bug_id_idx')->{TYPE})
+ {
$dbh->bz_drop_index('keywords', 'keywords_bug_id_idx');
$dbh->bz_add_index('keywords', 'keywords_bug_id_idx',
{TYPE => 'UNIQUE', FIELDS => [qw(bug_id keywordid)]});
@@ -752,8 +757,9 @@ sub _add_unique_login_name_index_to_profiles {
# declared to be unique. Sure enough, somehow, I got 22 duplicated entries
# in my database. This code detects that, cleans up the duplicates, and
# then tweaks the table to declare the field to be unique. What a pain.
- if (!$dbh->bz_index_info('profiles', 'profiles_login_name_idx') ||
- !$dbh->bz_index_info('profiles', 'profiles_login_name_idx')->{TYPE}) {
+ if (!$dbh->bz_index_info('profiles', 'profiles_login_name_idx')
+ || !$dbh->bz_index_info('profiles', 'profiles_login_name_idx')->{TYPE})
+ {
print "Searching for duplicate entries in the profiles table...\n";
while (1) {
# This code is weird in that it loops around and keeps doing this