diff --git a/src/database/queue.c b/src/database/queue.c index 8fdd07deafab75e29ac5e679c135c0de86868c47..14c7312b3ea44b0d683d5e246e7d7c6451f6d5ec 100644 --- a/src/database/queue.c +++ b/src/database/queue.c @@ -255,7 +255,7 @@ database_queue_del_id(volatile sqlite3 *db, int id) "BEGIN TRANSACTION;" "CREATE TEMPORARY TABLE queue_tmp (position INTEGER, kara_id INTEGER, priority INTEGER);" /* Move the current 'pointer' */ - "UPDATE queue_state SET current = (SELECT current - COUNT(position) FROM queue JOIN queue_state ON position <= current AND kara_id = %d);" + "UPDATE queue_state SET current = (SELECT NULLIF(COUNT(position), 0) FROM queue JOIN queue_state ON position <= current AND kara_id != %d);" "DELETE FROM queue WHERE kara_id = %d;" /* Delete any kara with the specified id */ "INSERT INTO queue_tmp(priority, position, kara_id) SELECT priority, position, kara_id FROM queue ORDER BY position ASC;" "DELETE FROM queue;"