aboutsummaryrefslogtreecommitdiff
path: root/setup.sql
diff options
context:
space:
mode:
Diffstat (limited to 'setup.sql')
-rw-r--r--setup.sql70
1 files changed, 65 insertions, 5 deletions
diff --git a/setup.sql b/setup.sql
index 02aac26..e00666a 100644
--- a/setup.sql
+++ b/setup.sql
@@ -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