From 0e329c68f90de885554d6934d99ab20c3016fbd4 Mon Sep 17 00:00:00 2001 From: delchev Date: Wed, 19 Aug 2026 12:28:17 +0300 Subject: [PATCH] docs(intent): deleting an expansion's master removes the rows it generated The reference said what a span change does to the generated child set and nothing about what a delete does. Deleting the master left the rows behind - and because a foreign key is never a database constraint in Dirigible, nothing else would have stopped them, so they went on feeding roll-ups and reports for a record that no longer existed. --- docs/help/intent/dsl-reference.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/help/intent/dsl-reference.md b/docs/help/intent/dsl-reference.md index 91ab80639..dd46502eb 100644 --- a/docs/help/intent/dsl-reference.md +++ b/docs/help/intent/dsl-reference.md @@ -1301,7 +1301,12 @@ expansions: ``` A span change replaces the generated child set; never mix hand-entered rows into an expanded -child. +child. Deleting the master deletes the rows it generated: the expansion owns that set, and a +foreign key is never a database constraint in Dirigible (referential integrity is checked in the +generated repository), so nothing else would stop the rows from outliving the record they belong to +and going on feeding roll-ups and reports. The rows are removed one by one through the child's +repository, so each row's delete event still fires and the roll-ups and guards downstream of it run +exactly as they would for a hand-deleted row. ## rollups - denormalised parent totals