зеркало из https://github.com/mozilla/pjs.git
Bug 341091: checksetup breaks if there are duplicate versions for a product
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> (module owner) a=myk
This commit is contained in:
Родитель
f1a16005fa
Коммит
42714011ec
|
@ -406,8 +406,7 @@ sub update_table_definitions {
|
|||
# 2005-04-28 - LpSolit@gmail.com - Bug 7233: add an index to versions
|
||||
$dbh->bz_alter_column('versions', 'value',
|
||||
{TYPE => 'varchar(64)', NOTNULL => 1});
|
||||
$dbh->bz_add_index('versions', 'versions_product_id_idx',
|
||||
{TYPE => 'UNIQUE', FIELDS => [qw(product_id value)]});
|
||||
_add_versions_product_id_index();
|
||||
|
||||
if (!exists $dbh->bz_column_info('milestones', 'sortkey')->{DEFAULT}) {
|
||||
$dbh->bz_alter_column('milestones', 'sortkey',
|
||||
|
@ -2298,6 +2297,32 @@ sub _change_all_mysql_booleans_to_tinyint {
|
|||
}
|
||||
}
|
||||
|
||||
# A helper for the below function.
|
||||
sub _de_dup_version {
|
||||
my ($product_id, $version) = @_;
|
||||
my $dbh = Bugzilla->dbh;
|
||||
print "Fixing duplicate version $version in product_id $product_id...\n";
|
||||
$dbh->do('DELETE FROM versions WHERE product_id = ? AND value = ?',
|
||||
undef, $product_id, $version);
|
||||
$dbh->do('INSERT INTO versions (product_id, value) VALUES (?,?)',
|
||||
undef, $product_id, $version);
|
||||
}
|
||||
|
||||
sub _add_versions_product_id_index {
|
||||
my $dbh = Bugzilla->dbh;
|
||||
if (!$dbh->bz_index_info('versions', 'versions_product_id_idx')) {
|
||||
my $dup_versions = $dbh->selectall_arrayref(
|
||||
'SELECT product_id, value FROM versions
|
||||
GROUP BY product_id, value HAVING COUNT(value) > 1', {Slice=>{}});
|
||||
foreach my $dup_version (@$dup_versions) {
|
||||
_de_dup_version($dup_version->{product_id}, $dup_version->{value});
|
||||
}
|
||||
|
||||
$dbh->bz_add_index('versions', 'versions_product_id_idx',
|
||||
{TYPE => 'UNIQUE', FIELDS => [qw(product_id value)]});
|
||||
}
|
||||
}
|
||||
|
||||
sub _fix_whine_queries_title_and_op_sys_value {
|
||||
my $dbh = Bugzilla->dbh;
|
||||
if (!exists $dbh->bz_column_info('whine_queries', 'title')->{DEFAULT}) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче