Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions db/exec.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ u32 db_data_version_get(struct db *db)
}
/* This fails on uninitialized db, so "0" */
if (db_step(stmt))
version = db_col_int(stmt, "intval");
version = db_col_s64(stmt, "intval");
else
version = 0;
tal_free(stmt);
Expand All @@ -61,7 +61,7 @@ void db_set_intvar(struct db *db, const char *varname, s64 val)
{
size_t changes;
struct db_stmt *stmt = db_prepare_v2(db, SQL("UPDATE vars SET intval=? WHERE name=?;"));
db_bind_int(stmt, val);
db_bind_s64(stmt, val);
db_bind_text(stmt, varname);
db_exec_prepared_v2(stmt);
changes = db_count_changes(stmt);
Expand All @@ -70,7 +70,7 @@ void db_set_intvar(struct db *db, const char *varname, s64 val)
if (changes == 0) {
stmt = db_prepare_v2(db, SQL("INSERT INTO vars (name, intval) VALUES (?, ?);"));
db_bind_text(stmt, varname);
db_bind_int(stmt, val);
db_bind_s64(stmt, val);
db_exec_prepared_v2(stmt);
tal_free(stmt);
}
Expand All @@ -83,7 +83,7 @@ s64 db_get_intvar(struct db *db, const char *varname, s64 defval)
db, SQL("SELECT intval FROM vars WHERE name= ? LIMIT 1"));
db_bind_text(stmt, varname);
if (db_query_prepared_canfail(stmt) && db_step(stmt))
res = db_col_int(stmt, "intval");
res = db_col_s64(stmt, "intval");

tal_free(stmt);
return res;
Expand Down
3 changes: 3 additions & 0 deletions wallet/migrations.c
Original file line number Diff line number Diff line change
Expand Up @@ -1187,6 +1187,9 @@ static const struct db_migration dbmigrations[] = {
{SQL("ALTER TABLE payments ADD failmsg BLOB;"), NULL,
SQL("ALTER TABLE payments DROP COLUMN failmsg"), NULL},
/* ^v26.09 */

{SQL("/*PSQL*/ALTER TABLE vars ALTER COLUMN intval TYPE BIGINT"), NULL,
SQL("/*PSQL*/ALTER TABLE vars ALTER COLUMN intval TYPE INTEGER"), NULL},
};

const struct db_migration *get_db_migrations(size_t *num)
Expand Down
3 changes: 3 additions & 0 deletions wallet/test/run-db.c
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,9 @@ static bool test_vars(struct lightningd *ld)
/* Check updating */
db_set_intvar(db, varname, 2);
CHECK(db_get_intvar(db, varname, 42) == 2);

db_set_intvar(db, varname, 10000000000LL);
CHECK(db_get_intvar(db, varname, 42) == 10000000000LL);
db_commit_transaction(db);

tal_free(db);
Expand Down
Loading