]> Untitled Git - bdk/commitdiff
Add datatype for is_spent sqlite column
authorVladimir Fomene <vladimirfomene@gmail.com>
Fri, 12 Aug 2022 13:13:00 +0000 (16:13 +0300)
committerVladimir Fomene <vladimirfomene@gmail.com>
Mon, 29 Aug 2022 10:35:33 +0000 (13:35 +0300)
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

index dc35b856ced383e43d13b5a7ec9572cae1a277a3..c875bd947abae40a407754752d055920089e0612 100644 (file)
@@ -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