From 3efa8bc343aedb88ad7403115e1eed90491443a6 Mon Sep 17 00:00:00 2001 From: David Cook Date: Mon, 19 Jun 2023 01:26:35 +0000 Subject: [PATCH] Bug 34051: Cache empty hashref for non-existent authorised values When fetching authorised value descriptions, we need to handle scenarios where a value doesn't exist in the cache and doesn't exist in the database. In this situation, we return an empty hashref, and this patch makes us cache this empty hashref. This is important because otherwise the function Koha::AuthorisedValues->get_description_by_koha_field will do a database call every time it encounters the same value that doesn't exist in the authorised values table. Signed-off-by: David Nind Signed-off-by: Martin Renvoize --- Koha/AuthorisedValues.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Koha/AuthorisedValues.pm b/Koha/AuthorisedValues.pm index b52c6c79e6..822be037ea 100644 --- a/Koha/AuthorisedValues.pm +++ b/Koha/AuthorisedValues.pm @@ -110,7 +110,10 @@ sub get_description_by_koha_field { return $cached if $cached; my $av = $self->find_by_koha_field($params); - return {} unless defined $av; + if ( ! defined $av ){ + $memory_cache->set_in_cache( $cache_key, {} ); + return {}; + } my $descriptions = { lib => $av->lib, opac_description => $av->opac_description }; $memory_cache->set_in_cache( $cache_key, $descriptions ); return $descriptions; -- 2.41.0