newdb: Speed up set_metadata() by not committing the db after individual field writes

This commit is contained in:
Kovid Goyal 2013-07-30 10:56:04 +05:30
parent c6daf258be
commit 82d7bd3d57

View File

@ -1084,11 +1084,6 @@ class Cache(object):
else:
raise
for field in ('rating', 'series_index', 'timestamp'):
val = getattr(mi, field)
if val is not None:
protected_set_field(field, val)
# force_changes has no effect on cover manipulation
cdata = mi.cover_data[1]
if cdata is None and isinstance(mi.cover, basestring) and mi.cover and os.access(mi.cover, os.R_OK):
@ -1099,6 +1094,12 @@ class Cache(object):
if cdata is not None:
self._set_cover({book_id: cdata})
with self.backend.conn: # Speed up set_metadata by not operating in autocommit mode
for field in ('rating', 'series_index', 'timestamp'):
val = getattr(mi, field)
if val is not None:
protected_set_field(field, val)
for field in ('author_sort', 'publisher', 'series', 'tags', 'comments',
'languages', 'pubdate'):
val = mi.get(field, None)