Marc-André Bombeck
ec2c067e60
fix(retention): keep a tombstone while a live record still points at it
...
The nightly purge nulled every non-cascading key into a purged row, so a
live visit lost the practitioner it was with, a live dose its visit, a
symptom its condition. Each purge entry now lists the keys that do not
cascade, and a tombstone stays while a live row holds one. The register
test derives those keys from the schema's relations, so a new nulling key
into a purged model fails until it is listed.
2026-10-20 16:01:13 +02:00
..
2026-10-20 16:01:13 +02:00
2026-06-28 03:07:15 +02:00
2026-10-20 13:17:41 +02:00
2026-08-02 01:21:03 +02:00
2026-09-24 09:07:16 +02:00
2026-10-15 22:49:00 +02:00
2026-07-27 14:47:55 +02:00
2026-10-20 13:17:41 +02:00
2026-10-08 09:06:17 +02:00
2026-10-08 09:06:17 +02:00
2026-09-03 02:22:37 +02:00
2026-10-11 12:15:03 +02:00
2026-06-19 20:54:56 +02:00
2026-10-11 13:09:12 +02:00
2026-10-20 09:08:40 +02:00
2026-10-20 09:08:40 +02:00
2026-10-20 09:08:40 +02:00
2026-10-18 13:10:21 +02:00
2026-08-02 01:21:03 +02:00
2026-10-08 09:06:17 +02:00
2026-10-20 09:08:40 +02:00
2026-10-11 12:31:37 +02:00
2026-10-04 15:56:56 +02:00
2026-10-16 01:20:53 +02:00
2026-09-25 02:05:19 +02:00
2026-10-08 12:04:36 +02:00
2026-10-03 18:18:56 +02:00
2026-10-15 23:29:40 +02:00
2026-10-11 13:09:12 +02:00
2026-10-20 09:08:40 +02:00
2026-09-26 14:20:17 +02:00
2026-10-08 09:06:17 +02:00
2026-08-14 05:53:17 +02:00
2026-10-11 13:09:12 +02:00
2026-10-20 09:08:40 +02:00
2026-10-08 09:06:17 +02:00
2026-09-25 00:31:48 +02:00
2026-10-03 23:29:55 +02:00
2026-10-15 21:48:57 +02:00
2026-10-20 09:58:02 +02:00
2026-10-18 13:10:21 +02:00
2026-10-20 09:08:40 +02:00
2026-10-20 05:06:21 +02:00
2026-06-04 22:17:55 +02:00
2026-07-25 06:15:37 +02:00
2026-10-20 07:30:00 +02:00
2026-10-20 09:08:40 +02:00
2026-10-08 09:06:17 +02:00
2026-10-20 10:52:54 +02:00
2026-07-03 14:13:28 +02:00
2026-10-10 12:59:25 +02:00
2026-10-15 22:49:00 +02:00
2026-10-20 10:52:54 +02:00
2026-10-08 08:41:25 +02:00
2026-05-05 20:30:30 +02:00
2026-10-08 09:06:09 +02:00
2026-10-20 09:08:40 +02:00
2026-10-08 09:06:17 +02:00
2026-09-24 09:07:16 +02:00
2026-10-11 13:46:16 +02:00
2026-10-20 13:01:45 +02:00
2026-10-11 12:42:58 +02:00
2026-10-20 09:33:15 +02:00
2026-10-01 09:23:45 +02:00
2026-07-25 04:43:06 +02:00
2026-10-20 09:08:40 +02:00
2026-10-15 16:38:12 +02:00
2026-09-25 07:39:06 +02:00
2026-10-08 09:05:54 +02:00
2026-10-11 12:15:03 +02:00
2026-10-19 16:00:45 +02:00
2026-10-20 13:17:41 +02:00
2026-10-08 09:05:54 +02:00
2026-10-20 09:08:40 +02:00
2026-10-01 09:23:45 +02:00
2026-06-27 15:09:11 +02:00
2026-10-09 01:03:02 +02:00
2026-10-09 12:02:25 +02:00
2026-10-20 05:06:25 +02:00
2026-10-20 09:38:29 +02:00
2026-10-20 09:08:40 +02:00
2026-10-09 12:02:25 +02:00
2026-10-20 09:08:40 +02:00
2026-10-20 13:01:45 +02:00
2026-10-20 09:08:40 +02:00
2026-09-26 22:14:03 +02:00
2026-08-08 11:31:39 +02:00
2026-09-26 16:23:14 +02:00
2026-10-20 09:08:40 +02:00
2026-10-20 09:08:40 +02:00
2026-10-20 09:08:40 +02:00
2026-09-10 10:15:31 +02:00
2026-10-04 21:21:32 +02:00
2026-10-08 09:06:17 +02:00
2026-07-18 16:50:56 +02:00
2026-10-20 09:08:40 +02:00
2026-10-20 09:08:40 +02:00
2026-10-20 09:08:40 +02:00
2026-10-16 05:55:31 +02:00
2026-07-26 18:57:21 +02:00
2026-10-20 13:17:41 +02:00
2026-10-11 13:09:12 +02:00
2026-06-19 22:20:31 +02:00
2026-10-08 10:32:11 +02:00
2026-06-16 20:58:56 +02:00
2026-10-20 09:08:40 +02:00
2026-06-10 13:34:37 +02:00
2026-10-04 21:19:32 +02:00
2026-10-08 09:05:54 +02:00
2026-08-14 02:29:01 +02:00
2026-10-20 13:17:41 +02:00
2026-10-20 16:01:13 +02:00
2026-10-20 03:34:51 +02:00
2026-10-11 12:31:37 +02:00
2026-07-15 22:49:07 +02:00
2026-06-19 22:20:31 +02:00
2026-10-20 09:33:15 +02:00
2026-06-19 22:20:31 +02:00
2026-10-20 13:17:41 +02:00
2026-10-11 12:27:53 +02:00
2026-10-20 05:06:21 +02:00
2026-06-05 08:10:13 +02:00
2026-07-20 12:24:15 +02:00
2026-05-22 09:18:52 +02:00
2026-05-15 22:59:10 +02:00
2026-10-03 17:53:36 +02:00
2026-10-08 09:06:17 +02:00
2026-10-08 09:06:17 +02:00