42 lines
1.6 KiB
SQL
42 lines
1.6 KiB
SQL
-- Folder cache: stores the IMAP folder hierarchy
|
|
CREATE TABLE IF NOT EXISTS folders (
|
|
name TEXT PRIMARY KEY,
|
|
delimiter TEXT,
|
|
parent TEXT,
|
|
flags TEXT NOT NULL DEFAULT '',
|
|
is_subscribed INTEGER NOT NULL DEFAULT 1,
|
|
total_count INTEGER NOT NULL DEFAULT 0,
|
|
unread_count INTEGER NOT NULL DEFAULT 0,
|
|
uid_validity INTEGER NOT NULL DEFAULT 0,
|
|
highest_modseq INTEGER NOT NULL DEFAULT 0,
|
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
);
|
|
|
|
-- Message header cache: stores synced email headers per folder
|
|
CREATE TABLE IF NOT EXISTS messages (
|
|
uid INTEGER NOT NULL,
|
|
folder TEXT NOT NULL,
|
|
message_id TEXT,
|
|
in_reply_to TEXT,
|
|
subject TEXT NOT NULL DEFAULT '',
|
|
from_address TEXT NOT NULL DEFAULT '',
|
|
from_name TEXT NOT NULL DEFAULT '',
|
|
to_addresses TEXT NOT NULL DEFAULT '',
|
|
cc_addresses TEXT NOT NULL DEFAULT '',
|
|
date TEXT NOT NULL,
|
|
flags TEXT NOT NULL DEFAULT '',
|
|
size INTEGER NOT NULL DEFAULT 0,
|
|
has_attachments INTEGER NOT NULL DEFAULT 0,
|
|
snippet TEXT NOT NULL DEFAULT '',
|
|
body_cached INTEGER NOT NULL DEFAULT 0,
|
|
body_html TEXT,
|
|
body_text TEXT,
|
|
references_header TEXT,
|
|
PRIMARY KEY (uid, folder),
|
|
FOREIGN KEY (folder) REFERENCES folders(name) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_messages_folder_date ON messages(folder, date DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_messages_message_id ON messages(message_id);
|
|
CREATE INDEX IF NOT EXISTS idx_messages_in_reply_to ON messages(in_reply_to);
|