summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kanat-Alexander <mkanat@bugzilla.org>2010-02-20 20:56:59 +0100
committerMax Kanat-Alexander <mkanat@bugzilla.org>2010-02-20 20:56:59 +0100
commit70a3ca1899e3310a67d20cf8cb7245d7fab5c5f1 (patch)
tree58b7b833b225e6a4a02b50b39cc4866b5ca68610
parentabeb296487b58e9f03a3c0eea7b051874014b501 (diff)
downloadbugzilla-70a3ca1899e3310a67d20cf8cb7245d7fab5c5f1.tar.gz
bugzilla-70a3ca1899e3310a67d20cf8cb7245d7fab5c5f1.tar.xz
Bug 519035: Make the FK for series.creator have ON DELETE CASCADE instead
of ON DELETE SET NULL r=LpSolit, a=LpSolit
-rw-r--r--Bugzilla/DB/Schema.pm2
-rw-r--r--Bugzilla/Install/DB.pm11
2 files changed, 12 insertions, 1 deletions
diff --git a/Bugzilla/DB/Schema.pm b/Bugzilla/DB/Schema.pm
index 21c0e7970..082fde7ef 100644
--- a/Bugzilla/DB/Schema.pm
+++ b/Bugzilla/DB/Schema.pm
@@ -1248,7 +1248,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 66461bf45..28f91a23c 100644
--- a/Bugzilla/Install/DB.pm
+++ b/Bugzilla/Install/DB.pm
@@ -598,6 +598,7 @@ sub update_table_definitions {
_add_allows_unconfirmed_to_product_table();
_convert_flagtypes_fks_to_set_null();
_fix_decimal_types();
+ _fix_series_creator_fk();
# 2009-11-14 dkl@redhat.com - Bug 310450
$dbh->bz_add_column('bugs_activity', 'comment_id', {TYPE => 'INT3'});
@@ -3374,6 +3375,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__