mirror of
https://github.com/block/buzz.git
synced 2026-10-28 21:11:48 +00:00
- Refuse to replace a catch-all that carries child-only triggers; the replacement partitions inherit only parent triggers. - Re-plan from a fresh audit once the maintenance advisory lock is held, before any table lock, so a runner that lost a race sees the winner's layout as a no-op instead of reporting its monthlies as collisions. Name collisions on the refusal path are still reported before any lock. - Retry a read-only table audit (up to twice) when a partition it listed was dropped concurrently: pg_get_expr renders from current catalog state and yields NULL for a relation missing since the snapshot, and the emptiness probe then fails with 42P01. - Scope the deadline test to the backend blocked by its own holder, and let concurrent-runner convergence tolerate a fail-fast lock_timeout from the other runner's audit probing the catch-all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Ian Oberst <ioberst@block.xyz>