From 60e77299062148aa04e325de03b8089d26781234 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 24 Sep 2010 08:33:42 -0600 Subject: [PATCH] Don't put duplicates in dirtied_queue --- src/calibre/library/database2.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index 6a0d442927..dc320eb011 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -578,13 +578,17 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): return True def dirtied(self, book_ids, commit=True): - self.conn.executemany( - 'INSERT OR REPLACE INTO metadata_dirtied (book) VALUES (?)', - [(x,) for x in book_ids]) + for book in book_ids: + try: + self.conn.execute( + 'INSERT INTO metadata_dirtied (book) VALUES (?)', + (book,)) + self.dirtied_queue.put(book) + except IntegrityError: + # Already in table + continue if commit: self.conn.commit() - for x in book_ids: - self.dirtied_queue.put(x) def get_metadata(self, idx, index_is_id=False, get_cover=False): '''