Bug 21015: fix performance issue with C4::Members
authorJoonas Kylmälä <joonas.kylmala@iki.fi>
Fri, 29 Jun 2018 08:09:41 +0000 (11:09 +0300)
committerFridolin Somers <fridolin.somers@biblibre.com>
Wed, 28 Nov 2018 14:37:16 +0000 (15:37 +0100)
loading Koha::Schema ("use Koha::Schema;") takes significantly time as
it loads almost a couple hundred classes. Koha::Database has done that
already once and we can use it to get the ResultSet "Borrower" as
well, so let's use that. This also make the code more unified because
Koha::Database is used throughout the code instead of Koha::Schema.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit 83e0765f448c35c6f387d41fe39feb94b9bc64f3)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit f130fd6ec9538fff02582b6dae40e0445f607320)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

C4/Members.pm

index 62bd817..31a35b4 100644 (file)
@@ -44,7 +44,6 @@ use Koha::Holds;
 use Koha::List::Patron;
 use Koha::Patrons;
 use Koha::Patron::Categories;
-use Koha::Schema;
 
 our (@ISA,@EXPORT,@EXPORT_OK,$debug);
 
@@ -899,7 +898,7 @@ database column.
 =cut
 
 sub get_cardnumber_length {
-    my $borrower = Koha::Schema->resultset('Borrower');
+    my $borrower = Koha::Database->new->schema->resultset('Borrower');
     my $field_size = $borrower->result_source->column_info('cardnumber')->{size};
     my ( $min, $max ) = ( 0, $field_size ); # borrowers.cardnumber is a nullable varchar(20)
     $min = 1 if C4::Context->preference('BorrowerMandatoryField') =~ /cardnumber/;