Bug 10185: Add missing columns in update 3.09.00.025
authorJulian Maurice <julian.maurice@biblibre.com>
Mon, 6 May 2013 06:43:50 +0000 (06:43 +0000)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Wed, 8 May 2013 14:00:10 +0000 (10:00 -0400)
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
SQL only changes fixing an important database update.

IMPORTANT: Patches must be backported to all versions containing
the database update 3.09.00.025.

I used the test plan provided by Julian with some additions:
1/ Do a fresh 3.8 install
2/ Do some reserves
3/ Check your old_reserves table is empty
4/ Update your sources to 3.10
5/ Run updatedatabase.pl
6/ Your reserves table is now empty!

I made sure I had item level and title level holds, also
suspended holds.

I repeated the test with entries in my old_reserves table
(cancelled and filled holds) to make sure this is also still
working correctly.

Before the patch we lost all suspended holds and when the
old_reserves table was empty also all holds in general.
After the patch the reserve_id is added but the other data
in both tables is not altered.

NOTE: Adding the reserve_id first to old_reserves and then
to reserves we are missing one id in between.
old_reserves: 1,2,3
reserves: 5,6
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
installer/data/mysql/updatedatabase.pl

index 64f0fde..06909df 100755 (executable)
@@ -5486,13 +5486,15 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
           constrainttype, branchcode, notificationdate,
           reminderdate, cancellationdate, reservenotes,
           priority, found, timestamp, itemnumber,
-          waitingdate, expirationdate, lowestPriority
+          waitingdate, expirationdate, lowestPriority,
+          suspend, suspend_until
         ) SELECT
           borrowernumber, reservedate, biblionumber,
           constrainttype, branchcode, notificationdate,
           reminderdate, cancellationdate, reservenotes,
           priority, found, timestamp, itemnumber,
-          waitingdate, expirationdate, lowestPriority
+          waitingdate, expirationdate, lowestPriority,
+          suspend, suspend_until
         FROM old_reserves ORDER BY reservedate
     ");
     $dbh->do('SET @ai = ( SELECT MAX( reserve_id ) FROM tmp_reserves )');
@@ -5505,13 +5507,15 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
           constrainttype, branchcode, notificationdate,
           reminderdate, cancellationdate, reservenotes,
           priority, found, timestamp, itemnumber,
-          waitingdate, expirationdate, lowestPriority
+          waitingdate, expirationdate, lowestPriority,
+          suspend, suspend_until
         ) SELECT
           borrowernumber, reservedate, biblionumber,
           constrainttype, branchcode, notificationdate,
           reminderdate, cancellationdate, reservenotes,
           priority, found, timestamp, itemnumber,
-          waitingdate, expirationdate, lowestPriority
+          waitingdate, expirationdate, lowestPriority,
+          suspend, suspend_until
         FROM reserves ORDER BY reservedate
     ");
     $dbh->do('TRUNCATE reserves');