• Tom Lane's avatar
    Avoid memory leakage when a series of subtransactions invoke AFTER triggers · 8f55b9a8
    Tom Lane authored
    that are fired at end-of-statement (as is the normal case for foreign keys,
    for example).  In this situation the per-subxact deferred trigger context
    is always empty when subtransaction exit is reached; so we could free it,
    but were not doing so, leading to an intratransaction leak of 8K or more
    per subtransaction.  Per off-list example from Viatcheslav Kalinin
    subsequent to bug #3418 (his original bug report omitted a foreign key
    constraint needed to cause this leak).
    
    Back-patch to 8.2; prior versions were not using per-subxact contexts
    for deferred triggers, so did not have this leak.
    8f55b9a8
trigger.c 94.7 KB