I just noticed that DropTrigger uses ShareRowExclusiveLock to lock the
relation it's going to drop the trigger on. The comment right above it
says that this should match RemoveTriggerById, but that one uses
AccessExclusiveLock -- so one of them (or the comment) is not right.
Besides, the docs state that no backend code uses ShareRowExclusiveLock
anyway (13.3 Explicit locking). I guess that if the patch to reduce
lock strength in alter table goes in again, it'll need to update this
chapter to match.
--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>