From 7eecfb06680bf44783d9c9d5f7b759dfac9125fa Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 8 May 2010 11:41:26 -0600 Subject: [PATCH] More robust creation of dynamic id filters --- src/calibre/library/database2.py | 4 +++- src/calibre/library/sqlite.py | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index 724c1bd41a..a7d68896cf 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -106,6 +106,9 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): self.conn = connect(self.dbpath, self.row_factory) if self.user_version == 0: self.initialize_database() + # remember to add any filter to the connect method in sqlite.py as well + # so that various code taht connects directly will not complain about + # missing functions self.books_list_filter = self.conn.create_dynamic_filter('books_list_filter') def __init__(self, library_path, row_factory=False): @@ -1469,7 +1472,6 @@ books_series_link feeds conn = ndb.conn conn.execute('create table temp_sequence(id INTEGER PRIMARY KEY AUTOINCREMENT)') conn.commit() - conn.create_function(self.books_list_filter.name, 1, lambda x: 1) conn.executescript(sql) conn.commit() conn.execute('pragma user_version=%d'%user_version) diff --git a/src/calibre/library/sqlite.py b/src/calibre/library/sqlite.py index 755d8e64b4..236f81da2d 100644 --- a/src/calibre/library/sqlite.py +++ b/src/calibre/library/sqlite.py @@ -117,6 +117,8 @@ class DBThread(Thread): self.conn.create_aggregate('sort_concat', 2, SafeSortedConcatenate) self.conn.create_function('title_sort', 1, title_sort) self.conn.create_function('uuid4', 0, lambda : str(uuid.uuid4())) + # Dummy functions for dynamically created filters + self.conn.create_function('books_list_filter', 1, lambda x: 1) def run(self): try: