feat: memory schema with witness flags and FTS5 index
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
CREATE TABLE memories (
|
||||
id INTEGER PRIMARY KEY,
|
||||
owner_id TEXT NOT NULL,
|
||||
chat_id TEXT NOT NULL,
|
||||
scene_id INTEGER,
|
||||
pov_summary TEXT NOT NULL,
|
||||
witness_you INTEGER NOT NULL,
|
||||
witness_host INTEGER NOT NULL,
|
||||
witness_guest INTEGER NOT NULL,
|
||||
chat_clock_at TEXT,
|
||||
source TEXT,
|
||||
reliability REAL NOT NULL DEFAULT 1.0,
|
||||
significance INTEGER NOT NULL DEFAULT 1,
|
||||
pinned INTEGER NOT NULL DEFAULT 0,
|
||||
auto_pinned INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
CREATE INDEX idx_memories_owner ON memories(owner_id);
|
||||
|
||||
CREATE VIRTUAL TABLE memories_fts USING fts5(
|
||||
pov_summary, content='memories', content_rowid='id'
|
||||
);
|
||||
|
||||
CREATE TRIGGER memories_ai AFTER INSERT ON memories BEGIN
|
||||
INSERT INTO memories_fts(rowid, pov_summary) VALUES (new.id, new.pov_summary);
|
||||
END;
|
||||
CREATE TRIGGER memories_au AFTER UPDATE ON memories BEGIN
|
||||
INSERT INTO memories_fts(memories_fts, rowid, pov_summary)
|
||||
VALUES('delete', old.id, old.pov_summary);
|
||||
INSERT INTO memories_fts(rowid, pov_summary) VALUES (new.id, new.pov_summary);
|
||||
END;
|
||||
CREATE TRIGGER memories_ad AFTER DELETE ON memories BEGIN
|
||||
INSERT INTO memories_fts(memories_fts, rowid, pov_summary)
|
||||
VALUES('delete', old.id, old.pov_summary);
|
||||
END;
|
||||
Reference in New Issue
Block a user