Skip to content
Extraits de code Groupes Projets
Valider 9b280399 rédigé par Kubat's avatar Kubat
Parcourir les fichiers

Merge branch 'pop' into 'master'

Pop

Closes #39

See merge request !74
parents 3180ba85 4cd5c763
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!74Pop
......@@ -252,17 +252,17 @@ database_queue_add_uri(volatile sqlite3 *db, struct lkt_uri *uri, int priority)
bool
database_queue_del_id(volatile sqlite3 *db, int id)
{
#define POS_OF_ID "(SELECT position FROM queue WHERE kara_id = %d)"
static const char *SQL_TEMPLATE =
"BEGIN TRANSACTION;"
"WITH before(pos) AS (SELECT position FROM queue JOIN queue_state WHERE position < current ORDER BY position DESC LIMIT 1) "
"UPDATE queue_state SET current = CASE"
" WHEN current IS NULL THEN NULL"
" ELSE (SELECT pos FROM before) "
"END WHERE current > (SELECT position FROM queue WHERE kara_id = %d);"
"UPDATE queue_state SET current = CASE WHEN current IS NULL THEN NULL ELSE (SELECT pos FROM before) END WHERE current > " POS_OF_ID ";"
"UPDATE queue SET position = position - 1 WHERE position > " POS_OF_ID ";"
"DELETE FROM queue WHERE kara_id = %d;"
"COMMIT TRANSACTION;";
#undef POS_OF_ID
char SQL[LKT_MAX_SQLITE_STATEMENT];
snprintf(SQL, LKT_MAX_SQLITE_STATEMENT - 1, SQL_TEMPLATE, id, id, id);
snprintf(SQL, LKT_MAX_SQLITE_STATEMENT - 1, SQL_TEMPLATE, id, id, id, id);
SQL[LKT_MAX_SQLITE_STATEMENT - 1] = '\0';
SQLITE_EXEC(db, SQL, error);
return true;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter