@@ -64,16 +64,19 @@ CREATE INDEX idx_attachments_entity ON attachments(project_id, graph, entity_id)
6464-- =============================================
6565
6666CREATE TABLE edges (
67- project_id INTEGER NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
68- from_graph TEXT NOT NULL,
69- from_id INTEGER NOT NULL,
70- to_graph TEXT NOT NULL,
71- to_id INTEGER NOT NULL,
72- kind TEXT NOT NULL,
73- PRIMARY KEY (project_id, from_graph, from_id, to_graph, to_id, kind)
67+ from_project_id INTEGER NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
68+ from_graph TEXT NOT NULL,
69+ from_id INTEGER NOT NULL,
70+ to_project_id INTEGER NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
71+ to_graph TEXT NOT NULL,
72+ to_id INTEGER NOT NULL,
73+ kind TEXT NOT NULL,
74+ PRIMARY KEY (from_graph, from_id, to_graph, to_id, kind)
7475);
75- CREATE INDEX idx_edges_target ON edges(project_id, to_graph, to_id);
76- CREATE INDEX idx_edges_source ON edges(project_id, from_graph, from_id);
76+ CREATE INDEX idx_edges_target ON edges(to_graph, to_id);
77+ CREATE INDEX idx_edges_source ON edges(from_graph, from_id);
78+ CREATE INDEX idx_edges_from_project ON edges(from_project_id);
79+ CREATE INDEX idx_edges_to_project ON edges(to_project_id);
7780
7881-- =============================================
7982-- Knowledge (notes)
@@ -113,8 +116,8 @@ CREATE VIRTUAL TABLE knowledge_vec USING vec0(embedding float[${d('knowledge')}]
113116
114117CREATE TRIGGER knowledge_cleanup AFTER DELETE ON knowledge BEGIN
115118 DELETE FROM edges WHERE
116- (from_graph = 'knowledge' AND from_id = old.id AND project_id = old.project_id ) OR
117- (to_graph = 'knowledge' AND to_id = old.id AND project_id = old.project_id );
119+ (from_graph = 'knowledge' AND from_id = old.id) OR
120+ (to_graph = 'knowledge' AND to_id = old.id);
118121 DELETE FROM attachments WHERE graph = 'knowledge' AND entity_id = old.id AND project_id = old.project_id;
119122 DELETE FROM knowledge_vec WHERE rowid = old.id;
120123END;
@@ -166,8 +169,8 @@ CREATE VIRTUAL TABLE tasks_vec USING vec0(embedding float[${d('tasks')}]);
166169
167170CREATE TRIGGER tasks_cleanup AFTER DELETE ON tasks BEGIN
168171 DELETE FROM edges WHERE
169- (from_graph = 'tasks' AND from_id = old.id AND project_id = old.project_id ) OR
170- (to_graph = 'tasks' AND to_id = old.id AND project_id = old.project_id );
172+ (from_graph = 'tasks' AND from_id = old.id) OR
173+ (to_graph = 'tasks' AND to_id = old.id);
171174 DELETE FROM attachments WHERE graph = 'tasks' AND entity_id = old.id AND project_id = old.project_id;
172175 DELETE FROM tasks_vec WHERE rowid = old.id;
173176END;
@@ -213,8 +216,8 @@ CREATE VIRTUAL TABLE epics_vec USING vec0(embedding float[${d('epics')}]);
213216
214217CREATE TRIGGER epics_cleanup AFTER DELETE ON epics BEGIN
215218 DELETE FROM edges WHERE
216- (from_graph = 'epics' AND from_id = old.id AND project_id = old.project_id ) OR
217- (to_graph = 'epics' AND to_id = old.id AND project_id = old.project_id );
219+ (from_graph = 'epics' AND from_id = old.id) OR
220+ (to_graph = 'epics' AND to_id = old.id);
218221 DELETE FROM attachments WHERE graph = 'epics' AND entity_id = old.id AND project_id = old.project_id;
219222 DELETE FROM epics_vec WHERE rowid = old.id;
220223END;
@@ -265,8 +268,8 @@ CREATE VIRTUAL TABLE skills_vec USING vec0(embedding float[${d('skills')}]);
265268
266269CREATE TRIGGER skills_cleanup AFTER DELETE ON skills BEGIN
267270 DELETE FROM edges WHERE
268- (from_graph = 'skills' AND from_id = old.id AND project_id = old.project_id ) OR
269- (to_graph = 'skills' AND to_id = old.id AND project_id = old.project_id );
271+ (from_graph = 'skills' AND from_id = old.id) OR
272+ (to_graph = 'skills' AND to_id = old.id);
270273 DELETE FROM attachments WHERE graph = 'skills' AND entity_id = old.id AND project_id = old.project_id;
271274 DELETE FROM skills_vec WHERE rowid = old.id;
272275END;
@@ -317,8 +320,8 @@ CREATE VIRTUAL TABLE code_vec USING vec0(embedding float[${d('code')}]);
317320
318321CREATE TRIGGER code_cleanup AFTER DELETE ON code BEGIN
319322 DELETE FROM edges WHERE
320- (from_graph = 'code' AND from_id = old.id AND project_id = old.project_id ) OR
321- (to_graph = 'code' AND to_id = old.id AND project_id = old.project_id );
323+ (from_graph = 'code' AND from_id = old.id) OR
324+ (to_graph = 'code' AND to_id = old.id);
322325 DELETE FROM attachments WHERE graph = 'code' AND entity_id = old.id AND project_id = old.project_id;
323326 DELETE FROM code_vec WHERE rowid = old.id;
324327END;
@@ -361,8 +364,8 @@ CREATE VIRTUAL TABLE docs_vec USING vec0(embedding float[${d('docs')}]);
361364
362365CREATE TRIGGER docs_cleanup AFTER DELETE ON docs BEGIN
363366 DELETE FROM edges WHERE
364- (from_graph = 'docs' AND from_id = old.id AND project_id = old.project_id ) OR
365- (to_graph = 'docs' AND to_id = old.id AND project_id = old.project_id );
367+ (from_graph = 'docs' AND from_id = old.id) OR
368+ (to_graph = 'docs' AND to_id = old.id);
366369 DELETE FROM attachments WHERE graph = 'docs' AND entity_id = old.id AND project_id = old.project_id;
367370 DELETE FROM docs_vec WHERE rowid = old.id;
368371END;
@@ -393,17 +396,17 @@ CREATE VIRTUAL TABLE files_vec USING vec0(embedding float[${d('files')}]);
393396
394397CREATE TRIGGER files_cleanup AFTER DELETE ON files BEGIN
395398 DELETE FROM edges WHERE
396- (from_graph = 'files' AND from_id = old.id AND project_id = old.project_id ) OR
397- (to_graph = 'files' AND to_id = old.id AND project_id = old.project_id );
399+ (from_graph = 'files' AND from_id = old.id) OR
400+ (to_graph = 'files' AND to_id = old.id);
398401 DELETE FROM attachments WHERE graph = 'files' AND entity_id = old.id AND project_id = old.project_id;
399402 DELETE FROM files_vec WHERE rowid = old.id;
400403END;
401404
402405-- Tags cleanup: when a tag is deleted, remove its edges
403406CREATE TRIGGER tags_cleanup AFTER DELETE ON tags BEGIN
404407 DELETE FROM edges WHERE
405- (from_graph = 'tags' AND from_id = old.id AND project_id = old.project_id ) OR
406- (to_graph = 'tags' AND to_id = old.id AND project_id = old.project_id );
408+ (from_graph = 'tags' AND from_id = old.id) OR
409+ (to_graph = 'tags' AND to_id = old.id);
407410END;
408411` ,
409412 } ;
0 commit comments