pgsql-bugs@postgresql.org writes:
> ERROR: deferredTriggerGetPreviousEvent: event for tuple (0,9) not found
Hmm, are you trying to create triggers on pg_shadow? It's hard to see
how that message could come from an "UPDATE pg_shadow" otherwise.
Triggers on system catalogs don't work very well, because they won't
be invoked as a side effect of system-initiated operations. In this
situation, it appears that the trigger code sees that the pg_shadow row
was inserted in the current transaction, so it tries to look up the row
in the list of pending trigger events --- and doesn't find an entry,
because CREATE USER didn't invoke the trigger code.
In a perfect world we'd support user-defined triggers on the system
catalogs, but given the potential circularity problems, I doubt it's
going to happen real soon. I'd suggest finding another approach.
regards, tom lane