From df9552bcc1779b0327d7832e485d24010c2548eb Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 5 Apr 2023 12:30:24 +0930 Subject: [PATCH] db: make db_exec_prepared_v2 return void. It calls db_fatal() if it fails anyway, so don't expect anyone to check. Signed-off-by: Rusty Russell --- db/exec.c | 6 ++---- db/utils.c | 4 +--- db/utils.h | 2 +- wallet/test/run-db.c | 20 +++++++------------- 4 files changed, 11 insertions(+), 21 deletions(-) diff --git a/db/exec.c b/db/exec.c index 34d085e7a..8ba4afc88 100644 --- a/db/exec.c +++ b/db/exec.c @@ -64,8 +64,7 @@ void db_set_intvar(struct db *db, char *varname, s64 val) struct db_stmt *stmt = db_prepare_v2(db, SQL("UPDATE vars SET intval=? WHERE name=?;")); db_bind_int(stmt, 0, val); db_bind_text(stmt, 1, varname); - if (!db_exec_prepared_v2(stmt)) - db_fatal("Error executing update: %s", stmt->error); + db_exec_prepared_v2(stmt); changes = db_count_changes(stmt); tal_free(stmt); @@ -73,8 +72,7 @@ void db_set_intvar(struct db *db, char *varname, s64 val) stmt = db_prepare_v2(db, SQL("INSERT INTO vars (name, intval) VALUES (?, ?);")); db_bind_text(stmt, 0, varname); db_bind_int(stmt, 1, val); - if (!db_exec_prepared_v2(stmt)) - db_fatal("Error executing insert: %s", stmt->error); + db_exec_prepared_v2(stmt); tal_free(stmt); } } diff --git a/db/utils.c b/db/utils.c index ffed7a75a..52e209fa4 100644 --- a/db/utils.c +++ b/db/utils.c @@ -171,7 +171,7 @@ bool db_step(struct db_stmt *stmt) return ret; } -bool db_exec_prepared_v2(struct db_stmt *stmt TAKES) +void db_exec_prepared_v2(struct db_stmt *stmt TAKES) { bool ret = stmt->db->config->exec_fn(stmt); @@ -191,8 +191,6 @@ bool db_exec_prepared_v2(struct db_stmt *stmt TAKES) if (taken(stmt)) tal_free(stmt); - - return ret; } size_t db_count_changes(struct db_stmt *stmt) diff --git a/db/utils.h b/db/utils.h index d34618b27..8793d5c09 100644 --- a/db/utils.h +++ b/db/utils.h @@ -34,7 +34,7 @@ bool db_step(struct db_stmt *stmt); * * @stmt: The prepared statement to execute */ -bool db_exec_prepared_v2(struct db_stmt *stmt TAKES); +void db_exec_prepared_v2(struct db_stmt *stmt TAKES); /** * db_query_prepared -- Execute a prepared query diff --git a/wallet/test/run-db.c b/wallet/test/run-db.c index 1ecbaa0d3..66f6d5e72 100644 --- a/wallet/test/run-db.c +++ b/wallet/test/run-db.c @@ -129,16 +129,10 @@ static bool test_primitives(void) db_begin_transaction(db); stmt = db_prepare_v2(db, SQL("SELECT name FROM sqlite_master WHERE type='table';")); - CHECK_MSG(db_exec_prepared_v2(stmt), "db_exec_prepared must succeed"); + db_exec_prepared_v2(stmt); CHECK_MSG(!db_err, "Simple correct SQL command"); tal_free(stmt); - stmt = db_prepare_v2(db, SQL("not a valid SQL statement")); - CHECK_MSG(!db_exec_prepared_v2(stmt), "db_exec_prepared must fail"); - CHECK_MSG(db_err, "Failing SQL command"); - tal_free(stmt); - db_err = tal_free(db_err); - /* We didn't migrate the DB, so don't have the vars table. Pretend we * didn't change anything so we don't bump the data_version. */ db->dirty = false; @@ -186,12 +180,12 @@ static bool test_manip_columns(void) " id BIGSERIAL" ", field1 INTEGER" ", PRIMARY KEY (id))")); - CHECK_MSG(db_exec_prepared_v2(stmt), "db_exec_prepared must succeed"); + db_exec_prepared_v2(stmt); CHECK_MSG(!db_err, "Simple correct SQL command"); tal_free(stmt); stmt = db_prepare_v2(db, SQL("INSERT INTO tablea (id, field1) VALUES (0, 1);")); - CHECK_MSG(db_exec_prepared_v2(stmt), "db_exec_prepared must succeed"); + db_exec_prepared_v2(stmt); CHECK_MSG(!db_err, "Simple correct SQL command"); tal_free(stmt); @@ -199,22 +193,22 @@ static bool test_manip_columns(void) " id REFERENCES tablea(id) ON DELETE CASCADE" ", field1 INTEGER" ", field2 INTEGER);")); - CHECK_MSG(db_exec_prepared_v2(stmt), "db_exec_prepared must succeed"); + db_exec_prepared_v2(stmt); CHECK_MSG(!db_err, "Simple correct SQL command"); tal_free(stmt); stmt = db_prepare_v2(db, SQL("INSERT INTO tableb (id, field1, field2) VALUES (0, 1, 2);")); - CHECK_MSG(db_exec_prepared_v2(stmt), "db_exec_prepared must succeed"); + db_exec_prepared_v2(stmt); CHECK_MSG(!db_err, "Simple correct SQL command"); tal_free(stmt); /* Needs vars table, since this changes db. */ stmt = db_prepare_v2(db, SQL("CREATE TABLE vars (name VARCHAR(32), intval);")); - CHECK_MSG(db_exec_prepared_v2(stmt), "db_exec_prepared must succeed"); + db_exec_prepared_v2(stmt); CHECK_MSG(!db_err, "Simple correct SQL command"); tal_free(stmt); stmt = db_prepare_v2(db, SQL("INSERT INTO vars VALUES ('data_version', 0);")); - CHECK_MSG(db_exec_prepared_v2(stmt), "db_exec_prepared must succeed"); + db_exec_prepared_v2(stmt); CHECK_MSG(!db_err, "Simple correct SQL command"); tal_free(stmt);