[Koha-patches] [PATCH] [SIGNED-OFF] Bug 5860: Adding duplicate stocknumber fails silently

Marcel de Rooy M.de.Rooy at rijksmuseum.nl
Mon Apr 4 13:20:20 CEST 2011


From: Katrin Fischer <Katrin.Fischer.83 at web.de>

When adding a duplicate stocknumber the duplicate was not saved to the database.
This happened, because the field stocknumber in table items was declared to be unique.
Discussion on bug suggests to lift this restriction.

Signed-off-by: Marcel de Rooy <m.de.rooy at rijksmuseum.nl>
Tested. Corrected typo in updatedatabase script. Version 3.01.00.095 introduced the index with double s, although structure had only one s in index name.
Unaware of this bug, I entered the more general bug 6041 for similar problems with modifying items.
---
 installer/data/mysql/kohastructure.sql |    2 +-
 installer/data/mysql/updatedatabase.pl |    8 ++++++++
 2 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql
index e0bea81..7a41617 100644
--- a/installer/data/mysql/kohastructure.sql
+++ b/installer/data/mysql/kohastructure.sql
@@ -1023,7 +1023,7 @@ CREATE TABLE `items` (
   `stocknumber` varchar(32) default NULL,
   PRIMARY KEY  (`itemnumber`),
   UNIQUE KEY `itembarcodeidx` (`barcode`),
-  UNIQUE KEY `itemstocknumberidx` (`stocknumber`),
+  KEY `itemstocknumberidx` (`stocknumber`),
   KEY `itembinoidx` (`biblioitemnumber`),
   KEY `itembibnoidx` (`biblionumber`),
   KEY `homebranch` (`homebranch`),
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index 5c71849..f60e6df 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -4209,6 +4209,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` DROP INDEX `itemsstocknumberidx`;");
+    $dbh->do("ALTER TABLE items ADD INDEX itemstocknumberidx (stocknumber);");
+    print "Upgrade to $DBversion done (Change items.stocknumber to be not unique)\n";
+    SetVersion ($DBversion);
+}
+
 =head1 FUNCTIONS
 
 =head2 DropAllForeignKeys($table)
-- 
1.6.0.6



More information about the Koha-patches mailing list