diff options
Diffstat (limited to 'setup.sql')
-rw-r--r-- | setup.sql | 70 |
1 files changed, 65 insertions, 5 deletions
@@ -5,7 +5,17 @@ CREATE TABLE IF NOT EXISTS tagrss_info(info_key TEXT PRIMARY KEY, value TEXT) ST INSERT OR REPLACE INTO tagrss_info(info_key, value) VALUES - ("version", "0.9.0"); + ("version", "0.10.0"); + +CREATE TABLE IF NOT EXISTS feed_count( + id INTEGER PRIMARY KEY CHECK (id = 0), + count INTEGER CHECK(count >= 0) +) STRICT; + +INSERT + OR IGNORE INTO feed_count(id, count) +VALUES + (0, 0); CREATE TABLE IF NOT EXISTS feeds( id INTEGER PRIMARY KEY, @@ -13,6 +23,27 @@ CREATE TABLE IF NOT EXISTS feeds( title TEXT ) STRICT; +CREATE TRIGGER IF NOT EXISTS trig_feeds__increment_feed_count_after_insert +AFTER +INSERT + ON feeds BEGIN +UPDATE + feed_count +SET + count = count + 1; + +END; + +CREATE TRIGGER IF NOT EXISTS trig_feeds__decrement_feed_count_after_delete +AFTER + DELETE ON feeds BEGIN +UPDATE + feed_count +SET + count = count - 1; + +END; + CREATE TABLE IF NOT EXISTS feed_tags( feed_id INTEGER REFERENCES feeds(id) ON DELETE CASCADE, tag TEXT @@ -22,18 +53,26 @@ CREATE INDEX IF NOT EXISTS idx_feed_tags__feed_id__tag ON feed_tags(feed_id, tag CREATE INDEX IF NOT EXISTS idx_feed_tags__tag__feed_id ON feed_tags(tag, feed_id); +CREATE TABLE IF NOT EXISTS entry_count( + id INTEGER PRIMARY KEY CHECK (id = 0), + count INTEGER CHECK(count >= 0) +) STRICT; + +INSERT + OR IGNORE INTO entry_count(id, count) +VALUES + (0, 0); + CREATE TABLE IF NOT EXISTS entries( - id INTEGER PRIMARY KEY, + id INTEGER PRIMARY KEY AUTOINCREMENT, feed_id INTEGER REFERENCES feeds(id) ON DELETE CASCADE, title TEXT, link TEXT, epoch_published INTEGER, epoch_updated INTEGER, - epoch_stored INTEGER + epoch_downloaded INTEGER ) STRICT; -CREATE INDEX IF NOT EXISTS idx_entries__epoch_stored ON entries(epoch_stored); - CREATE INDEX IF NOT EXISTS idx_entries__feed_id__title__link__epoch_published__epoch_updated ON entries( feed_id, title, @@ -62,3 +101,24 @@ WHERE ); END; + +CREATE TRIGGER IF NOT EXISTS trig_entries__increment_entry_count_after_insert +AFTER +INSERT + ON entries BEGIN +UPDATE + entry_count +SET + count = count + 1; + +END; + +CREATE TRIGGER IF NOT EXISTS trig_entries__decrement_entry_count_after_delete +AFTER + DELETE ON entries BEGIN +UPDATE + entry_count +SET + count = count - 1; + +END;
\ No newline at end of file |