table.optimize() deletes junk docsize rows

Closes #153. Closes #149.
This commit is contained in:
Simon Willison 2020-09-07 14:16:13 -07:00
commit 3e87500e15
4 changed files with 34 additions and 0 deletions

View file

@ -903,6 +903,16 @@ class Table(Queryable):
table=fts_table
)
)
self.db.conn.execute(
"""
DELETE FROM [{table}_docsize] WHERE {column} NOT IN (
SELECT rowid FROM [{table}]);
""".format(
# FTS5 uses 'id' but FTS4 uses 'docid'
column=self.db["{}_docsize".format(fts_table)].columns[0].name,
table=fts_table,
)
)
return self
def search(self, q):