From d45540686dd0e33aeeeccba26ef4eaff374103e8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 14 Sep 2021 14:59:17 +0530 Subject: [PATCH] Fix many_many writes coverwriting equal values because of optimisation --- src/calibre/db/write.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/calibre/db/write.py b/src/calibre/db/write.py index 285460a333..5e9924c45a 100644 --- a/src/calibre/db/write.py +++ b/src/calibre/db/write.py @@ -439,7 +439,8 @@ def many_many(book_id_val_map, db, field, allow_case_change, *args): # Ignore those items whose value is the same as the current value g = table.book_col_map.get - book_id_item_id_map = {k:v for k, v in book_id_item_id_map.items() if v != g(k, missing)} + not_set = () + book_id_item_id_map = {k:v for k, v in book_id_item_id_map.items() if v != g(k, not_set)} dirtied |= set(book_id_item_id_map) # Update the book->col and col->book maps