sqlite> .schema
.schema
CREATE TABLE folderLocations (id INTEGER PRIMARY KEY, folderURI TEXT NOT NULL, dirtyStatus INTEGER NOT NULL, name TEXT NOT NULL, indexingPriority INTEGER NOT NULL);
CREATE TABLE conversations (id INTEGER PRIMARY KEY, subject TEXT NOT NULL, oldestMessageDate INTEGER, newestMessageDate INTEGER);
CREATE VIRTUAL TABLE conversationsText USING fts3(tokenize mozporter, subject TEXT);
CREATE TABLE IF NOT EXISTS 'conversationsText_content'(docid INTEGER PRIMARY KEY, 'c0subject');
CREATE TABLE IF NOT EXISTS 'conversationsText_segments'(blockid INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'conversationsText_segdir'(level INTEGER,idx INTEGER,start_block INTEGER,leaves_end_block INTEGER,end_block INTEGER,root BLOB,PRIMARY KEY(level, idx));
CREATE INDEX subject ON conversations(subject);
CREATE INDEX oldestMessageDate ON conversations(oldestMessageDate);
CREATE INDEX newestMessageDate ON conversations(newestMessageDate);
CREATE TABLE messages (id INTEGER PRIMARY KEY, folderID INTEGER, messageKey INTEGER, conversationID INTEGER NOT NULL, date INTEGER, headerMessageID TEXT, deleted INTEGER NOT NULL default 0, jsonAttributes TEXT, notability INTEGER NOT NULL default 0);
CREATE VIRTUAL TABLE messagesText USING fts3(tokenize mozporter, body TEXT, subject TEXT, attachmentNames TEXT, author TEXT, recipients TEXT);
CREATE TABLE IF NOT EXISTS 'messagesText_content'(docid INTEGER PRIMARY KEY, 'c0body', 'c1subject', 'c2attachmentNames', 'c3author', 'c4recipients');
CREATE TABLE IF NOT EXISTS 'messagesText_segments'(blockid INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'messagesText_segdir'(level INTEGER,idx INTEGER,start_block INTEGER,leaves_end_block INTEGER,end_block INTEGER,root BLOB,PRIMARY KEY(level, idx));
CREATE INDEX messageLocation ON messages(folderID, messageKey);
CREATE INDEX headerMessageID ON messages(headerMessageID);
CREATE INDEX conversationID ON messages(conversationID);
CREATE INDEX date ON messages(date);
CREATE INDEX deleted ON messages(deleted);
CREATE TABLE attributeDefinitions (id INTEGER PRIMARY KEY, attributeType INTEGER NOT NULL, extensionName TEXT NOT NULL, name TEXT NOT NULL, parameter BLOB);
CREATE TABLE messageAttributes (conversationID INTEGER NOT NULL, messageID INTEGER NOT NULL, attributeID INTEGER NOT NULL, value NUMERIC);
CREATE INDEX attribQuery ON messageAttributes(attributeID, value, conversationID, messageID);
CREATE INDEX messageAttribFastDeletion ON messageAttributes(messageID);
CREATE TABLE contacts (id INTEGER PRIMARY KEY, directoryUUID TEXT, contactUUID TEXT, popularity INTEGER, frecency INTEGER, name TEXT, jsonAttributes TEXT);
CREATE INDEX popularity ON contacts(popularity);
CREATE INDEX frecency ON contacts(frecency);
CREATE TABLE contactAttributes (contactID INTEGER NOT NULL, attributeID INTEGER NOT NULL, value NUMERIC);
CREATE INDEX contactAttribQuery ON contactAttributes(attributeID, value, contactID);
CREATE TABLE identities (id INTEGER PRIMARY KEY, contactID INTEGER NOT NULL, kind TEXT NOT NULL, value TEXT NOT NULL, description NOT NULL, relay INTEGER NOT NULL);
CREATE INDEX contactQuery ON identities(contactID);
CREATE INDEX valueQuery ON identities(kind, value);
CREATE TABLE ext_mimeTypes (id INTEGER PRIMARY KEY, mimeType TEXT);
CREATE TABLE imConversations (id INTEGER PRIMARY KEY, title STRING, time NUMBER, path STRING, jsonAttributes STRING);
CREATE VIRTUAL TABLE imConversationsText USING fts3(tokenize mozporter, content STRING);
CREATE TABLE IF NOT EXISTS 'imConversationsText_content'(docid INTEGER PRIMARY KEY, 'c0content');
CREATE TABLE IF NOT EXISTS 'imConversationsText_segments'(blockid INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'imConversationsText_segdir'(level INTEGER,idx INTEGER,start_block INTEGER,leaves_end_block INTEGER,end_block INTEGER,root BLOB,PRIMARY KEY(level, idx));