MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / del_kg_edge

Method del_kg_edge

atomic-core/src/pristine/txn/write/triples.rs:269–292  ·  view source on GitHub ↗
(&mut self, from_id: &str, to_id: &str, kind: &str)

Source from the content-addressed store, hash-verified

267 }
268
269 fn del_kg_edge(&mut self, from_id: &str, to_id: &str, kind: &str) -> PristineResult<bool> {
270 let edge_key = encode_edge_key(from_id, to_id, kind);
271
272 let mut edges_table = match self.txn.open_table(KG_EDGES) {
273 Ok(t) => t,
274 Err(redb::TableError::TableDoesNotExist(_)) => return Ok(false),
275 Err(e) => return Err(PristineError::from(e)),
276 };
277
278 let existed = edges_table.remove(edge_key.as_str())?.is_some();
279 drop(edges_table);
280
281 if existed {
282 // Clean up indexes
283 let mut from_table = self.txn.open_multimap_table(KG_EDGES_FROM)?;
284 from_table.remove(from_id, edge_key.as_str())?;
285 drop(from_table);
286
287 let mut to_table = self.txn.open_multimap_table(KG_EDGES_TO)?;
288 to_table.remove(to_id, edge_key.as_str())?;
289 }
290
291 Ok(existed)
292 }
293
294 fn del_kg_edges_for_node(&mut self, node_id: &str) -> PristineResult<usize> {
295 // Collect all edge keys for this node (both directions)

Callers 1

del_kg_edges_for_nodeMethod · 0.80

Calls 3

encode_edge_keyFunction · 0.85
removeMethod · 0.65
as_strMethod · 0.45

Tested by

no test coverage detected