From ea88cfb3ab75bec6d5a49def235f0397e33acdd4 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Wed, 7 Jul 2021 15:39:43 +0000 Subject: [PATCH] Bug 28676: Cache and retrieve match_count when searching a cached heading MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We use match_count to determine if a new authority record should be created, however, we were not adding this count to the cache, so if a record returned too many matches on first lookup, we would create a new record on the second lookup To test: 1 - Set Linker Module to 'Default' 2 - Enable AutoCreateAuthorities and BiblioAddsAuthorities and CatalogModuleRelink and LinkerRelink 3 - Add two copies of a single authority via Z39 4 - Add two headings for that authority to a bib record (e.g. a 610 and 710) 5 - Save the record and note a new authority is generated 6 - Repeat and see another is generated 7 - Apply patch 8 - Restart all the things 9 - Save the record again, no new authority created Signed-off-by: Phil Ringnalda Signed-off-by: Joonas Kylmälä Signed-off-by: Jonathan Druart --- C4/Linker/Default.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/C4/Linker/Default.pm b/C4/Linker/Default.pm index c5cbee0e70..88d75ff1be 100644 --- a/C4/Linker/Default.pm +++ b/C4/Linker/Default.pm @@ -37,6 +37,7 @@ sub get_link { if ( $self->{'cache'}->{$search_form.$auth_type}->{'cached'} ) { $authid = $self->{'cache'}->{$search_form.$auth_type}->{'authid'}; $fuzzy = $self->{'cache'}->{$search_form.$auth_type}->{'fuzzy'}; + $match_count = $self->{'cache'}->{$search_form.$auth_type}->{'match_count'}; } else { @@ -77,6 +78,7 @@ sub get_link { $self->{'cache'}->{$search_form.$auth_type}->{'cached'} = 1; $self->{'cache'}->{$search_form.$auth_type}->{'authid'} = $authid; $self->{'cache'}->{$search_form.$auth_type}->{'fuzzy'} = $fuzzy; + $self->{'cache'}->{$search_form.$auth_type}->{'match_count'} = $match_count; } return $self->SUPER::_handle_auth_limit($authid), $fuzzy, $match_count; } -- 2.39.5