From 70d2f22e4e715af9421d6e14748016826c2d722a Mon Sep 17 00:00:00 2001
From: Lucas Gass <lucas@bywatersolutions.com>
Date: Fri, 11 Apr 2025 20:41:17 +0000
Subject: [PATCH] Bug 39618: Add index to borrowers.preferred_name column

To test:
1. APPLY PATCH
2. updatedatabase

Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
---
 .../bug_39618_add_preferred_name_key.pl       | 21 +++++++++++++++++++
 installer/data/mysql/kohastructure.sql        |  1 +
 2 files changed, 22 insertions(+)
 create mode 100755 installer/data/mysql/atomicupdate/bug_39618_add_preferred_name_key.pl

diff --git a/installer/data/mysql/atomicupdate/bug_39618_add_preferred_name_key.pl b/installer/data/mysql/atomicupdate/bug_39618_add_preferred_name_key.pl
new file mode 100755
index 00000000000..f0fc844dcd6
--- /dev/null
+++ b/installer/data/mysql/atomicupdate/bug_39618_add_preferred_name_key.pl
@@ -0,0 +1,21 @@
+use Modern::Perl;
+use Koha::Installer::Output qw(say_warning say_success say_info);
+
+return {
+    bug_number  => "39618",
+    description => "Add index to borrowers.preferred_name",
+    up          => sub {
+        my ($args) = @_;
+        my ( $dbh, $out ) = @$args{qw(dbh out)};
+
+        unless ( index_exists( 'borrowers', 'preferred_name_idx' ) ) {
+            $dbh->do(
+                q{
+                ALTER TABLE `borrowers`
+                ADD KEY `preferred_name_idx` (`preferred_name`)
+            }
+            );
+            say_success( $out, "Added index to borrowers.preferred_name" );
+        }
+    },
+};
diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql
index 1daafbea0a2..1221a634639 100644
--- a/installer/data/mysql/kohastructure.sql
+++ b/installer/data/mysql/kohastructure.sql
@@ -1620,6 +1620,7 @@ CREATE TABLE `borrowers` (
   KEY `cardnumber_idx` (`cardnumber`),
   KEY `userid_idx` (`userid`),
   KEY `middle_name_idx` (`middle_name`(768)),
+  KEY `preferred_name_idx` (`preferred_name`),
   CONSTRAINT `borrowers_ibfk_1` FOREIGN KEY (`categorycode`) REFERENCES `categories` (`categorycode`),
   CONSTRAINT `borrowers_ibfk_2` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`),
   CONSTRAINT `borrowers_ibfk_3` FOREIGN KEY (`sms_provider_id`) REFERENCES `sms_providers` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
-- 
2.49.0