From 98963c58e49c0b0d3c760c3f59ebd3d5dfbbed43 Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Sat, 3 Aug 2019 15:47:46 +0200 Subject: [PATCH] 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 --- wallet/db.c | 2 ++ wallet/db_common.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/wallet/db.c b/wallet/db.c index da691dd3e..d3b3728a2 100644 --- a/wallet/db.c +++ b/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); diff --git a/wallet/db_common.h b/wallet/db_common.h index d6e810238..e7e176518 100644 --- a/wallet/db_common.h +++ b/wallet/db_common.h @@ -78,6 +78,8 @@ struct db_stmt { /* Pointer to DB-specific statement. */ void *inner_stmt; + + bool executed; }; struct db_config {