From e906036a759b72cffbca71cdfc56ace03f12d675 Mon Sep 17 00:00:00 2001
From: Kyle M Hall <kyle@bywatersolutions.com>
Date: Thu, 20 Nov 2014 11:01:08 -0500
Subject: [PATCH] [PASSED QA] Bug 1861 [QA Followup] - Don't modify userids,
 warn if we can't modify the index automatically

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
---
 installer/data/mysql/updatedatabase.pl |   22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index 9600018..b829110 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -9575,17 +9575,21 @@ if ( CheckVersion($DBversion) ) {
 
 $DBversion = "3.17.00.XXX";
 if ( CheckVersion($DBversion) ) {
-    $dbh->do(q{
-        UPDATE borrowers SET userid = NULL where userid = ""
-    });
+    my ($count) = $dbh->selectrow_array("SELECT COUNT(*) FROM borrowers GROUP BY userid HAVING COUNT(userid) > 1");
 
-    $dbh->do(q{
-        ALTER TABLE borrowers
-            DROP INDEX userid ,
-            ADD UNIQUE userid (userid)
-    });
+    if ( $count ) {
+        print "Upgrade to $DBversion done (Bug 1861 - Unique patrons logins not (totally) enforced) FAILED!\n";
+        print "Your database has users with duplicate user logins. Please have your administrator deduplicate your user logins.\n";
+        print "Afterward, your Koha administrator should execute the following database query: ALTER TABLE borrowers DROP INDEX userid, ADD UNIQUE userid (userid)";
+    } else {
+        $dbh->do(q{
+            ALTER TABLE borrowers
+                DROP INDEX userid ,
+                ADD UNIQUE userid (userid)
+        });
+        print "Upgrade to $DBversion done (Bug 1861 - Unique patrons logins not (totally) enforced)\n";
+    }
 
-    print "Upgrade to $DBversion done (Bug 1861 - Unique patrons logins not (totally) enforced)\n";
     SetVersion($DBversion);
 }
 
-- 
1.7.10.4