diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2010-01-02 19:14:29 +0100 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2010-01-02 19:14:29 +0100 |
commit | f4e78b03800068498ab72b24f54d9d2c2ab71201 (patch) | |
tree | 8a61733ad595404f7a26fc84b53ff1f65c7359c1 /db.c | |
parent | dd29fc5cc27b5540500fa341726b594221aee76d (diff) |
Implemented removal of tags.
Diffstat (limited to 'db.c')
-rw-r--r-- | db.c | 48 |
1 files changed, 48 insertions, 0 deletions
@@ -428,6 +428,54 @@ sqlite_uint64 db_add_tag(const char *name) { } } +static void db_remove_tag_walltags(sqlite_uint64 tagid) { + sqlite3_stmt *stmt; + int rc; + + rc = sqlite3_prepare_v2(db, "DELETE FROM walltags WHERE tagid = ?", -1, &stmt, NULL); + + if(rc != SQLITE_OK) { + return; + } + + rc = sqlite3_bind_int64(stmt, 1, tagid); + if(rc != SQLITE_OK) { + sqlite3_finalize(stmt); + return; + } + + sqlite3_step(stmt); + + sqlite3_finalize(stmt); +} + +static void db_remove_tag_tag(sqlite_uint64 tagid) { + sqlite3_stmt *stmt; + int rc; + + rc = sqlite3_prepare_v2(db, "DELETE FROM tag WHERE id = ?", -1, &stmt, NULL); + + if(rc != SQLITE_OK) { + return; + } + + rc = sqlite3_bind_int64(stmt, 1, tagid); + if(rc != SQLITE_OK) { + sqlite3_finalize(stmt); + return; + } + + sqlite3_step(stmt); + + sqlite3_finalize(stmt); +} + +void db_remove_tag(sqlite_uint64 tagid) { + db_remove_tag_walltags(tagid); + + db_remove_tag_tag(tagid); +} + int db_get_tags_all(GArray **array) { struct tag_t temp, *temp2; sqlite3_stmt *stmt; |