REFERENCES => {TABLE => 'bugs', COLUMN => 'bug_id', DELETE => 'CASCADE'}
},
attach_id => {
- TYPE => 'INT3',
+ TYPE => 'INT5',
REFERENCES =>
{TABLE => 'attachments', COLUMN => 'attach_id', DELETE => 'CASCADE'}
},
attachments => {
FIELDS => [
- attach_id => {TYPE => 'MEDIUMSERIAL', NOTNULL => 1, PRIMARYKEY => 1},
+ attach_id => {TYPE => 'BIGSERIAL', NOTNULL => 1, PRIMARYKEY => 1},
bug_id => {
TYPE => 'INT3',
NOTNULL => 1,
attachments_ispatch_idx => ['ispatch'],
],
},
+
attach_data => {
FIELDS => [
id => {
- TYPE => 'INT3',
+ TYPE => 'INT5',
NOTNULL => 1,
PRIMARYKEY => 1,
REFERENCES =>
],
},
+ attachment_storage_class => {
+ FIELDS => [
+ id => {
+ TYPE => 'INT5',
+ NOTNULL => 1,
+ PRIMARYKEY => 1,
+ REFERENCES =>
+ {TABLE => 'attachments', COLUMN => 'attach_id', DELETE => 'CASCADE'}
+ },
+ storage_class => {TYPE => 'varchar(64)', NOTNULL => 1},
+ extra_data => {TYPE => 'MEDIUMTEXT'}
+ ],
+ },
+
duplicates => {
FIELDS => [
dupe_of => {
REFERENCES => {TABLE => 'bugs', COLUMN => 'bug_id', DELETE => 'CASCADE'}
},
attach_id => {
- TYPE => 'INT3',
+ TYPE => 'INT5',
REFERENCES =>
{TABLE => 'attachments', COLUMN => 'attach_id', DELETE => 'CASCADE'}
},
user_agent => {TYPE => 'TINYTEXT', NOTNULL => 1},
timestamp => {TYPE => 'DATETIME', NOTNULL => 1},
bug_id => {TYPE => 'INT3', NOTNULL => 0},
- attach_id => {TYPE => 'INT4', NOTNULL => 0},
+ attach_id => {TYPE => 'INT5', NOTNULL => 0},
request_url => {TYPE => 'TINYTEXT', NOTNULL => 1},
method => {TYPE => 'TINYTEXT', NOTNULL => 1},
action => {TYPE => 'varchar(20)', NOTNULL => 1},
INT2 => 'smallint',
INT3 => 'mediumint',
INT4 => 'integer',
+ INT5 => 'bigint(20)',
SMALLSERIAL => 'smallint auto_increment',
MEDIUMSERIAL => 'mediumint auto_increment',
INTSERIAL => 'integer auto_increment',
+ BIGSERIAL => 'bigint(20) auto_increment',
TINYTEXT => 'tinytext',
MEDIUMTEXT => 'mediumtext',
INT2 => 'integer',
INT3 => 'integer',
INT4 => 'integer',
+ INT5 => 'integer',
SMALLSERIAL => 'integer',
MEDIUMSERIAL => 'integer',
INTSERIAL => 'integer',
+ BIGSERIAL => 'integer',
TINYTEXT => 'varchar(255)',
MEDIUMTEXT => 'varchar(4000)',
INT2 => 'integer',
INT3 => 'integer',
INT4 => 'integer',
+ INT5 => 'integer',
SMALLSERIAL => 'serial unique',
MEDIUMSERIAL => 'serial unique',
INTSERIAL => 'serial unique',
+ BIGSERIAL => 'serial unique',
TINYTEXT => 'varchar(255)',
MEDIUMTEXT => 'text',
INT2 => 'integer',
INT3 => 'integer',
INT4 => 'integer',
+ INT5 => 'integer',
SMALLSERIAL => 'SERIAL',
MEDIUMSERIAL => 'SERIAL',
INTSERIAL => 'SERIAL',
+ BIGSERIAL => 'SERIAL',
TINYTEXT => 'text',
MEDIUMTEXT => 'text',
# Bug 1576667 - dkl@mozilla.com
_populate_api_keys_creation_ts();
+ # Bug 1588221 - dkl@mozilla.com
+ $dbh->bz_alter_column('bugs_activity', 'attach_id', {TYPE => 'INT5'});
+ $dbh->bz_alter_column('attachments', 'attach_id',
+ {TYPE => 'BIGSERIAL', NOTNULL => 1, PRIMARYKEY => 1});
+ $dbh->bz_alter_column('attach_data', 'id',
+ {TYPE => 'INT5', NOTNULL => 1, PRIMARYKEY => 1});
+ $dbh->bz_alter_column('flags', 'attach_id', {TYPE => 'INT5'});
+ $dbh->bz_alter_column('user_request_log', 'attach_id', {TYPE => 'INT5'});
+ _populate_attachment_storage_class();
+
+
################################################################
# New --TABLE-- changes should go *** A B O V E *** this point #
################################################################
{TYPE => 'DATETIME', NOTNULL => 1});
}
+sub _populate_attachment_storage_class {
+ my $dbh = Bugzilla->dbh;
+
+ my $attach_count
+ = $dbh->selectrow_array('SELECT COUNT(attach_id) FROM attachments');
+ my $class_count
+ = $dbh->selectrow_array('SELECT COUNT(id) FROM attachment_storage_class');
+
+ # Return if we have already made these changes
+ if ($attach_count != $class_count) {
+ print "Populating attachments_storage_class table...\n";
+ $dbh->do("
+ INSERT INTO attachment_storage_class (id, storage_class)
+ SELECT attachments.attach_id, 'database' FROM attachments
+ WHERE NOT EXISTS (SELECT 1 FROM attachment_storage_class WHERE id = attachments.attach_id)
+ ");
+ }
+}
+
1;
__END__
},
attachment_id => {
- TYPE => 'INT3',
+ TYPE => 'INT5',
REFERENCES =>
{TABLE => 'attachments', COLUMN => 'attach_id', DELETE => 'CASCADE'}
},