From 7eeeef8bea8c09773a591646df36bfcfbb7eecba Mon Sep 17 00:00:00 2001
From: David Gustafsson <david.gustafsson@ub.gu.se>
Date: Fri, 15 Dec 2017 14:19:49 +0100
Subject: [PATCH] Bug 19820: Add unsafe param to GetMarcSubfieldStructure
Add unsafe param to GetMarcSubfieldStructure and use this options
where it's safe to do so to increase performance
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
---
C4/Biblio.pm | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/C4/Biblio.pm b/C4/Biblio.pm
index dac065608c..8873c68783 100644
--- a/C4/Biblio.pm
+++ b/C4/Biblio.pm
@@ -1079,13 +1079,13 @@ sub GetUsedMarcStructure {
=cut
sub GetMarcSubfieldStructure {
- my ( $frameworkcode ) = @_;
+ my ( $frameworkcode, $params ) = @_;
$frameworkcode //= '';
my $cache = Koha::Caches->get_instance();
my $cache_key = "MarcSubfieldStructure-$frameworkcode";
- my $cached = $cache->get_from_cache($cache_key);
+ my $cached = $cache->get_from_cache($cache_key, { unsafe => ($params && $params->{unsafe}) });
return $cached if $cached;
my $dbh = C4::Context->dbh;
@@ -1129,7 +1129,7 @@ sub GetMarcFromKohaField {
return unless $kohafield;
# The next call uses the Default framework since it is AUTHORITATIVE
# for all Koha to MARC mappings.
- my $mss = GetMarcSubfieldStructure( '' ); # Do not change framework
+ my $mss = GetMarcSubfieldStructure( '', { unsafe => 1 } ); # Do not change framework
my @retval;
foreach( @{ $mss->{$kohafield} } ) {
push @retval, $_->{tagfield}, $_->{tagsubfield};
@@ -1156,7 +1156,7 @@ sub GetMarcSubfieldStructureFromKohaField {
# The next call uses the Default framework since it is AUTHORITATIVE
# for all Koha to MARC mappings.
- my $mss = GetMarcSubfieldStructure(''); # Do not change framework
+ my $mss = GetMarcSubfieldStructure( '', { unsafe => 1 } ); # Do not change framework
return unless $mss->{$kohafield};
return wantarray ? @{$mss->{$kohafield}} : $mss->{$kohafield}->[0];
}
@@ -2192,7 +2192,7 @@ sub TransformKohaToMarc {
# In the next call we use the Default framework, since it is considered
# authoritative for Koha to Marc mappings.
- my $mss = GetMarcSubfieldStructure( '' ); # do not change framework
+ my $mss = GetMarcSubfieldStructure( '', { unsafe => 1 } ); # do not change framewok
my $tag_hr = {};
while ( my ($kohafield, $value) = each %$hash ) {
foreach my $fld ( @{ $mss->{$kohafield} } ) {
@@ -2605,7 +2605,7 @@ sub TransformMarcToKoha {
# The next call acknowledges Default as the authoritative framework
# for Koha to MARC mappings.
- my $mss = GetMarcSubfieldStructure(''); # Do not change framework
+ my $mss = GetMarcSubfieldStructure( '', { unsafe => 1 } ); # Do not change framework
foreach my $kohafield ( keys %{ $mss } ) {
my ( $table, $column ) = split /[.]/, $kohafield, 2;
next unless $tables{$table};
--
2.11.0