From 26b2fb59b00f92e5590f9e192b6224368fab0f37 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Mon, 18 Nov 2013 14:18:15 -0500 Subject: [PATCH] Bug 11268 - Biblioitems URL field is too small for some URLs The URL field in biblioitems is defined as a varchar(255) which is large enough for most URLs but not all. This field should be converted to a TEXT field to make sure it is capable of storing all valid URLs. Test Plan: 1) Attempt to a URL that is greater than 255 chacters long in a record (856$u in MARC21) 2) Save the record, note the url gets truncated 3) Apply this patch 4) Repeat step 1 5) Note the entire url is saved --- installer/data/mysql/kohastructure.sql | 4 ++-- installer/data/mysql/updatedatabase.pl | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index fefc985..bc045c1 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -173,7 +173,7 @@ CREATE TABLE `biblioitems` ( -- information related to bibliographic records in `place` varchar(255) default NULL, -- publication place (MARC21 260$a) `lccn` varchar(25) default NULL, -- library of congress control number (MARC21 010$a) `marc` longblob, -- full bibliographic MARC record - `url` varchar(255) default NULL, -- url (MARC21 856$u) + `url` text default NULL, -- url (MARC21 856$u) `cn_source` varchar(10) default NULL, -- classification source (MARC21 942$2) `cn_class` varchar(30) default NULL, `cn_item` varchar(10) default NULL, @@ -772,7 +772,7 @@ CREATE TABLE `deletedbiblioitems` ( -- information about bibliographic records t `place` varchar(255) default NULL, -- publication place (MARC21 260$a) `lccn` varchar(25) default NULL, -- library of congress control number (MARC21 010$a) `marc` longblob, -- full bibliographic MARC record - `url` varchar(255) default NULL, -- url (MARC21 856$u) + `url` text default NULL, -- url (MARC21 856$u) `cn_source` varchar(10) default NULL, -- classification source (MARC21 942$2) `cn_class` varchar(30) default NULL, `cn_item` varchar(10) default NULL, diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index db9bf95..26c6291 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -7750,6 +7750,13 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { SetVersion($DBversion); } +$DBversion = "3.13.00.XXX"; +if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { + $dbh->do("ALTER TABLE biblioitems CHANGE url url TEXT NULL DEFAULT NULL"); + $dbh->do("ALTER TABLE deletedbiblioitems CHANGE url url TEXT NULL DEFAULT NULL"); + print "Upgrade to $DBversion done (Bug 11268 - Biblioitems URL field is too small for some URLs)\n"; + SetVersion($DBversion); +} =head1 FUNCTIONS -- 1.7.2.5