symfonic.memory.backends.postgres_native_node_delete¶
postgres_native_node_delete ¶
Native node cascades validate locked owners.
Existing incident edges and the node commit together. Native edge writers hold
both endpoints FOR SHARE (postgres_native_edge_write.lock_native_endpoints),
so an edge cannot attach to a node this cascade has locked FOR UPDATE. Public
admission is graph_native_admission (CORE-194); this module admits nothing.
A native cascade also deletes the row's claim generations from a ledger that
keeps other rows' history, so it runs as index probes and requires the
operator-installed claim record index, as batched discard does.
delete_claimed
async
¶
delete_claimed(pool: Any, scope: StorageScope, node_id: str, token: str, edge_upsert_mode: str) -> None
Cascading pending deletion commits only its locked token version.
Source code in src/symfonic/memory/backends/postgres_native_node_delete.py
delete_node
async
¶
delete_node(pool: Any, scope: StorageScope, node_id: str, cascade: bool, edge_upsert_mode: str) -> None
Keep v0/non-cascade SQL; native cascades lock and validate stored keys.