Tentative fix for bad query perf with recent sqlite versions: limit 1 seems to be culprit

This commit is contained in:
emeric
2025-07-13 00:06:10 +02:00
parent 59e85ee424
commit 6704762cc3
6 changed files with 116 additions and 15 deletions
@@ -142,9 +142,10 @@ namespace lms::scanner
params.setRelease(release->getId());
params.setImageType(db::ImageType::FrontCover);
params.setSortMethod(db::TrackEmbeddedImageSortMethod::DiscNumberThenTrackNumberThenSizeDesc);
params.setRange(db::Range{ .offset = 0, .size = 1 });
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) { artwork = db::Artwork::find(session, image->getId()); });
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) {
if (!artwork)
artwork = db::Artwork::find(session, image->getId());
});
}
if (artwork)
@@ -156,9 +157,10 @@ namespace lms::scanner
params.setRelease(release->getId());
params.setImageType(db::ImageType::Media);
params.setSortMethod(db::TrackEmbeddedImageSortMethod::DiscNumberThenTrackNumberThenSizeDesc);
params.setRange(db::Range{ .offset = 0, .size = 1 });
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) { artwork = db::Artwork::find(session, image->getId()); });
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) {
if (!artwork)
artwork = db::Artwork::find(session, image->getId());
});
}
return artwork;