From 369e17b8012df56587c10cd9ce6651908d6a4be9 Mon Sep 17 00:00:00 2001 From: Vladimir Fomene Date: Fri, 12 Aug 2022 16:13:00 +0300 Subject: [PATCH] Add datatype for is_spent sqlite column Although, Sqlite column accepts values of any type, it is important to annotate this column to make it easy to reason about. --- src/database/sqlite.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/database/sqlite.rs b/src/database/sqlite.rs index dc35b856..c875bd94 100644 --- a/src/database/sqlite.rs +++ b/src/database/sqlite.rs @@ -52,7 +52,14 @@ static MIGRATIONS: &[&str] = &[ "DELETE FROM transactions;", "DELETE FROM utxos;", "DROP INDEX idx_txid_vout;", - "CREATE UNIQUE INDEX idx_utxos_txid_vout ON utxos(txid, vout);" + "CREATE UNIQUE INDEX idx_utxos_txid_vout ON utxos(txid, vout);", + "BEGIN TRANSACTION;\ + ALTER TABLE utxos RENAME TO utxos_old;\ + CREATE TABLE utxos (value INTEGER, keychain TEXT, vout INTEGER, txid BLOB, script BLOB, is_spent BOOLEAN DEFAULT 0);\ + INSERT INTO utxos SELECT value, keychain, vout, txid, script, is_spent FROM utxos_old;\ + DROP TABLE utxos_old;\ + CREATE UNIQUE INDEX idx_utxos_txid_vout ON utxos(txid, vout);\ + COMMIT;" ]; /// Sqlite database stored on filesystem