Bug 18651: Copy the row before modify the id
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 23 May 2017 13:27:31 +0000 (10:27 -0300)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 20 Jun 2017 17:29:21 +0000 (14:29 -0300)
commit79cb157b3b4bee9f1c079937bd13019c7b7f650f
tree800ec32e21332792f1984e322c384f7f4071d872
parentbe3d39c8b1e2671790ee5cb5cc7295eec3774a35
Bug 18651: Copy the row before modify the id

If the "max(issue_id) from old_issue + 1" already exists in issues, the
move fails.

For instance we have
1, 2, 3, 4 in issues

checkin 4
1, 2, 3 in issues (AI=5)
4 in old_issues

Restart mysql => AI is reset to MAX(issue_id) => 4

checkout a new one
1, 2, 3, 4 in issues (AI=5)
4 in old_issues

checkin 4 (will get id 5 in old_issues)
1, 2, 3 in issues (AI=5)
4, 5 in old_issues

=> This works with and without this patch

Now we have
1, 2, 3 in issues (AI=5)
4, 5 in old_issues

Restart mysql => AI is reset to MAX(issue_id) => 4

checkout 2 new ones
1, 2, 3, 4, 5 in issues (AI=7)
4, 5 in old_issues

checkin 4 (4 becomes 6 in old_issues)
1, 2, 3, 5 in issues (AI=6)
4, 5, 6 in old_issues

=> This did not work without with patch
The update of the issue_id was made before the move (so in the issues
table), the PK did not allow it

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
C4/Circulation.pm