Fire non-deferred AFTER triggers immediately upon query completion,

Tom Lane <tgl@sss.pgh.pa.us>

Commit: b339d1fff6c2f14776af29a35c8550b222ca70b2
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2004-09-10T18:40:09Z
Releases: 8.0.0
Fire non-deferred AFTER triggers immediately upon query completion,
rather than when returning to the idle loop.  This makes no particular
difference for interactively-issued queries, but it makes a big difference
for queries issued within functions: trigger execution now occurs before
the calling function is allowed to proceed.  This responds to numerous
complaints about nonintuitive behavior of foreign key checking, such as
http://archives.postgresql.org/pgsql-bugs/2004-09/msg00020.php, and
appears to be required by the SQL99 spec.
Also take the opportunity to simplify the data structures used for the
pending-trigger list, rename them for more clarity, and squeeze out a
bit of space.

Files