Browse Source

db_query: don't remove transaction or set error if query fails.

We return NULL in this case.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ppa-0.6.1
Rusty Russell 7 years ago
committed by Christian Decker
parent
commit
360aa15e4d
  1. 9
      wallet/db.c

9
wallet/db.c

@ -203,7 +203,6 @@ sqlite3_stmt *PRINTF_FMT(3, 4)
va_list ap; va_list ap;
char *query; char *query;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
int err;
if (db->in_transaction && db->err) if (db->in_transaction && db->err)
return NULL; return NULL;
@ -214,12 +213,8 @@ sqlite3_stmt *PRINTF_FMT(3, 4)
query = tal_vfmt(db, fmt, ap); query = tal_vfmt(db, fmt, ap);
va_end(ap); va_end(ap);
err = sqlite3_prepare_v2(db->sql, query, -1, &stmt, NULL); /* Sets stmt to NULL if not SQLITE_OK */
if (err != SQLITE_OK) { sqlite3_prepare_v2(db->sql, query, -1, &stmt, NULL);
db->in_transaction = false;
db->err = tal_fmt(db, "%s:%s:%s:%s", caller,
sqlite3_errstr(err), query, sqlite3_errmsg(db->sql));
}
return stmt; return stmt;
} }

Loading…
Cancel
Save