diff options
author | 2019-02-04 19:51:53 -0500 | |
---|---|---|
committer | 2019-02-09 15:52:46 -0500 | |
commit | 3d061531a3f9c6a73da857f8b91282ad78243d76 (patch) | |
tree | b2e39c8957fcdd29e054a6925b8b37b3fc805bf8 | |
parent | no bug - perltidy again, using the latest release (diff) | |
download | bugzilla-3d061531a3f9c6a73da857f8b91282ad78243d76.tar.gz bugzilla-3d061531a3f9c6a73da857f8b91282ad78243d76.tar.bz2 bugzilla-3d061531a3f9c6a73da857f8b91282ad78243d76.zip |
Bug 1526703 - Increase the size of the flagtype id column
-rw-r--r-- | Bugzilla/DB/Schema.pm | 8 | ||||
-rw-r--r-- | Bugzilla/Install/DB.pm | 29 |
2 files changed, 30 insertions, 7 deletions
diff --git a/Bugzilla/DB/Schema.pm b/Bugzilla/DB/Schema.pm index 0ca4a386f..94b8734f3 100644 --- a/Bugzilla/DB/Schema.pm +++ b/Bugzilla/DB/Schema.pm @@ -626,7 +626,7 @@ use constant ABSTRACT_SCHEMA => { FIELDS => [ id => {TYPE => 'MEDIUMSERIAL', NOTNULL => 1, PRIMARYKEY => 1}, type_id => { - TYPE => 'INT2', + TYPE => 'INT3', NOTNULL => 1, REFERENCES => {TABLE => 'flagtypes', COLUMN => 'id', DELETE => 'CASCADE'} }, @@ -662,7 +662,7 @@ use constant ABSTRACT_SCHEMA => { # "flagtypes" defines the types of flags that can be set. flagtypes => { FIELDS => [ - id => {TYPE => 'SMALLSERIAL', NOTNULL => 1, PRIMARYKEY => 1}, + id => {TYPE => 'MEDIUMSERIAL', NOTNULL => 1, PRIMARYKEY => 1}, name => {TYPE => 'varchar(50)', NOTNULL => 1}, description => {TYPE => 'MEDIUMTEXT', NOTNULL => 1}, cc_list => {TYPE => 'varchar(200)'}, @@ -689,7 +689,7 @@ use constant ABSTRACT_SCHEMA => { flaginclusions => { FIELDS => [ type_id => { - TYPE => 'INT2', + TYPE => 'INT3', NOTNULL => 1, REFERENCES => {TABLE => 'flagtypes', COLUMN => 'id', DELETE => 'CASCADE'} }, @@ -711,7 +711,7 @@ use constant ABSTRACT_SCHEMA => { flagexclusions => { FIELDS => [ type_id => { - TYPE => 'INT2', + TYPE => 'INT3', NOTNULL => 1, REFERENCES => {TABLE => 'flagtypes', COLUMN => 'id', DELETE => 'CASCADE'} }, diff --git a/Bugzilla/Install/DB.pm b/Bugzilla/Install/DB.pm index ff04fe794..ab71a5334 100644 --- a/Bugzilla/Install/DB.pm +++ b/Bugzilla/Install/DB.pm @@ -475,9 +475,8 @@ sub update_table_definitions { $dbh->bz_drop_column('profiles', 'refreshed_when'); $dbh->bz_drop_column('groups', 'last_changed'); - # 2006-08-06 LpSolit@gmail.com - Bug 347521 - $dbh->bz_alter_column('flagtypes', 'id', - {TYPE => 'SMALLSERIAL', NOTNULL => 1, PRIMARYKEY => 1}); + # 2019-01-31 dylan@hardison.net - Bug TODO + _update_flagtypes_id(); $dbh->bz_alter_column('keyworddefs', 'id', {TYPE => 'SMALLSERIAL', NOTNULL => 1, PRIMARYKEY => 1}); @@ -820,6 +819,30 @@ sub _update_product_name_definition { } } +sub _update_flagtypes_id { + my $dbh = Bugzilla->dbh; + my @fixes = ( + {table => 'flaginclusions', column => 'type_id'}, + {table => 'flagexclusions', column => 'type_id'}, + {table => 'flags', column => 'type_id'}, + ); + my $flagtypes_def = $dbh->bz_column_info('flagtypes', 'id'); + foreach my $fix (@fixes) { + my $def = $dbh->bz_column_info($fix->{table}, $fix->{column}); + if ($def->{TYPE} eq 'INT2') { + warn "Dropping $fix->{table}\n"; + $dbh->bz_drop_related_fks($fix->{table}, $fix->{column}); + $def->{TYPE} = 'INT3'; + $dbh->bz_alter_column($fix->{table}, $fix->{column}, $def); + } + } + + if ($flagtypes_def->{TYPE} eq 'SMALLSERIAL') { + $flagtypes_def->{TYPE} = 'MEDIUMSERIAL'; + $dbh->bz_alter_column('flagtypes', 'id', $flagtypes_def); + } +} + # A helper for the function below. sub _write_one_longdesc { my ($id, $who, $when, $buffer) = (@_); |