bkpr: use BIND_NEXT.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2023-07-14 09:58:46 +09:30
parent eee40615e2
commit 9af407a47a
3 changed files with 109 additions and 109 deletions

View File

@@ -136,7 +136,7 @@ static bool db_migrate(struct plugin *p, struct db *db, bool *created)
/* Finally, update the version number in the version table */ /* Finally, update the version number in the version table */
stmt = db_prepare_v2(db, SQL("UPDATE version SET version=?;")); stmt = db_prepare_v2(db, SQL("UPDATE version SET version=?;"));
db_bind_int(stmt, 0, available); db_bind_int(stmt, BIND_NEXT, available);
db_exec_prepared_v2(take(stmt)); db_exec_prepared_v2(take(stmt));
return current != orig; return current != orig;
@@ -179,7 +179,7 @@ static void migration_remove_dupe_lease_fees(struct plugin *p, struct db *db)
/* same acct as last, we found a duplicate */ /* same acct as last, we found a duplicate */
del_stmt = db_prepare_v2(db, SQL("DELETE FROM channel_events" del_stmt = db_prepare_v2(db, SQL("DELETE FROM channel_events"
" WHERE id=?")); " WHERE id=?"));
db_bind_u64(del_stmt, 0, id); db_bind_u64(del_stmt, BIND_NEXT, id);
db_exec_prepared_v2(take(del_stmt)); db_exec_prepared_v2(take(del_stmt));
} }
tal_free(stmt); tal_free(stmt);

View File

