From e40731ab3434bcb6c5955bebbd98d9f9685a5fab Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 29 Apr 2022 08:29:43 +0530 Subject: [PATCH] Automatically dirty existing books if FTS db is empty Allows simply deleting the fts db file to force a rescan --- src/calibre/db/fts/connect.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/calibre/db/fts/connect.py b/src/calibre/db/fts/connect.py index 447568c2fc..38b75e7603 100644 --- a/src/calibre/db/fts/connect.py +++ b/src/calibre/db/fts/connect.py @@ -40,6 +40,11 @@ class FTS: SchemaUpgrade(conn) conn.fts_dbpath = dbpath conn.execute('UPDATE fts_db.dirtied_formats SET in_progress=FALSE WHERE in_progress=TRUE') + num_dirty = conn.get('''SELECT COUNT(*) from fts_db.dirtied_formats''')[0][0] + if not num_dirty: + num_indexed = conn.get('''SELECT COUNT(*) from fts_db.books_text''')[0][0] + if not num_indexed: + self.dirty_existing() def get_connection(self): db = self.dbref()