From 7eeeef8bea8c09773a591646df36bfcfbb7eecba Mon Sep 17 00:00:00 2001 From: David Gustafsson 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 --- 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