From 9ff44a685412313df6daf4609fc9252a8e57922e Mon Sep 17 00:00:00 2001 From: Deluan Date: Fri, 4 Sep 2026 22:28:19 -0400 Subject: [PATCH] fix(pglite): group playlist album ids instead of DISTINCT so random order works PostgreSQL rejects SELECT DISTINCT with ORDER BY random(), which the playlist cover picker uses to sample album ids. GROUP BY yields the same distinct set and allows the volatile ordering. --- persistence/playlist_track_repository.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/persistence/playlist_track_repository.go b/persistence/playlist_track_repository.go index f89c96a7b..2ba76eebc 100644 --- a/persistence/playlist_track_repository.go +++ b/persistence/playlist_track_repository.go @@ -154,9 +154,11 @@ func (r *playlistTrackRepository) GetMediaFileIDs(options ...model.QueryOptions) } func (r *playlistTrackRepository) GetAlbumIDs(options ...model.QueryOptions) ([]string, error) { - query := r.newSelect(options...).Columns("distinct mf.album_id"). + // GROUP BY rather than DISTINCT: PostgreSQL rejects DISTINCT with ORDER BY random(). + query := r.newSelect(options...).Columns("mf.album_id"). Join("media_file mf on mf.id = media_file_id"). - Where(Eq{"playlist_id": r.playlistId}) + Where(Eq{"playlist_id": r.playlistId}). + GroupBy("mf.album_id") var ids []string err := r.queryAllSlice(query, &ids) if err != nil {