From cda8dffc3a61b4ad71e304496d0c2e6c20f764a8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 12 Jun 2020 19:36:57 +0530 Subject: [PATCH] Dont modify database when no dirtied annotations are present --- src/calibre/db/backend.py | 11 ++++++----- src/calibre/db/tests/metadata.db | Bin 245760 -> 252928 bytes 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/calibre/db/backend.py b/src/calibre/db/backend.py index 2fdea75f65..af44ef4293 100644 --- a/src/calibre/db/backend.py +++ b/src/calibre/db/backend.py @@ -1795,11 +1795,12 @@ class DB(object): save_annotations_for_book(self.conn.cursor(), book_id, fmt, annots_list, user_type, user) def dirty_books_with_dirtied_annotations(self): - self.execute(''' - INSERT or IGNORE INTO metadata_dirtied(book) SELECT book FROM annotations_dirtied; - DELETE FROM annotations_dirtied; - ''') - return self.conn.changes() > 0 + with self.conn: + self.execute('INSERT or IGNORE INTO metadata_dirtied(book) SELECT book FROM annotations_dirtied;') + changed = self.conn.changes() > 0 + if changed: + self.execute('DELETE FROM annotations_dirtied') + return changed def conversion_options(self, book_id, fmt): for (data,) in self.conn.get('SELECT data FROM conversion_options WHERE book=? AND format=?', (book_id, fmt.upper())): diff --git a/src/calibre/db/tests/metadata.db b/src/calibre/db/tests/metadata.db index fb8345a10191e6466e494a103e2ed932b7ac07fa..d86bd55a8c920d1473a15b1fe210a0057b03a240 100644 GIT binary patch delta 915 zcmZuv&1(}u6n{IDFKbE+C>v-YD=7VGk?LphI zr5^0TBD#2P)doB$LK7@4qVyzU{{W>|!GmAbA{2Bsn}x+X@Mhoq=Dpv0zj-?||v z?zZ`@0I(XBH?N{`D@p-?0eQHq6%m{rO|k+c7S;9KA2NH`G@65+Gah+v9P=@Oc* z#n(L#j5n7O3TnJyN`0(jSwX)sss&mCC#huP2Yl+*8{|3G zz?(zsF&$tB_rL)*27q%^RR2_Qd$;M@7_ey0F+ljvvfi^vyJ1_O*hhWKPb9(h3)20cy{4bHhN;upS1=n*R^W-*K6M3i4nH?g zDHFpS2IeIUbAaYf;BI4SjAobC73b*o-+ti&vjx+1>&whXr(3RIj^W`2DP{~{U|Pc% P0JO`6ar>7Y%o~^hRT3(1