From 848ac85dcc5b35f3d71952f58efa33d3761047f8 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 Signed-off-by: Kyle M Hall (cherry picked from commit c46cefb7c505e31bf3c0683f1f5ce3e08a1cd6f4) Signed-off-by: Fridolin Somers (cherry picked from commit 9d5150e4cd82b05bf0e7a62a5964d678fc363086) Signed-off-by: Victor Grousset/tuxayo --- C4/Linker/Default.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/C4/Linker/Default.pm b/C4/Linker/Default.pm index 934e87536a..a6d45c5c91 100644 --- a/C4/Linker/Default.pm +++ b/C4/Linker/Default.pm @@ -38,6 +38,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 { @@ -78,6 +79,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