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.
This commit is contained in:
Deluan 2026-09-04 22:28:19 -04:00
commit 9ff44a6854

View file

@ -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 {