From: Max Kanat-Alexander Date: Sat, 20 Feb 2010 19:57:47 +0000 (-0800) Subject: Bug 519035: Make the FK for series.creator have ON DELETE CASCADE instead X-Git-Tag: bugzilla-3.6rc1~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=863fc44e65825653e6da18209a6941a0edf77d70;p=thirdparty%2Fbugzilla.git Bug 519035: Make the FK for series.creator have ON DELETE CASCADE instead of ON DELETE SET NULL r=LpSolit, a=LpSolit --- diff --git a/Bugzilla/DB/Schema.pm b/Bugzilla/DB/Schema.pm index 8bee5dfe13..76943fe1ae 100644 --- a/Bugzilla/DB/Schema.pm +++ b/Bugzilla/DB/Schema.pm @@ -1270,7 +1270,7 @@ use constant ABSTRACT_SCHEMA => { creator => {TYPE => 'INT3', REFERENCES => {TABLE => 'profiles', COLUMN => 'userid', - DELETE => 'SET NULL'}}, + DELETE => 'CASCADE'}}, category => {TYPE => 'INT2', NOTNULL => 1, REFERENCES => {TABLE => 'series_categories', COLUMN => 'id', diff --git a/Bugzilla/Install/DB.pm b/Bugzilla/Install/DB.pm index f6d6edcb1d..3ea770be68 100644 --- a/Bugzilla/Install/DB.pm +++ b/Bugzilla/Install/DB.pm @@ -595,6 +595,7 @@ sub update_table_definitions { _add_allows_unconfirmed_to_product_table(); _convert_flagtypes_fks_to_set_null(); _fix_decimal_types(); + _fix_series_creator_fk(); ################################################################ # New --TABLE-- changes should go *** A B O V E *** this point # @@ -3362,6 +3363,16 @@ sub _fix_decimal_types { $dbh->bz_alter_column('longdescs', 'work_time', $type); } +sub _fix_series_creator_fk { + my $dbh = Bugzilla->dbh; + my $fk = $dbh->bz_fk_info('series', 'creator'); + # Change the FK from SET NULL to CASCADE. (It will be re-created + # automatically at the end of all DB changes.) + if ($fk and $fk->{DELETE} eq 'SET NULL') { + $dbh->bz_drop_fk('series', 'creator'); + } +} + 1; __END__