summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--lib/VNDB/DB/Tags.pm4
2 files changed, 5 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 65631912..b789baa8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,7 @@
- Re-added /g/debug (for moderators)
- Improved search
- Bugfix: only redirect VN search to VN page if page=1
+ - Bugfix: remove duplicate votes when merging tags (fixes a 500)
2.11 - 2010-02-06
- Added Slovak to the language list
diff --git a/lib/VNDB/DB/Tags.pm b/lib/VNDB/DB/Tags.pm
index 2c1b287f..bfa56260 100644
--- a/lib/VNDB/DB/Tags.pm
+++ b/lib/VNDB/DB/Tags.pm
@@ -147,6 +147,10 @@ sub dbTagAdd {
sub dbTagMerge {
my($self, $id, @merge) = @_;
+ $self->dbExec(q|
+ DELETE FROM tags_vn tv
+ WHERE tag IN(!l)
+ AND EXISTS(SELECT 1 FROM tags_vn ti WHERE ti.tag = ? AND ti.uid = tv.uid AND ti.vid = tv.vid)|, \@merge, $id);
$self->dbExec('UPDATE tags_vn SET tag = ? WHERE tag IN(!l)', $id, \@merge);
$self->dbExec('UPDATE tags_aliases SET tag = ? WHERE tag IN(!l)', $id, \@merge);
$self->dbExec('INSERT INTO tags_aliases (tag, alias) VALUES (?, ?)', $id, $_->{name})