Browse Source

db: Track whether a db_stmt has been executed

For some of the query methods in the next step we need to have an idea of
whether the stmt was executed (db_step function) so let's track that
explicitly.

Signed-off-by: Christian Decker <decker.christian@gmail.com>
pull/2803/head
Christian Decker 6 years ago
committed by Rusty Russell
parent
commit
98963c58e4
  1. 2
      wallet/db.c
  2. 2
      wallet/db_common.h

2
wallet/db.c

@ -593,6 +593,7 @@ struct db_stmt *db_prepare_v2_(const char *location, struct db *db,
stmt->location = location;
stmt->error = NULL;
stmt->db = db;
stmt->executed = false;
stmt->inner_stmt = NULL;
tal_add_destructor(stmt, db_stmt_free);
@ -1346,6 +1347,7 @@ bool db_exec_prepared_v2(struct db_stmt *stmt TAKES)
{
const char *expanded_sql;
bool ret = stmt->db->config->exec_fn(stmt);
stmt->executed = true;
if (stmt->db->config->expand_fn != NULL && ret &&
!stmt->query->readonly) {
expanded_sql = stmt->db->config->expand_fn(stmt);

2
wallet/db_common.h

@ -78,6 +78,8 @@ struct db_stmt {
/* Pointer to DB-specific statement. */
void *inner_stmt;
bool executed;
};
struct db_config {

Loading…
Cancel
Save