From 5539de9f747ef48c0ef2bd416d5008bb7a341cfa Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Thu, 6 Aug 2009 14:53:46 +0000 Subject: Bug 508181: UTF-8 table conversion was failing when there were FKs on the column or on related columns Patch by Max Kanat-Alexander r=LpSolit, a=mkanat --- Bugzilla/DB.pm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'Bugzilla/DB.pm') diff --git a/Bugzilla/DB.pm b/Bugzilla/DB.pm index 4bf064375..9ede5bd80 100644 --- a/Bugzilla/DB.pm +++ b/Bugzilla/DB.pm @@ -747,6 +747,28 @@ sub bz_drop_fk { } +sub bz_drop_related_fks { + my ($self, $table, $column) = @_; + my @tables = $self->_bz_real_schema->get_table_list(); + my @dropped; + foreach my $check_table (@tables) { + my @columns = $self->bz_table_columns($check_table); + foreach my $check_column (@columns) { + my $def = $self->bz_column_info($check_table, $check_column); + my $fk = $def->{REFERENCES}; + if ($fk + and (($fk->{TABLE} eq $table and $fk->{COLUMN} eq $column) + or ($check_column eq $column and $check_table eq $table))) + { + $self->bz_drop_fk($check_table, $check_column); + push(@dropped, [$check_table, $check_column, $fk]); + } + } # foreach $column + } # foreach $table + + return \@dropped; +} + sub bz_drop_index { my ($self, $table, $name) = @_; -- cgit v1.2.3-24-g4f1b