DB tweaks and fix

This commit is contained in:
kexkey
2019-03-04 18:37:22 -05:00
committed by kexkey
parent a50a2089b3
commit 4a72c18937
3 changed files with 7 additions and 8 deletions

View File

@@ -11,12 +11,10 @@ CREATE TABLE watching_by_pub32 (
watching INTEGER DEFAULT FALSE, watching INTEGER DEFAULT FALSE,
inserted_ts INTEGER DEFAULT CURRENT_TIMESTAMP inserted_ts INTEGER DEFAULT CURRENT_TIMESTAMP
); );
CREATE INDEX idx_watching_by_pub32_pub32 ON watching_by_pub32 (pub32);
CREATE INDEX idx_watching_by_pub32_label ON watching_by_pub32 (label);
CREATE TABLE watching ( CREATE TABLE watching (
id INTEGER PRIMARY KEY AUTOINCREMENT, id INTEGER PRIMARY KEY AUTOINCREMENT,
address TEXT, address TEXT UNIQUE,
watching INTEGER DEFAULT FALSE, watching INTEGER DEFAULT FALSE,
callback0conf TEXT, callback0conf TEXT,
calledback0conf INTEGER DEFAULT FALSE, calledback0conf INTEGER DEFAULT FALSE,
@@ -27,7 +25,6 @@ CREATE TABLE watching (
pub32_index INTEGER, pub32_index INTEGER,
inserted_ts INTEGER DEFAULT CURRENT_TIMESTAMP inserted_ts INTEGER DEFAULT CURRENT_TIMESTAMP
); );
CREATE INDEX idx_watching_address ON watching (address);
CREATE TABLE watching_tx ( CREATE TABLE watching_tx (
watching_id INTEGER REFERENCES watching, watching_id INTEGER REFERENCES watching,
@@ -79,7 +76,6 @@ CREATE TABLE stamp (
calledback INTEGER DEFAULT FALSE, calledback INTEGER DEFAULT FALSE,
inserted_ts INTEGER DEFAULT CURRENT_TIMESTAMP inserted_ts INTEGER DEFAULT CURRENT_TIMESTAMP
); );
CREATE INDEX idx_stamp_hash ON stamp (hash);
CREATE INDEX idx_stamp_calledback ON stamp (calledback); CREATE INDEX idx_stamp_calledback ON stamp (calledback);
CREATE TABLE cyphernode_props ( CREATE TABLE cyphernode_props (

View File

@@ -11,8 +11,11 @@ CREATE TABLE watching_by_pub32 (
watching INTEGER DEFAULT FALSE, watching INTEGER DEFAULT FALSE,
inserted_ts INTEGER DEFAULT CURRENT_TIMESTAMP inserted_ts INTEGER DEFAULT CURRENT_TIMESTAMP
); );
CREATE INDEX idx_watching_by_pub32_pub32 ON watching_by_pub32 (pub32);
CREATE INDEX idx_watching_by_pub32_label ON watching_by_pub32 (label); -- for all duplicate addresses, we only keep the last one inserted
DELETE FROM watching WHERE id NOT IN (SELECT MAX(id) FROM watching GROUP BY address);
DROP INDEX idx_watching_address;
CREATE UNIQUE INDEX idx_watching_address ON watching(address);
ALTER TABLE watching ADD COLUMN watching_by_pub32_id INTEGER REFERENCES watching_by_pub32; ALTER TABLE watching ADD COLUMN watching_by_pub32_id INTEGER REFERENCES watching_by_pub32;
ALTER TABLE watching ADD COLUMN pub32_index INTEGER; ALTER TABLE watching ADD COLUMN pub32_index INTEGER;

View File

@@ -32,7 +32,7 @@ unwatchpub32request() {
local returncode local returncode
trace "[unwatchpub32request] Unwatch pub32 ${pub32}" trace "[unwatchpub32request] Unwatch pub32 ${pub32}"
id=$(sql "SELECT id FROM watching WHERE pub32='${pub32}'") id=$(sql "SELECT id FROM watching_by_pub32 WHERE pub32='${pub32}'")
trace "[unwatchpub32request] id: ${id}" trace "[unwatchpub32request] id: ${id}"
sql "UPDATE watching_by_pub32 SET watching=0 WHERE id=${id}" sql "UPDATE watching_by_pub32 SET watching=0 WHERE id=${id}"