CREATE TABLE feed (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
url varchar(100) NOT NULL UNIQUE,
web_url varchar(255) NOT NULL DEFAULT '',
title varchar(255) NOT NULL DEFAULT '',
last_updated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
category varchar(255) NOT NULL DEFAULT 'uncategorized'
);
CREATE INDEX feed_url ON feed (url);
CREATE INDEX feed_category ON feed (category);
CREATE TABLE item (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
feed_id int(11) NOT NULL,
title text NOT NULL DEFAULT '',
url varchar(255) NOT NULL UNIQUE,
description text NOT NULL DEFAULT '',
publish_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
read_state tinyint(1) NOT NULL DEFAULT '0',
starred tinyint(1) NOT NULL DEFAULT '0',
full_content text NOT NULL DEFAULT '',
header_image text NOT NULL DEFAULT '',
CONSTRAINT item_ibfk_1 FOREIGN KEY (feed_id) REFERENCES feed(id) ON DELETE CASCADE
);
CREATE INDEX item_url ON item (url);
CREATE INDEX item_publish_date ON item (publish_date);
CREATE INDEX item_feed_id ON item (feed_id);
CREATE INDEX item_read_state ON item (read_state);
CREATE VIRTUAL TABLE fts_item using fts4(content="item", title, url, description);
INSERT INTO fts_item(fts_item) VALUES('rebuild');
CREATE TRIGGER item_bu BEFORE UPDATE ON item BEGIN
DELETE FROM fts_item WHERE docid=old.rowid;
END;
CREATE TRIGGER item_bd BEFORE DELETE ON item BEGIN
DELETE FROM fts_item WHERE docid=old.rowid;
END;
CREATE TRIGGER item_au AFTER UPDATE ON item BEGIN
INSERT INTO fts_item(docid, title, url, description) VALUES(new.rowid, new.title, new.url, new.description);
END;
CREATE TRIGGER item_ai AFTER INSERT ON item BEGIN
INSERT INTO fts_item(docid, title, url, description) VALUES(new.rowid, new.title, new.url, new.description);
END;