On Mon, 2025-08-11 at 11:34 +0800, Charles Qi wrote: > The trigger function in example is doing nothing but return new, the > row is actually locked by the trigger itself (trigger.c > > ExecBRUpdateTriggers > GetTupleForTrigger) > > You mentioned a very important behavior: > > A multixact is only necessary > > if a subtransaction needs to take a stronger lock on the row than what > > was there before. > > We are doing two no key updates in example, and should not need a > stronger lock on the same row.
Still, you could explicitly lock the row in the trigger function with a high enough lock level to avoid a multixact being created later on. Yours, Laurenz Albe