From 5bf68b59712e8b4c7767e09650bb5f03cdc2133a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 26 Sep 2021 20:07:49 +0530 Subject: [PATCH] When getting identifiers for a book use a copy of the dict Fixes #1945098 [5.28 Forgets or reverts identifiers](https://bugs.launchpad.net/calibre/+bug/1945098) --- src/calibre/db/fields.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/calibre/db/fields.py b/src/calibre/db/fields.py index 5d3d7c0808..a3d64d14a1 100644 --- a/src/calibre/db/fields.py +++ b/src/calibre/db/fields.py @@ -577,8 +577,10 @@ class ManyToManyField(Field): class IdentifiersField(ManyToManyField): def for_book(self, book_id, default_value=None): - ids = self.table.book_col_map.get(book_id, ()) - if not ids: + ids = self.table.book_col_map.get(book_id, None) + if ids: + ids = ids.copy() + else: try: ids = default_value.copy() # in case default_value is a mutable dict except AttributeError: