Added missing groupBy when iterating db with a media library filter

This commit is contained in:
emeric
2024-04-05 23:40:58 +02:00
parent d050d039f5
commit d7b5d4190a
4 changed files with 14 additions and 6 deletions
+1
View File
@@ -199,6 +199,7 @@ namespace lms::db
query.join("track t ON t.id = t_a_l.track_id"); query.join("track t ON t.id = t_a_l.track_id");
query.join("track_artist_link t_a_l ON t_a_l.artist_id = a.id"); query.join("track_artist_link t_a_l ON t_a_l.artist_id = a.id");
query.where("t.media_library_id = ?").bind(library); query.where("t.media_library_id = ?").bind(library);
query.groupBy("a.id");
} }
utils::forEachQueryResult(query, [&](const Artist::pointer& artist) utils::forEachQueryResult(query, [&](const Artist::pointer& artist)
+1
View File
@@ -296,6 +296,7 @@ namespace lms::db
{ {
query.join("track t ON t.release_id = r.id"); query.join("track t ON t.release_id = r.id");
query.where("t.media_library_id = ?").bind(library); query.where("t.media_library_id = ?").bind(library);
query.groupBy("r.id");
} }
utils::forEachQueryResult(query, [&](const Release::pointer& release) utils::forEachQueryResult(query, [&](const Release::pointer& release)
+6 -3
View File
@@ -80,7 +80,8 @@ namespace lms::db::tests
TEST_F(DatabaseFixture, Artist_findByRangedIdBased) TEST_F(DatabaseFixture, Artist_findByRangedIdBased)
{ {
ScopedTrack track1{ session, "MyTrackFile1" }; ScopedTrack track1{ session, "MyTrackFile1" };
ScopedTrack track2{ session, "MyTrackFile2" }; ScopedTrack track2a{ session, "MyTrackFile2a" };
ScopedTrack track2b{ session, "MyTrackFile2b" };
ScopedTrack track3{ session, "MyTrackFile3" }; ScopedTrack track3{ session, "MyTrackFile3" };
ScopedArtist artist1{ session, "MyArtist1" }; ScopedArtist artist1{ session, "MyArtist1" };
ScopedArtist artist2{ session, "MyArtist2" }; ScopedArtist artist2{ session, "MyArtist2" };
@@ -90,9 +91,11 @@ namespace lms::db::tests
{ {
auto transaction{ session.createWriteTransaction() }; auto transaction{ session.createWriteTransaction() };
track2.get().modify()->setMediaLibrary(library.get()); track2a.get().modify()->setMediaLibrary(library.get());
track2b.get().modify()->setMediaLibrary(library.get());
TrackArtistLink::create(session, track1.get(), artist1.get(), TrackArtistLinkType::Artist); TrackArtistLink::create(session, track1.get(), artist1.get(), TrackArtistLinkType::Artist);
TrackArtistLink::create(session, track2.get(), artist2.get(), TrackArtistLinkType::Artist); TrackArtistLink::create(session, track2a.get(), artist2.get(), TrackArtistLinkType::Artist);
TrackArtistLink::create(session, track2b.get(), artist2.get(), TrackArtistLinkType::Artist);
TrackArtistLink::create(session, track3.get(), artist3.get(), TrackArtistLinkType::Artist); TrackArtistLink::create(session, track3.get(), artist3.get(), TrackArtistLinkType::Artist);
} }
+6 -3
View File
@@ -77,7 +77,8 @@ namespace lms::db::tests
TEST_F(DatabaseFixture, Release_findByRangedIdBased) TEST_F(DatabaseFixture, Release_findByRangedIdBased)
{ {
ScopedTrack track1{ session, "MyTrackFile1" }; ScopedTrack track1{ session, "MyTrackFile1" };
ScopedTrack track2{ session, "MyTrackFile2" }; ScopedTrack track2a{ session, "MyTrackFile2a" };
ScopedTrack track2b{ session, "MyTrackFile2b" };
ScopedTrack track3{ session, "MyTrackFile3" }; ScopedTrack track3{ session, "MyTrackFile3" };
ScopedRelease release1{ session, "MyRelease1" }; ScopedRelease release1{ session, "MyRelease1" };
ScopedRelease release2{ session, "MyRelease2" }; ScopedRelease release2{ session, "MyRelease2" };
@@ -87,9 +88,11 @@ namespace lms::db::tests
{ {
auto transaction{ session.createWriteTransaction() }; auto transaction{ session.createWriteTransaction() };
track2.get().modify()->setMediaLibrary(library.get()); track2a.get().modify()->setMediaLibrary(library.get());
track2b.get().modify()->setMediaLibrary(library.get());
track1.get().modify()->setRelease(release1.get()); track1.get().modify()->setRelease(release1.get());
track2.get().modify()->setRelease(release2.get()); track2a.get().modify()->setRelease(release2.get());
track2b.get().modify()->setRelease(release2.get());
track3.get().modify()->setRelease(release3.get()); track3.get().modify()->setRelease(release3.get());
} }