Use sort_concat instead of group_concat for the au_map meta2 field

This commit is contained in:
Charles Haley 2011-01-06 21:58:07 +00:00
parent ae759ebd10
commit 2cdbc5ea11

View File

@ -257,7 +257,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
'flags', 'flags',
'uuid', 'uuid',
'has_cover', 'has_cover',
'''(SELECT group_concat(authors.name || ':::' || authors.sort, ':#:') '''(SELECT sortconcat(bl.id, authors.name || ':::' || REPLACE(authors.sort, ',','|'))
FROM authors, books_authors_link as bl FROM authors, books_authors_link as bl
WHERE bl.book=books.id and authors.id=bl.author WHERE bl.book=books.id and authors.id=bl.author
ORDER BY bl.id) au_map''', ORDER BY bl.id) au_map''',
@ -710,12 +710,12 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
self.data.set(idx, fm['all_metadata'], mi, row_is_id = index_is_id) self.data.set(idx, fm['all_metadata'], mi, row_is_id = index_is_id)
aut_list = row[fm['au_map']] aut_list = row[fm['au_map']]
aut_list = [p.split(':::') for p in aut_list.split(':#:')] aut_list = [p.split(':::') for p in aut_list.split(',')]
aum = [] aum = []
aus = {} aus = {}
for (author, author_sort) in aut_list: for (author, author_sort) in aut_list:
aum.append(author) aum.append(author)
aus[author] = author_sort aus[author] = author_sort.replace('|', ',')
mi.title = row[fm['title']] mi.title = row[fm['title']]
mi.authors = aum mi.authors = aum
mi.author_sort = row[fm['author_sort']] mi.author_sort = row[fm['author_sort']]