Merge pull request #4285 from paperbagcorner/sqlite-3.8

Fix slow library search on sqlite 3.8.
This commit is contained in:
John Maguire 2014-04-22 18:47:45 +08:00
commit c94a94ece2
1 changed files with 7 additions and 1 deletions

View File

@ -128,7 +128,13 @@ void LibraryQuery::AddWhere(const QString& column, const QVariant& value,
}
void LibraryQuery::AddCompilationRequirement(bool compilation) {
where_clauses_ << QString("effective_compilation = %1")
// The unary + is added to prevent sqlite from using the index
// idx_comp_artist. When joining with fts, sqlite 3.8 has a tendency
// to use this index and thereby nesting the tables in an order
// which gives very poor performance. See
// https://github.com/clementine-player/Clementine/pull/4285 for
// more details.
where_clauses_ << QString("+effective_compilation = %1")
.arg(compilation ? 1 : 0);
}