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)
committerNick Clemens <nick@bywatersolutions.com>
Thu, 8 Nov 2018 02:18:48 +0000 (02:18 +0000)
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>

C4/Members.pm

index 0cd424b..9fcc733 100644 (file)
@@ -46,7 +46,6 @@ use Koha::Holds;
 use Koha::List::Patron;
 use Koha::Patrons;
 use Koha::Patron::Categories;
-use Koha::Schema;
 
 our (@ISA,@EXPORT,@EXPORT_OK,$debug);
 
@@ -342,7 +341,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/;