Tentative fix for bad query perf with recent sqlite versions: limit 1 seems to be culprit
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -65,8 +65,11 @@ namespace lms::scanner
|
||||
params.setTrack(track->getId());
|
||||
params.setImageType(db::ImageType::FrontCover);
|
||||
params.setSortMethod(db::TrackEmbeddedImageSortMethod::SizeDesc);
|
||||
params.setRange(db::Range{ .offset = 0, .size = 1 });
|
||||
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) { res = db::Artwork::find(session, image->getId()); });
|
||||
|
||||
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) {
|
||||
if (!res)
|
||||
res = db::Artwork::find(session, image->getId());
|
||||
});
|
||||
}
|
||||
|
||||
if (res)
|
||||
@@ -92,8 +95,11 @@ namespace lms::scanner
|
||||
params.setTrack(track->getId());
|
||||
params.setImageType(db::ImageType::Media);
|
||||
params.setSortMethod(db::TrackEmbeddedImageSortMethod::SizeDesc);
|
||||
params.setRange(db::Range{ .offset = 0, .size = 1 });
|
||||
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) { res = db::Artwork::find(session, image->getId()); });
|
||||
|
||||
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) {
|
||||
if (!res)
|
||||
res = db::Artwork::find(session, image->getId());
|
||||
});
|
||||
}
|
||||
|
||||
if (res)
|
||||
@@ -111,8 +117,11 @@ namespace lms::scanner
|
||||
params.setDiscNumber(discNumber);
|
||||
params.setImageType(db::ImageType::Media);
|
||||
params.setSortMethod(db::TrackEmbeddedImageSortMethod::TrackNumberThenSizeDesc);
|
||||
params.setRange(db::Range{ .offset = 0, .size = 1 });
|
||||
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) { res = db::Artwork::find(session, image->getId()); });
|
||||
|
||||
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) {
|
||||
if (!res)
|
||||
res = db::Artwork::find(session, image->getId());
|
||||
});
|
||||
}
|
||||
|
||||
return res;
|
||||
|
||||
Reference in New Issue
Block a user