mirror of
https://github.com/aljazceru/lightning.git
synced 2026-02-12 01:24:23 +01:00
db: Clear errors before executing new query
This was causing me some trouble by making it look like the last query failed, when it really was an old one. No need to drag failures around for longer than needed. Signed-off-by: Christian Decker <decker.christian@gmail.com>
This commit is contained in:
committed by
Rusty Russell
parent
e162a53e86
commit
4114f6f79b
21
wallet/db.c
21
wallet/db.c
@@ -113,6 +113,14 @@ char *dbmigrations[] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
/**
|
||||
* db_clear_error - Clear any errors from previous queries
|
||||
*/
|
||||
static void db_clear_error(struct db *db)
|
||||
{
|
||||
db->err = tal_free(db->err);
|
||||
}
|
||||
|
||||
bool PRINTF_FMT(3, 4)
|
||||
db_exec(const char *caller, struct db *db, const char *fmt, ...)
|
||||
{
|
||||
@@ -123,6 +131,8 @@ bool PRINTF_FMT(3, 4)
|
||||
if (db->in_transaction && db->err)
|
||||
return false;
|
||||
|
||||
db_clear_error(db);
|
||||
|
||||
va_start(ap, fmt);
|
||||
cmd = tal_vfmt(db, fmt, ap);
|
||||
va_end(ap);
|
||||
@@ -151,6 +161,8 @@ sqlite3_stmt *PRINTF_FMT(3, 4)
|
||||
if (db->in_transaction && db->err)
|
||||
return NULL;
|
||||
|
||||
db_clear_error(db);
|
||||
|
||||
va_start(ap, fmt);
|
||||
query = tal_vfmt(db, fmt, ap);
|
||||
va_end(ap);
|
||||
@@ -164,15 +176,6 @@ sqlite3_stmt *PRINTF_FMT(3, 4)
|
||||
return stmt;
|
||||
}
|
||||
|
||||
/**
|
||||
* db_clear_error - Clear any errors from previous queries
|
||||
*/
|
||||
static void db_clear_error(struct db *db)
|
||||
{
|
||||
db->err = tal_free(db->err);
|
||||
}
|
||||
|
||||
|
||||
static void close_db(struct db *db) { sqlite3_close(db->sql); }
|
||||
|
||||
bool db_begin_transaction(struct db *db)
|
||||
|
||||
Reference in New Issue
Block a user