From 07adfe4f4e84490323aa8caef98aa26f43557fb5 Mon Sep 17 00:00:00 2001 From: Benjamin Rokseth Date: Thu, 22 Jan 2015 12:21:47 +0100 Subject: [PATCH] Bug 13523 - AddBiblio fails on mysql with STRICT_TRANS_TABLES This patch removes the NOT NULL restriction on biblioitems.marcxml and deletedbiblioitems.marcxml due to STRICT_TRANS_TABLES default in Mysql 5.6.22 and onwards. Test: 1. check mysql global settings: mysql > SELECT @@GLOBAL.sql_mode; verify that STRICT_TRANS_TABLES is not set 2. set STRICT_TRANS_TABLES (or upgrade mysql to > 5.6.21) mysql > SET @@GLOBAL.sql_mode = 'STRICT_TRANS_TABLES'; 3. try to add biblio in Cataloguing module verify that it fails with a "software error" 4. apply patch 5. repeat 3 and verify that there is no "software error" any more --- installer/data/mysql/kohastructure.sql | 4 ++-- installer/data/mysql/updatedatabase.pl | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index 82868e7..3d4f863 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -181,7 +181,7 @@ CREATE TABLE `biblioitems` ( -- information related to bibliographic records in `cn_sort` varchar(255) default NULL, -- normalized version of the call number used for sorting `agerestriction` varchar(255) default NULL, -- target audience/age restriction from the bib record (MARC21 521$a) `totalissues` int(10), - `marcxml` longtext NOT NULL, -- full bibliographic MARC record in MARCXML + `marcxml` longtext, -- full bibliographic MARC record in MARCXML PRIMARY KEY (`biblioitemnumber`), KEY `bibinoidx` (`biblioitemnumber`), KEY `bibnoidx` (`biblionumber`), @@ -812,7 +812,7 @@ CREATE TABLE `deletedbiblioitems` ( -- information about bibliographic records t `cn_sort` varchar(255) default NULL, -- normalized version of the call number used for sorting `agerestriction` varchar(255) default NULL, -- target audience/age restriction from the bib record (MARC21 521$a) `totalissues` int(10), - `marcxml` longtext NOT NULL, -- full bibliographic MARC record in MARCXML + `marcxml` longtext, -- full bibliographic MARC record in MARCXML PRIMARY KEY (`biblioitemnumber`), KEY `bibinoidx` (`biblioitemnumber`), KEY `bibnoidx` (`biblionumber`), diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index 4653c02..0199c81 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -9669,6 +9669,20 @@ if ( CheckVersion($DBversion) ) { SetVersion ($DBversion); } +$DBversion = "3.19.00.XXX"; +if(CheckVersion($DBversion)) { + $dbh->do(q{ + ALTER TABLE biblioitems MODIFY COLUMN marcxml longtext + }); + + $dbh->do(q{ + ALTER TABLE deletedbiblioitems MODIFY COLUMN marcxml longtext + }); + + print "Upgrade to $DBversion done (Bug 13523 - Remove NOT NULL restriction on field marcxml due to mysql STRICT_TRANS_TABLES)\n"; + SetVersion($DBversion); +} + =head1 FUNCTIONS =head2 TableExists($table) -- 1.7.10.4