Bug 5642: Item field serial enumeration (enumchron) should be longer
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Sun, 27 Feb 2011 08:49:50 +0000 (03:49 -0500)
committerChris Cormack <chrisc@catalyst.net.nz>
Sat, 5 Mar 2011 07:20:02 +0000 (20:20 +1300)
Field enumchron in items table is now varchar(80).
We have records that need a much longer field, even up to 400 or 500 chars.
I suggest to change its type to TEXT (variable length with max 64K; tinytext
goes up to 255 chars and is just too short).
Mediumtext or longtext are not needed; as a side note these types are used in
the items table for e.g. booksellerid and more_subfields_xml..

Revised original patch thanks to Ian Walls: update kohatructure.sql. Copied the change in deleteditems as well.

Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
installer/data/mysql/kohastructure.sql
installer/data/mysql/updatedatabase.pl

index e7ad97f..da1528c 100644 (file)
@@ -750,7 +750,7 @@ CREATE TABLE `deleteditems` (
   `uri` varchar(255) default NULL,
   `itype` varchar(10) default NULL,
   `more_subfields_xml` longtext default NULL,
-  `enumchron` varchar(80) default NULL,
+  `enumchron` text default NULL,
   `copynumber` varchar(32) default NULL,
   `stocknumber` varchar(32) default NULL,
   `marc` longblob,
@@ -1015,7 +1015,7 @@ CREATE TABLE `items` (
   `uri` varchar(255) default NULL,
   `itype` varchar(10) default NULL,
   `more_subfields_xml` longtext default NULL,
-  `enumchron` varchar(80) default NULL,
+  `enumchron` text default NULL,
   `copynumber` varchar(32) default NULL,
   `stocknumber` varchar(32) default NULL,
   PRIMARY KEY  (`itemnumber`),
index b4c51c0..6bd7397 100755 (executable)
@@ -4022,6 +4022,14 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
     SetVersion($DBversion);
 };
 
+$DBversion = "3.03.00.XXX";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+    $dbh->do("ALTER TABLE items MODIFY enumchron TEXT");
+    $dbh->do("ALTER TABLE deleteditems MODIFY enumchron TEXT");
+    print "Upgrade to $DBversion done (bug 5642: longer serial enumeration)\n";
+    SetVersion ($DBversion);
+}
+
 =head1 FUNCTIONS
 
 =head2 DropAllForeignKeys($table)