From 899ffb4e6120b5358eab2a4fc027430699924dfb Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 31 Mar 2023 14:01:17 +0530 Subject: [PATCH] Fix typo causing book specific link map to contain entries for all items --- src/calibre/db/cache.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/calibre/db/cache.py b/src/calibre/db/cache.py index 00747ae09e..76e2925973 100644 --- a/src/calibre/db/cache.py +++ b/src/calibre/db/cache.py @@ -2387,12 +2387,15 @@ class Cache: links = {} def add_links_for_field(f): table = self.fields[f].table - lm = table.link_map - vm = table.id_map - d = {vm.get(fid):v for fid, v in lm.items() if v} - d.pop(None, None) - if d: - links[f] = d + field_ids = self._field_ids_for(f, book_id) + if field_ids: + lm = table.link_map + id_link_map = {fid:lm.get(fid) for fid in field_ids} + vm = table.id_map + d = {vm.get(fid):v for fid, v in id_link_map.items() if v} + d.pop(None, None) + if d: + links[f] = d for field in ('authors', 'publisher', 'series', 'tags'): add_links_for_field(field) for field in self.field_metadata.custom_field_keys(include_composites=False):