From 986a6e2580b3d53a86458a38800c0b66414b85fa Mon Sep 17 00:00:00 2001 From: emeric Date: Thu, 11 Jun 2026 20:58:52 +0200 Subject: [PATCH] Fixed release only artists not picked up during search3 calls, fixes #852 --- src/libs/database/impl/objects/Artist.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libs/database/impl/objects/Artist.cpp b/src/libs/database/impl/objects/Artist.cpp index 781d17e0..6e7cf657 100644 --- a/src/libs/database/impl/objects/Artist.cpp +++ b/src/libs/database/impl/objects/Artist.cpp @@ -240,7 +240,11 @@ namespace lms::db if (library.isValid()) { // Faster than using joins - query.where("EXISTS (SELECT 1 FROM track_artist_link t_a_l JOIN track t ON t.id = t_a_l.track_id WHERE t_a_l.artist_id = a.id AND t.media_library_id = ?)").bind(library); + query.where( + "EXISTS (SELECT 1 FROM track_artist_link t_a_l JOIN track t ON t.id = t_a_l.track_id WHERE t_a_l.artist_id = a.id AND t.media_library_id = ?)" + " OR EXISTS (SELECT 1 FROM release_artist_link r_a_l JOIN release r ON r.id = r_a_l.release_id JOIN track t ON t.release_id = r.id WHERE r_a_l.artist_id = a.id AND t.media_library_id = ?)") + .bind(library) + .bind(library); } utils::forEachQueryResult(query, [&](const Artist::pointer& artist) {