relations: bulk lifecycle — relate-many! + unrelate-node! cascade cleanup + 12 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 54s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 54s
unrelate-node! retracts every local edge touching a node (all kinds, both directions); leaves federated peer links alone. 147/147. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -100,3 +100,42 @@
|
||||
(define
|
||||
relations/connected?
|
||||
(fn (a b kind) (relations-connected? (relations-ensure-db!) a b kind)))
|
||||
|
||||
(define
|
||||
relations-relate-many!
|
||||
(fn
|
||||
(db triples)
|
||||
(do
|
||||
(for-each
|
||||
(fn
|
||||
(t)
|
||||
(dl-assert!
|
||||
db
|
||||
(relations-rel (first t) (nth t 1) (nth t 2))))
|
||||
triples)
|
||||
db)))
|
||||
|
||||
(define
|
||||
relations-unrelate-node!
|
||||
(fn
|
||||
(db node)
|
||||
(do
|
||||
(for-each
|
||||
(fn
|
||||
(s)
|
||||
(dl-retract! db (relations-rel node (get s :Dst) (get s :Kind))))
|
||||
(dl-query db (list (quote rel) node (quote Dst) (quote Kind))))
|
||||
(for-each
|
||||
(fn
|
||||
(s)
|
||||
(dl-retract! db (relations-rel (get s :Src) node (get s :Kind))))
|
||||
(dl-query db (list (quote rel) (quote Src) node (quote Kind))))
|
||||
db)))
|
||||
|
||||
(define
|
||||
relations/relate-many!
|
||||
(fn (triples) (relations-relate-many! (relations-ensure-db!) triples)))
|
||||
|
||||
(define
|
||||
relations/unrelate-node!
|
||||
(fn (node) (relations-unrelate-node! (relations-ensure-db!) node)))
|
||||
|
||||
Reference in New Issue
Block a user