MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / cascade_delete_edges

Function cascade_delete_edges

src/graph_buffer/graph_buffer.c:316–334  ·  view source on GitHub ↗

Cascade-delete all edges touching nodes in deleted_set. */

Source from the content-addressed store, hash-verified

314
315/* Cascade-delete all edges touching nodes in deleted_set. */
316static void cascade_delete_edges(cbm_gbuf_t *gb, CBMHashTable *deleted_set) {
317 int write_idx = 0;
318 for (int i = 0; i < gb->edges.count; i++) {
319 cbm_gbuf_edge_t *e = gb->edges.items[i];
320 char src_id[CBM_SZ_32];
321 char tgt_id[CBM_SZ_32];
322 make_id_key(src_id, sizeof(src_id), e->source_id);
323 make_id_key(tgt_id, sizeof(tgt_id), e->target_id);
324
325 if (cbm_ht_get(deleted_set, src_id) || cbm_ht_get(deleted_set, tgt_id)) {
326 unindex_edge(gb, e);
327 free_edge_strings(e);
328 free(e);
329 } else {
330 gb->edges.items[write_idx++] = gb->edges.items[i];
331 }
332 }
333 gb->edges.count = write_idx;
334}
335
336/* Register a node in primary (QN, ID) and secondary (label, name) indexes. */
337static void register_node_in_indexes(cbm_gbuf_t *gb, cbm_gbuf_node_t *node) {

Callers 2

cbm_gbuf_delete_by_labelFunction · 0.85
cbm_gbuf_delete_by_fileFunction · 0.85

Calls 4

make_id_keyFunction · 0.85
cbm_ht_getFunction · 0.85
unindex_edgeFunction · 0.85
free_edge_stringsFunction · 0.85

Tested by

no test coverage detected