From 438790bd7e88dd15702afa17bd65fdc993a01eec Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 21 Jan 2015 15:59:10 +0100 Subject: [PATCH] [PASSED QA] Bug 13606: Upgrade sessions.a_session to MEDIUMTEXT The previous patch fixed partially the problem. If you try to update more that 1000 records, you will get the same error. This patch change the type of sessions.a_session from TEXT (64kb) MEDIUMTEXT (32mb). Test plan: 1/ Try to modify a huge amount of records (1000 should be enough) 2/ Confirm it worked! Signed-off-by: Frederic Demians I confirm that with more than 1000 records the session object is truncated, and then can't be anymore be desirialized, blocking completely Koha. Fixed with this patch. Signed-off-by: Mark Tompsett This only pushes off the problem expontentially (64KB vs. 16MB), but this is a good start. Signed-off-by: Kyle M Hall --- installer/data/mysql/kohastructure.sql | 2 +- installer/data/mysql/updatedatabase.pl | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletions(-) diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index a74d81a..dff7a45 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -1963,7 +1963,7 @@ CREATE TABLE `serial` ( -- issues related to subscriptions DROP TABLE IF EXISTS sessions; CREATE TABLE sessions ( `id` varchar(32) NOT NULL, - `a_session` text NOT NULL, + `a_session` mediumtext NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index ca27cde..cd2abf6 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -10035,6 +10035,15 @@ if ( CheckVersion($DBversion) ) { SetVersion ($DBversion); } +$DBversion = "3.19.00.XXX"; +if ( CheckVersion($DBversion) ) { + $dbh->do(q| + ALTER TABLE sessions CHANGE COLUMN a_session a_session MEDIUMTEXT + |); + print "Upgrade to $DBversion done (Bug 13606: Upgrade sessions.a_session to MEDIUMTEXT)\n"; + SetVersion($DBversion); +} + # DEVELOPER PROCESS, search for anything to execute in the db_update directory # SEE bug 13068 # if there is anything in the atomicupdate, read and execute it. -- 1.7.2.5