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_artist_link t_a_l ON t_a_l.artist_id = a.id");
query.where("t.media_library_id = ?").bind(library);
query.groupBy("a.id");
}
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.where("t.media_library_id = ?").bind(library);
query.groupBy("r.id");
}
utils::forEachQueryResult(query, [&](const Release::pointer& release)
+6 -3
View File
@@ -80,7 +80,8 @@ namespace lms::db::tests
TEST_F(DatabaseFixture, Artist_findByRangedIdBased)
{
ScopedTrack track1{ session, "MyTrackFile1" };
ScopedTrack track2{ session, "MyTrackFile2" };
ScopedTrack track2a{ session, "MyTrackFile2a" };
ScopedTrack track2b{ session, "MyTrackFile2b" };
ScopedTrack track3{ session, "MyTrackFile3" };
ScopedArtist artist1{ session, "MyArtist1" };
ScopedArtist artist2{ session, "MyArtist2" };
@@ -90,9 +91,11 @@ namespace lms::db::tests
{
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, 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);
}
+6 -3
View File
@@ -77,7 +77,8 @@ namespace lms::db::tests
TEST_F(DatabaseFixture, Release_findByRangedIdBased)
{
ScopedTrack track1{ session, "MyTrackFile1" };
ScopedTrack track2{ session, "MyTrackFile2" };
ScopedTrack track2a{ session, "MyTrackFile2a" };
ScopedTrack track2b{ session, "MyTrackFile2b" };
ScopedTrack track3{ session, "MyTrackFile3" };
ScopedRelease release1{ session, "MyRelease1" };
ScopedRelease release2{ session, "MyRelease2" };
@@ -87,9 +88,11 @@ namespace lms::db::tests
{
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());
track2.get().modify()->setRelease(release2.get());
track2a.get().modify()->setRelease(release2.get());
track2b.get().modify()->setRelease(release2.get());
track3.get().modify()->setRelease(release3.get());
}