Commit 27bb0580 authored by Simon Green's avatar Simon Green

Bug 903895 - Allow more than 32k components

r=gerv, a=sgreen
parent 7450b476
...@@ -254,7 +254,7 @@ use constant ABSTRACT_SCHEMA => { ...@@ -254,7 +254,7 @@ use constant ABSTRACT_SCHEMA => {
REFERENCES => {TABLE => 'profiles', REFERENCES => {TABLE => 'profiles',
COLUMN => 'userid'}}, COLUMN => 'userid'}},
version => {TYPE => 'varchar(64)', NOTNULL => 1}, version => {TYPE => 'varchar(64)', NOTNULL => 1},
component_id => {TYPE => 'INT2', NOTNULL => 1, component_id => {TYPE => 'INT3', NOTNULL => 1,
REFERENCES => {TABLE => 'components', REFERENCES => {TABLE => 'components',
COLUMN => 'id'}}, COLUMN => 'id'}},
resolution => {TYPE => 'varchar(64)', resolution => {TYPE => 'varchar(64)',
...@@ -634,7 +634,7 @@ use constant ABSTRACT_SCHEMA => { ...@@ -634,7 +634,7 @@ use constant ABSTRACT_SCHEMA => {
REFERENCES => {TABLE => 'products', REFERENCES => {TABLE => 'products',
COLUMN => 'id', COLUMN => 'id',
DELETE => 'CASCADE'}}, DELETE => 'CASCADE'}},
component_id => {TYPE => 'INT2', component_id => {TYPE => 'INT3',
REFERENCES => {TABLE => 'components', REFERENCES => {TABLE => 'components',
COLUMN => 'id', COLUMN => 'id',
DELETE => 'CASCADE'}}, DELETE => 'CASCADE'}},
...@@ -655,7 +655,7 @@ use constant ABSTRACT_SCHEMA => { ...@@ -655,7 +655,7 @@ use constant ABSTRACT_SCHEMA => {
REFERENCES => {TABLE => 'products', REFERENCES => {TABLE => 'products',
COLUMN => 'id', COLUMN => 'id',
DELETE => 'CASCADE'}}, DELETE => 'CASCADE'}},
component_id => {TYPE => 'INT2', component_id => {TYPE => 'INT3',
REFERENCES => {TABLE => 'components', REFERENCES => {TABLE => 'components',
COLUMN => 'id', COLUMN => 'id',
DELETE => 'CASCADE'}}, DELETE => 'CASCADE'}},
...@@ -1069,7 +1069,7 @@ use constant ABSTRACT_SCHEMA => { ...@@ -1069,7 +1069,7 @@ use constant ABSTRACT_SCHEMA => {
REFERENCES => {TABLE => 'profiles', REFERENCES => {TABLE => 'profiles',
COLUMN => 'userid', COLUMN => 'userid',
DELETE => 'CASCADE'}}, DELETE => 'CASCADE'}},
component_id => {TYPE => 'INT2', NOTNULL => 1, component_id => {TYPE => 'INT3', NOTNULL => 1,
REFERENCES => {TABLE => 'components', REFERENCES => {TABLE => 'components',
COLUMN => 'id', COLUMN => 'id',
DELETE => 'CASCADE'}}, DELETE => 'CASCADE'}},
...@@ -1347,7 +1347,7 @@ use constant ABSTRACT_SCHEMA => { ...@@ -1347,7 +1347,7 @@ use constant ABSTRACT_SCHEMA => {
components => { components => {
FIELDS => [ FIELDS => [
id => {TYPE => 'SMALLSERIAL', NOTNULL => 1, id => {TYPE => 'MEDIUMSERIAL', NOTNULL => 1,
PRIMARYKEY => 1}, PRIMARYKEY => 1},
name => {TYPE => 'varchar(64)', NOTNULL => 1}, name => {TYPE => 'varchar(64)', NOTNULL => 1},
product_id => {TYPE => 'INT2', NOTNULL => 1, product_id => {TYPE => 'INT2', NOTNULL => 1,
......
...@@ -711,6 +711,9 @@ sub update_table_definitions { ...@@ -711,6 +711,9 @@ sub update_table_definitions {
# 2013-02-04 dkl@mozilla.com - Bug 824346 # 2013-02-04 dkl@mozilla.com - Bug 824346
_fix_flagclusions_indexes(); _fix_flagclusions_indexes();
# 2013-08-26 sgreen@redhat.com - Bug 903895
_fix_components_primary_key();
################################################################ ################################################################
# New --TABLE-- changes should go *** A B O V E *** this point # # New --TABLE-- changes should go *** A B O V E *** this point #
################################################################ ################################################################
...@@ -1429,9 +1432,9 @@ sub _use_ids_for_products_and_components { ...@@ -1429,9 +1432,9 @@ sub _use_ids_for_products_and_components {
print "Updating the database to use component IDs.\n"; print "Updating the database to use component IDs.\n";
$dbh->bz_add_column("components", "id", $dbh->bz_add_column("components", "id",
{TYPE => 'SMALLSERIAL', NOTNULL => 1, PRIMARYKEY => 1}); {TYPE => 'MEDIUMSERIAL', NOTNULL => 1, PRIMARYKEY => 1});
$dbh->bz_add_column("bugs", "component_id", $dbh->bz_add_column("bugs", "component_id",
{TYPE => 'INT2', NOTNULL => 1}, 0); {TYPE => 'INT3', NOTNULL => 1}, 0);
my %components; my %components;
$sth = $dbh->prepare("SELECT id, value, product_id FROM components"); $sth = $dbh->prepare("SELECT id, value, product_id FROM components");
...@@ -3852,6 +3855,23 @@ sub _fix_flagclusions_indexes { ...@@ -3852,6 +3855,23 @@ sub _fix_flagclusions_indexes {
} }
} }
sub _fix_components_primary_key {
my $dbh = Bugzilla->dbh;
if ($dbh->bz_column_info('components', 'id')->{TYPE} ne 'MEDIUMSERIAL') {
$dbh->bz_drop_related_fks('components', 'id');
$dbh->bz_alter_column("components", "id",
{TYPE => 'MEDIUMSERIAL', NOTNULL => 1, PRIMARYKEY => 1});
$dbh->bz_alter_column("flaginclusions", "component_id",
{TYPE => 'INT3'});
$dbh->bz_alter_column("flagexclusions", "component_id",
{TYPE => 'INT3'});
$dbh->bz_alter_column("bugs", "component_id",
{TYPE => 'INT3', NOTNULL => 1});
$dbh->bz_alter_column("component_cc", "component_id",
{TYPE => 'INT3', NOTNULL => 1});
}
}
1; 1;
__END__ __END__
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment