Optimization of composite column evaluation: don't compute the user_categories, as they cannot appear in a composite column.

This commit is contained in:
Charles Haley 2011-04-11 16:28:50 +01:00
parent f979f0d357
commit 3a2a3f1b4f
2 changed files with 14 additions and 11 deletions

View File

@ -191,7 +191,8 @@ class CacheRow(list): # {{{
if is_comp: if is_comp:
id = list.__getitem__(self, 0) id = list.__getitem__(self, 0)
self._must_do = False self._must_do = False
mi = self.db.get_metadata(id, index_is_id=True) mi = self.db.get_metadata(id, index_is_id=True,
get_user_categories=False)
for c in self._composites: for c in self._composites:
self[c] = mi.get(self._composites[c]) self[c] = mi.get(self._composites[c])
return list.__getitem__(self, col) return list.__getitem__(self, col)

View File

@ -823,7 +823,8 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
pass pass
return (path, mi, sequence) return (path, mi, sequence)
def get_metadata(self, idx, index_is_id=False, get_cover=False): def get_metadata(self, idx, index_is_id=False, get_cover=False,
get_user_categories=True):
''' '''
Convenience method to return metadata as a :class:`Metadata` object. Convenience method to return metadata as a :class:`Metadata` object.
Note that the list of formats is not verified. Note that the list of formats is not verified.
@ -882,6 +883,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
user_cats = self.prefs['user_categories'] user_cats = self.prefs['user_categories']
user_cat_vals = {} user_cat_vals = {}
if get_user_categories:
for ucat in user_cats: for ucat in user_cats:
res = [] res = []
for name,cat,ign in user_cats[ucat]: for name,cat,ign in user_cats[ucat]: