Added missing groupBy when iterating db with a media library filter
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user