From 25230f4cf91a591dcfdf5bcac00e1d085b1c4b41 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 Signed-off-by: Tomas Cohen Arazi (cherry picked from commit a3a0aaec102b05fc5a5b0573e1888facd22a731f) 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.20.1