From cdb49803371322779dd751c4641c147851d5cfd5 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Sun, 17 Sep 2023 21:54:27 +0200 Subject: [PATCH] CollectionBackend: Don't expire unavailable songs part of playlists --- src/collection/collectionbackend.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/collection/collectionbackend.cpp b/src/collection/collectionbackend.cpp index 5a65300dc..90c3dfe55 100644 --- a/src/collection/collectionbackend.cpp +++ b/src/collection/collectionbackend.cpp @@ -2190,7 +2190,7 @@ void CollectionBackend::ExpireSongs(const int directory_id, const int expire_una QMutexLocker l(db_->Mutex()); QSqlDatabase db(db_->Connect()); SqlQuery q(db); - q.prepare(QString("SELECT ROWID, " + Song::kColumnSpec + " FROM %1 WHERE directory_id = :directory_id AND unavailable = 1 AND lastseen > 0 AND lastseen < :time").arg(songs_table_)); + q.prepare(QString("SELECT %1.ROWID, " + Song::JoinSpec("%1") + " FROM %1 LEFT JOIN playlist_items ON %1.ROWID = playlist_items.collection_id WHERE %1.directory_id = :directory_id AND %1.unavailable = 1 AND %1.lastseen > 0 AND %1.lastseen < :time AND playlist_items.collection_id IS NULL").arg(songs_table_)); q.BindValue(":directory_id", directory_id); q.BindValue(":time", QDateTime::currentDateTime().toSecsSinceEpoch() - (expire_unavailable_songs_days * 86400)); if (!q.Exec()) {