From 156cea25951f0d94f092019b2b1a21b9b0810ded Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 21 Jan 2015 15:59:10 +0100 Subject: [PATCH] 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. --- installer/data/mysql/kohastructure.sql | 2 +- installer/data/mysql/updatedatabase.pl | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index 6ddba43..9786895 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -1982,7 +1982,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 78e79d3..89b8705 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -9978,6 +9978,14 @@ 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 -- 1.9.1