From 370e3af237e7fa19e7679f1b5062627c65face74 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. --- 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