PostgreSQL 17 runners are live
All rules

SDB802[high]Execution evidence

ACCESS EXCLUSIVE lock held

A lock that blocks all reads and writes was held on an existing table.

Why it's risky in PostgreSQL

While ACCESS EXCLUSIVE is held, every query on the table waits, and queries waiting behind it pile up. ShadowDB reports how long it was held at the seeded row count.

What triggers it, and the safer way

unsafe.sql
ALTER TABLE orders ADD COLUMN note text DEFAULT clock_timestamp()::text;
safer.sql
-- Split the change so the strong lock is held only briefly.

Suppress it when you're sure

Put this comment on the line before the statement. The reason is required and shows in the report.

suppression
-- shadowdb:allow SDB802 <why this is safe here>

Applies to PostgreSQL 14, 15, 16, 17.