From dbaa3a375705be2a9bd39d5f71ccf2b5b1db1668 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 --- 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.30.2