Commit 17cf1616 authored by mkanat%bugzilla.org's avatar mkanat%bugzilla.org

Bug 460421: [Oracle] Adding custom fields with type FIELD_TYPE_MULTI_SELECT…

Bug 460421: [Oracle] Adding custom fields with type FIELD_TYPE_MULTI_SELECT requires a unique constraint on the "value" column Patch By Xiaoou Wu <xiaoou.wu@oracle.com> r=mkanat, a=mkanat
parent 81c5ce1d
......@@ -684,7 +684,7 @@ sub bz_add_field_tables {
if ($field->type == FIELD_TYPE_MULTI_SELECT) {
my $ms_table = "bug_" . $field->name;
$self->_bz_add_field_table($ms_table,
$self->_bz_schema->MULTI_SELECT_VALUE_TABLE);
$self->_bz_schema->MULTI_SELECT_VALUE_TABLE, $field->type);
$self->bz_add_fk($ms_table, 'bug_id', {TABLE => 'bugs',
COLUMN => 'bug_id',
......
......@@ -208,6 +208,15 @@ sub sql_in {
return "( " . join(" OR ", @in_str) . " )";
}
sub _bz_add_field_table {
my ($self, $name, $schema_ref, $type) = @_;
$self->SUPER::_bz_add_field_table($name, $schema_ref);
if (defined($type) && $type == FIELD_TYPE_MULTI_SELECT) {
my $uk_name = "UK_" . $self->_bz_schema->_hash_identifier($name . '_value');
$self->do("ALTER TABLE $name ADD CONSTRAINT $uk_name UNIQUE(value)");
}
}
sub bz_drop_table {
my ($self, $name) = @_;
my $table_exists = $self->bz_table_info($name);
......
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