@@ -192,7 +192,7 @@ static struct income_event *maybe_chain_income(const tal_t *ctx,
" WHERE " " WHERE "
" e.spending_txid = ?")); " e.spending_txid = ?"));
db_bind_txid(stmt, 0, &ev->outpoint.txid); db_bind_txid(stmt, BIND_NEXT, &ev->outpoint.txid);
db_query_prepared(stmt); db_query_prepared(stmt);
if (!db_step(stmt)) { if (!db_step(stmt)) {
tal_free(stmt); tal_free(stmt);

View File

@@ -170,8 +170,8 @@ struct chain_event **list_chain_events_timebox(const tal_t *ctx,
" AND e.timestamp <= ?" " AND e.timestamp <= ?"
" ORDER BY e.timestamp, e.id;")); " ORDER BY e.timestamp, e.id;"));
db_bind_u64(stmt, 0, start_time); db_bind_u64(stmt, BIND_NEXT, start_time);
db_bind_u64(stmt, 1, end_time); db_bind_u64(stmt, BIND_NEXT, end_time);
return find_chain_events(ctx, take(stmt)); return find_chain_events(ctx, take(stmt));
} }
@@ -211,7 +211,7 @@ struct chain_event **account_get_chain_events(const tal_t *ctx,
" WHERE e.account_id = ?" " WHERE e.account_id = ?"
" ORDER BY e.timestamp, e.id")); " ORDER BY e.timestamp, e.id"));
db_bind_int(stmt, 0, acct->db_id); db_bind_int(stmt, BIND_NEXT, acct->db_id);
return find_chain_events(ctx, take(stmt)); return find_chain_events(ctx, take(stmt));
} }
@@ -250,7 +250,7 @@ static struct chain_event **find_txos_for_tx(const tal_t *ctx,
", e.spending_txid NULLS FIRST" ", e.spending_txid NULLS FIRST"
", e.blockheight")); ", e.blockheight"));
db_bind_txid(stmt, 0, txid); db_bind_txid(stmt, BIND_NEXT, txid);
return find_chain_events(ctx, take(stmt)); return find_chain_events(ctx, take(stmt));
} }
@@ -317,8 +317,8 @@ u64 onchain_fee_last_timestamp(struct db *db,
" ORDER BY timestamp DESC")); " ORDER BY timestamp DESC"));
db_bind_u64(stmt, 0, acct_db_id); db_bind_u64(stmt, BIND_NEXT, acct_db_id);
db_bind_txid(stmt, 1, txid); db_bind_txid(stmt, BIND_NEXT, txid);
db_query_prepared(stmt); db_query_prepared(stmt);
if (db_step(stmt)) if (db_step(stmt))
@@ -345,7 +345,7 @@ struct fee_sum **find_account_onchain_fees(const tal_t *ctx,
" GROUP BY txid, update_count" " GROUP BY txid, update_count"
" ORDER BY txid, update_count")); " ORDER BY txid, update_count"));
db_bind_u64(stmt, 0, acct->db_id); db_bind_u64(stmt, BIND_NEXT, acct->db_id);
db_query_prepared(stmt); db_query_prepared(stmt);
sums = tal_arr(ctx, struct fee_sum *, 0); sums = tal_arr(ctx, struct fee_sum *, 0);
@@ -551,8 +551,8 @@ struct account *find_close_account(const tal_t *ctx,
" e.tag = ?" " e.tag = ?"
" AND e.spending_txid = ?")); " AND e.spending_txid = ?"));
db_bind_text(stmt, 0, mvt_tag_str(CHANNEL_CLOSE)); db_bind_text(stmt, BIND_NEXT, mvt_tag_str(CHANNEL_CLOSE));
db_bind_txid(stmt, 1, txid); db_bind_txid(stmt, BIND_NEXT, txid);
db_query_prepared(stmt); db_query_prepared(stmt);
if (db_step(stmt)) { if (db_step(stmt)) {
@@ -607,7 +607,7 @@ void maybe_mark_account_onchain(struct db *db, struct account *acct)
" ORDER BY blockheight DESC" " ORDER BY blockheight DESC"
" LIMIT 1")); " LIMIT 1"));
db_bind_u64(stmt, 0, acct->db_id); db_bind_u64(stmt, BIND_NEXT, acct->db_id);
db_query_prepared(stmt); db_query_prepared(stmt);
ok = db_step(stmt); ok = db_step(stmt);
assert(ok); assert(ok);
@@ -620,8 +620,8 @@ void maybe_mark_account_onchain(struct db *db, struct account *acct)
" onchain_resolved_block = ?" " onchain_resolved_block = ?"
" WHERE" " WHERE"
" id = ?")); " id = ?"));
db_bind_int(stmt, 0, acct->onchain_resolved_block); db_bind_int(stmt, BIND_NEXT, acct->onchain_resolved_block);
db_bind_u64(stmt, 1, acct->db_id); db_bind_u64(stmt, BIND_NEXT, acct->db_id);
db_exec_prepared_v2(take(stmt)); db_exec_prepared_v2(take(stmt));
} }
@@ -639,8 +639,8 @@ void add_payment_hash_desc(struct db *db,
" ev_desc = ?" " ev_desc = ?"
" WHERE" " WHERE"
" payment_id = ?")); " payment_id = ?"));
db_bind_text(stmt, 0, desc); db_bind_text(stmt, BIND_NEXT, desc);
db_bind_sha256(stmt, 1, payment_hash); db_bind_sha256(stmt, BIND_NEXT, payment_hash);
db_exec_prepared_v2(take(stmt)); db_exec_prepared_v2(take(stmt));
/* Ok, now we update the account with this blockheight */ /* Ok, now we update the account with this blockheight */
@@ -648,8 +648,8 @@ void add_payment_hash_desc(struct db *db,
" ev_desc = ?" " ev_desc = ?"
" WHERE" " WHERE"
" payment_id = ?")); " payment_id = ?"));
db_bind_text(stmt, 0, desc); db_bind_text(stmt, BIND_NEXT, desc);
db_bind_sha256(stmt, 1, payment_hash); db_bind_sha256(stmt, BIND_NEXT, payment_hash);
db_exec_prepared_v2(take(stmt)); db_exec_prepared_v2(take(stmt));
} }
@@ -685,7 +685,7 @@ struct chain_event *find_chain_event_by_id(const tal_t *ctx,
" WHERE " " WHERE "
" e.id = ?")); " e.id = ?"));
db_bind_u64(stmt, 0, event_db_id); db_bind_u64(stmt, BIND_NEXT, event_db_id);
db_query_prepared(stmt); db_query_prepared(stmt);
if (db_step(stmt)) if (db_step(stmt))
e = stmt2chain_event(ctx, stmt); e = stmt2chain_event(ctx, stmt);
@@ -735,7 +735,7 @@ static struct chain_event *find_chain_event(const tal_t *ctx,
" AND e.account_id = ?" " AND e.account_id = ?"
" AND e.utxo_txid = ?" " AND e.utxo_txid = ?"
" AND e.outnum = ?")); " AND e.outnum = ?"));
db_bind_txid(stmt, 0, spending_txid); db_bind_txid(stmt, BIND_NEXT, spending_txid);
} else { } else {
stmt = db_prepare_v2(db, SQL("SELECT" stmt = db_prepare_v2(db, SQL("SELECT"
" e.id" " e.id"
@@ -765,12 +765,12 @@ static struct chain_event *find_chain_event(const tal_t *ctx,
" AND e.utxo_txid = ?" " AND e.utxo_txid = ?"
" AND e.outnum = ?" " AND e.outnum = ?"
" AND e.spending_txid IS NULL")); " AND e.spending_txid IS NULL"));
db_bind_text(stmt, 0, tag); db_bind_text(stmt, BIND_NEXT, tag);
} }
db_bind_u64(stmt, 1, acct->db_id); db_bind_u64(stmt, BIND_NEXT, acct->db_id);
db_bind_txid(stmt, 2, &outpoint->txid); db_bind_txid(stmt, BIND_NEXT, &outpoint->txid);
db_bind_int(stmt, 3, outpoint->n); db_bind_int(stmt, BIND_NEXT, outpoint->n);
db_query_prepared(stmt); db_query_prepared(stmt);
if (db_step(stmt)) if (db_step(stmt))
@@ -803,10 +803,10 @@ char *account_get_balance(const tal_t *ctx,
" AND ce.ignored != ?" " AND ce.ignored != ?"
" GROUP BY ce.currency")); " GROUP BY ce.currency"));
db_bind_text(stmt, 0, acct_name); db_bind_text(stmt, BIND_NEXT, acct_name);
/* We populate ignored with a 0 or 1, /* We populate ignored with a 0 or 1,
* if we want both 0+1, we just ignore everything with a 2 */ * if we want both 0+1, we just ignore everything with a 2 */
db_bind_int(stmt, 1, skip_ignored ? 1 : 2); db_bind_int(stmt, BIND_NEXT, skip_ignored ? 1 : 2);
db_query_prepared(stmt); db_query_prepared(stmt);
*balances = tal_arr(ctx, struct acct_balance *, 0); *balances = tal_arr(ctx, struct acct_balance *, 0);
if (account_exists) if (account_exists)
@@ -836,7 +836,7 @@ char *account_get_balance(const tal_t *ctx,
" ON a.id = ce.account_id" " ON a.id = ce.account_id"
" WHERE a.name = ?" " WHERE a.name = ?"
" GROUP BY ce.currency")); " GROUP BY ce.currency"));
db_bind_text(stmt, 0, acct_name); db_bind_text(stmt, BIND_NEXT, acct_name);
db_query_prepared(stmt); db_query_prepared(stmt);
while (db_step(stmt)) { while (db_step(stmt)) {
@@ -924,8 +924,8 @@ struct channel_event **list_channel_events_timebox(const tal_t *ctx,
" AND e.timestamp <= ?" " AND e.timestamp <= ?"
" ORDER BY e.timestamp, e.id;")); " ORDER BY e.timestamp, e.id;"));
db_bind_u64(stmt, 0, start_time); db_bind_u64(stmt, BIND_NEXT, start_time);
db_bind_u64(stmt, 1, end_time); db_bind_u64(stmt, BIND_NEXT, end_time);
db_query_prepared(stmt); db_query_prepared(stmt);
results = tal_arr(ctx, struct channel_event *, 0); results = tal_arr(ctx, struct channel_event *, 0);
@@ -971,7 +971,7 @@ struct channel_event **account_get_channel_events(const tal_t *ctx,
" WHERE e.account_id = ?" " WHERE e.account_id = ?"
" ORDER BY e.timestamp, e.id")); " ORDER BY e.timestamp, e.id"));
db_bind_u64(stmt, 0, acct->db_id); db_bind_u64(stmt, BIND_NEXT, acct->db_id);
db_query_prepared(stmt); db_query_prepared(stmt);
results = tal_arr(ctx, struct channel_event *, 0); results = tal_arr(ctx, struct channel_event *, 0);
@@ -1025,7 +1025,7 @@ struct onchain_fee **account_get_chain_fees(const tal_t *ctx, struct db *db,
", of.txid" ", of.txid"
", of.update_count")); ", of.update_count"));
db_bind_u64(stmt, 0, acct->db_id); db_bind_u64(stmt, BIND_NEXT, acct->db_id);
db_query_prepared(stmt); db_query_prepared(stmt);
results = tal_arr(ctx, struct onchain_fee *, 0); results = tal_arr(ctx, struct onchain_fee *, 0);
@@ -1064,8 +1064,8 @@ struct onchain_fee **list_chain_fees_timebox(const tal_t *ctx, struct db *db,
", of.txid" ", of.txid"
", of.update_count")); ", of.update_count"));
db_bind_u64(stmt, 0, start_time); db_bind_u64(stmt, BIND_NEXT, start_time);
db_bind_u64(stmt, 1, end_time); db_bind_u64(stmt, BIND_NEXT, end_time);
db_query_prepared(stmt); db_query_prepared(stmt);
results = tal_arr(ctx, struct onchain_fee *, 0); results = tal_arr(ctx, struct onchain_fee *, 0);
@@ -1142,7 +1142,7 @@ struct account *find_account(const tal_t *ctx,
" FROM accounts" " FROM accounts"
" WHERE name = ?")); " WHERE name = ?"));
db_bind_text(stmt, 0, name); db_bind_text(stmt, BIND_NEXT, name);
db_query_prepared(stmt); db_query_prepared(stmt);
if (db_step(stmt)) if (db_step(stmt))
@@ -1176,7 +1176,7 @@ struct onchain_fee **account_onchain_fees(const tal_t *ctx,
" ON a.id = of.account_id" " ON a.id = of.account_id"
" WHERE of.account_id = ?;")); " WHERE of.account_id = ?;"));
db_bind_u64(stmt, 0, acct->db_id); db_bind_u64(stmt, BIND_NEXT, acct->db_id);
db_query_prepared(stmt); db_query_prepared(stmt);
results = tal_arr(ctx, struct onchain_fee *, 0); results = tal_arr(ctx, struct onchain_fee *, 0);
@@ -1233,14 +1233,14 @@ void account_add(struct db *db, struct account *acct)
" VALUES" " VALUES"
" (?, ?, ?, ?, ?);")); " (?, ?, ?, ?, ?);"));
db_bind_text(stmt, 0, acct->name); db_bind_text(stmt, BIND_NEXT, acct->name);
if (acct->peer_id) if (acct->peer_id)
db_bind_node_id(stmt, 1, acct->peer_id); db_bind_node_id(stmt, BIND_NEXT, acct->peer_id);
else else
db_bind_null(stmt, 1); db_bind_null(stmt, BIND_NEXT);
db_bind_int(stmt, 2, acct->is_wallet ? 1 : 0); db_bind_int(stmt, BIND_NEXT, acct->is_wallet ? 1 : 0);
db_bind_int(stmt, 3, acct->we_opened ? 1 : 0); db_bind_int(stmt, BIND_NEXT, acct->we_opened ? 1 : 0);
db_bind_int(stmt, 4, acct->leased ? 1 : 0); db_bind_int(stmt, BIND_NEXT, acct->leased ? 1 : 0);
db_exec_prepared_v2(stmt); db_exec_prepared_v2(stmt);
acct->db_id = db_last_insert_id_v2(stmt); acct->db_id = db_last_insert_id_v2(stmt);
@@ -1328,24 +1328,24 @@ void maybe_update_account(struct db *db,
" name = ?")); " name = ?"));
if (acct->open_event_db_id) if (acct->open_event_db_id)
db_bind_u64(stmt, 0, *acct->open_event_db_id); db_bind_u64(stmt, BIND_NEXT, *acct->open_event_db_id);
else else
db_bind_null(stmt, 0); db_bind_null(stmt, BIND_NEXT);
if (acct->closed_event_db_id) if (acct->closed_event_db_id)
db_bind_u64(stmt, 1, *acct->closed_event_db_id); db_bind_u64(stmt, BIND_NEXT, *acct->closed_event_db_id);
else else
db_bind_null(stmt, 1); db_bind_null(stmt, BIND_NEXT);
db_bind_int(stmt, 2, acct->we_opened ? 1 : 0); db_bind_int(stmt, BIND_NEXT, acct->we_opened ? 1 : 0);
db_bind_int(stmt, 3, acct->leased ? 1 : 0); db_bind_int(stmt, BIND_NEXT, acct->leased ? 1 : 0);
db_bind_int(stmt, 4, acct->closed_count); db_bind_int(stmt, BIND_NEXT, acct->closed_count);
if (acct->peer_id) if (acct->peer_id)
db_bind_node_id(stmt, 5, acct->peer_id); db_bind_node_id(stmt, BIND_NEXT, acct->peer_id);
else else
db_bind_null(stmt, 5); db_bind_null(stmt, BIND_NEXT);
db_bind_text(stmt, 6, acct->name); db_bind_text(stmt, BIND_NEXT, acct->name);
db_exec_prepared_v2(take(stmt)); db_exec_prepared_v2(take(stmt));
} }
@@ -1373,27 +1373,27 @@ void log_channel_event(struct db *db,
" VALUES" " VALUES"
" (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);")); " (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"));
db_bind_u64(stmt, 0, acct->db_id); db_bind_u64(stmt, BIND_NEXT, acct->db_id);
db_bind_text(stmt, 1, e->tag); db_bind_text(stmt, BIND_NEXT, e->tag);
db_bind_amount_msat(stmt, 2, &e->credit); db_bind_amount_msat(stmt, BIND_NEXT, &e->credit);
db_bind_amount_msat(stmt, 3, &e->debit); db_bind_amount_msat(stmt, BIND_NEXT, &e->debit);
db_bind_amount_msat(stmt, 4, &e->fees); db_bind_amount_msat(stmt, BIND_NEXT, &e->fees);
db_bind_text(stmt, 5, e->currency); db_bind_text(stmt, BIND_NEXT, e->currency);
if (e->payment_id) if (e->payment_id)
db_bind_sha256(stmt, 6, e->payment_id); db_bind_sha256(stmt, BIND_NEXT, e->payment_id);
else else
db_bind_null(stmt, 6); db_bind_null(stmt, BIND_NEXT);
db_bind_int(stmt, 7, e->part_id); db_bind_int(stmt, BIND_NEXT, e->part_id);
db_bind_u64(stmt, 8, e->timestamp); db_bind_u64(stmt, BIND_NEXT, e->timestamp);
if (e->desc) if (e->desc)
db_bind_text(stmt, 9, e->desc); db_bind_text(stmt, BIND_NEXT, e->desc);
else else
db_bind_null(stmt, 9); db_bind_null(stmt, BIND_NEXT);
if (e->rebalance_id) if (e->rebalance_id)
db_bind_u64(stmt, 10, *e->rebalance_id); db_bind_u64(stmt, BIND_NEXT, *e->rebalance_id);
else else
db_bind_null(stmt, 10); db_bind_null(stmt, BIND_NEXT);
db_exec_prepared_v2(stmt); db_exec_prepared_v2(stmt);
e->db_id = db_last_insert_id_v2(stmt); e->db_id = db_last_insert_id_v2(stmt);
@@ -1433,8 +1433,8 @@ static struct chain_event **find_chain_events_bytxid(const tal_t *ctx, struct db
" OR (e.utxo_txid = ? AND e.spending_txid IS NULL)" " OR (e.utxo_txid = ? AND e.spending_txid IS NULL)"
" ORDER BY e.account_id")); " ORDER BY e.account_id"));
db_bind_txid(stmt, 0, txid); db_bind_txid(stmt, BIND_NEXT, txid);
db_bind_txid(stmt, 1, txid); db_bind_txid(stmt, BIND_NEXT, txid);
return find_chain_events(ctx, take(stmt)); return find_chain_events(ctx, take(stmt));
} }
@@ -1448,7 +1448,7 @@ static u64 find_acct_id(struct db *db, const char *name)
" FROM accounts" " FROM accounts"
" WHERE name = ?")); " WHERE name = ?"));
db_bind_text(stmt, 0, name); db_bind_text(stmt, BIND_NEXT, name);
db_query_prepared(stmt); db_query_prepared(stmt);
if (db_step(stmt)) if (db_step(stmt))
acct_id = db_col_u64(stmt, "id"); acct_id = db_col_u64(stmt, "id");
@@ -1481,8 +1481,8 @@ static void insert_chain_fees_diff(struct db *db,
" AND account_id = ?" " AND account_id = ?"
" ORDER BY update_count")); " ORDER BY update_count"));
db_bind_txid(stmt, 0, txid); db_bind_txid(stmt, BIND_NEXT, txid);
db_bind_u64(stmt, 1, acct_id); db_bind_u64(stmt, BIND_NEXT, acct_id);
db_query_prepared(stmt); db_query_prepared(stmt);
/* If there's no current record, add it */ /* If there's no current record, add it */
@@ -1527,13 +1527,13 @@ static void insert_chain_fees_diff(struct db *db,
") VALUES" ") VALUES"
" (?, ?, ?, ?, ?, ?, ?);")); " (?, ?, ?, ?, ?, ?, ?);"));
db_bind_u64(stmt, 0, acct_id); db_bind_u64(stmt, BIND_NEXT, acct_id);
db_bind_txid(stmt, 1, txid); db_bind_txid(stmt, BIND_NEXT, txid);
db_bind_amount_msat(stmt, 2, &credit); db_bind_amount_msat(stmt, BIND_NEXT, &credit);
db_bind_amount_msat(stmt, 3, &debit); db_bind_amount_msat(stmt, BIND_NEXT, &debit);
db_bind_text(stmt, 4, currency); db_bind_text(stmt, BIND_NEXT, currency);
db_bind_u64(stmt, 5, timestamp); db_bind_u64(stmt, BIND_NEXT, timestamp);
db_bind_int(stmt, 6, ++update_count); db_bind_int(stmt, BIND_NEXT, ++update_count);
db_exec_prepared_v2(take(stmt)); db_exec_prepared_v2(take(stmt));
} }
@@ -1702,8 +1702,8 @@ void maybe_record_rebalance(struct db *db,
" AND e.credit = ?" " AND e.credit = ?"
" AND e.rebalance_id IS NULL")); " AND e.rebalance_id IS NULL"));
db_bind_sha256(stmt, 0, out->payment_id); db_bind_sha256(stmt, BIND_NEXT, out->payment_id);
db_bind_amount_msat(stmt, 1, &credit); db_bind_amount_msat(stmt, BIND_NEXT, &credit);
db_query_prepared(stmt); db_query_prepared(stmt);
if (!db_step(stmt)) { if (!db_step(stmt)) {
@@ -1722,16 +1722,16 @@ void maybe_record_rebalance(struct db *db,
" rebalance_id = ?" " rebalance_id = ?"
" WHERE" " WHERE"
" id = ?")); " id = ?"));
db_bind_u64(stmt, 0, *out->rebalance_id); db_bind_u64(stmt, BIND_NEXT, *out->rebalance_id);
db_bind_u64(stmt, 1, out->db_id); db_bind_u64(stmt, BIND_NEXT, out->db_id);
db_exec_prepared_v2(take(stmt)); db_exec_prepared_v2(take(stmt));
stmt = db_prepare_v2(db, SQL("UPDATE channel_events SET" stmt = db_prepare_v2(db, SQL("UPDATE channel_events SET"
" rebalance_id = ?" " rebalance_id = ?"
" WHERE" " WHERE"
" id = ?")); " id = ?"));
db_bind_u64(stmt, 0, out->db_id); db_bind_u64(stmt, BIND_NEXT, out->db_id);
db_bind_u64(stmt, 1, *out->rebalance_id); db_bind_u64(stmt, BIND_NEXT, *out->rebalance_id);
db_exec_prepared_v2(take(stmt)); db_exec_prepared_v2(take(stmt));
} }
@@ -1953,9 +1953,9 @@ void maybe_closeout_external_deposits(struct db *db,
" AND a.name = ?")); " AND a.name = ?"));
/* Blockheight for unconfirmeds is zero */ /* Blockheight for unconfirmeds is zero */
db_bind_int(stmt, 0, 0); db_bind_int(stmt, BIND_NEXT, 0);
db_bind_txid(stmt, 1, ev->spending_txid); db_bind_txid(stmt, BIND_NEXT, ev->spending_txid);
db_bind_text(stmt, 2, EXTERNAL_ACCT); db_bind_text(stmt, BIND_NEXT, EXTERNAL_ACCT);
db_query_prepared(stmt); db_query_prepared(stmt);
while (db_step(stmt)) { while (db_step(stmt)) {
@@ -1967,8 +1967,8 @@ void maybe_closeout_external_deposits(struct db *db,
" blockheight = ?" " blockheight = ?"
" WHERE id = ?")); " WHERE id = ?"));
db_bind_int(update_stmt, 0, ev->blockheight); db_bind_int(update_stmt, BIND_NEXT, ev->blockheight);
db_bind_u64(update_stmt, 1, id); db_bind_u64(update_stmt, BIND_NEXT, id);
db_exec_prepared_v2(take(update_stmt)); db_exec_prepared_v2(take(update_stmt));
} }
@@ -2009,37 +2009,37 @@ bool log_chain_event(struct db *db,
" VALUES " " VALUES "
"(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);")); "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"));
db_bind_u64(stmt, 0, acct->db_id); db_bind_u64(stmt, BIND_NEXT, acct->db_id);
if (e->origin_acct) if (e->origin_acct)
db_bind_text(stmt, 1, e->origin_acct); db_bind_text(stmt, BIND_NEXT, e->origin_acct);
else else
db_bind_null(stmt, 1); db_bind_null(stmt, BIND_NEXT);
db_bind_text(stmt, 2, e->tag); db_bind_text(stmt, BIND_NEXT, e->tag);
db_bind_amount_msat(stmt, 3, &e->credit); db_bind_amount_msat(stmt, BIND_NEXT, &e->credit);
db_bind_amount_msat(stmt, 4, &e->debit); db_bind_amount_msat(stmt, BIND_NEXT, &e->debit);
db_bind_amount_msat(stmt, 5, &e->output_value); db_bind_amount_msat(stmt, BIND_NEXT, &e->output_value);
db_bind_text(stmt, 6, e->currency); db_bind_text(stmt, BIND_NEXT, e->currency);
db_bind_u64(stmt, 7, e->timestamp); db_bind_u64(stmt, BIND_NEXT, e->timestamp);
db_bind_int(stmt, 8, e->blockheight); db_bind_int(stmt, BIND_NEXT, e->blockheight);
db_bind_txid(stmt, 9, &e->outpoint.txid); db_bind_txid(stmt, BIND_NEXT, &e->outpoint.txid);
db_bind_int(stmt, 10, e->outpoint.n); db_bind_int(stmt, BIND_NEXT, e->outpoint.n);
if (e->payment_id) if (e->payment_id)
db_bind_sha256(stmt, 11, e->payment_id); db_bind_sha256(stmt, BIND_NEXT, e->payment_id);
else else
db_bind_null(stmt, 11); db_bind_null(stmt, BIND_NEXT);
if (e->spending_txid) if (e->spending_txid)
db_bind_txid(stmt, 12, e->spending_txid); db_bind_txid(stmt, BIND_NEXT, e->spending_txid);
else else
db_bind_null(stmt, 12); db_bind_null(stmt, BIND_NEXT);
db_bind_int(stmt, 13, e->ignored ? 1 : 0); db_bind_int(stmt, BIND_NEXT, e->ignored ? 1 : 0);
db_bind_int(stmt, 14, e->stealable ? 1 : 0); db_bind_int(stmt, BIND_NEXT, e->stealable ? 1 : 0);
if (e->desc) if (e->desc)
db_bind_text(stmt, 15, e->desc); db_bind_text(stmt, BIND_NEXT, e->desc);
else else
db_bind_null(stmt, 15); db_bind_null(stmt, BIND_NEXT);
db_exec_prepared_v2(stmt); db_exec_prepared_v2(stmt);
e->db_id = db_last_insert_id_v2(stmt); e->db_id = db_last_insert_id_v2(stmt);
e->acct_db_id = acct->db_id; e->acct_db_id = acct->db_id;