Oops, my fault. The list returned by ExecInsertIndexTuples() needs to be freed otherwise lots of lists (one per row) will build up and not be freed until the end of the query. This actually accounts for even more memory than the after-trigger event queue. Patch attached.
Of course the after-trigger queue still uses a lot of memory for large updates (I was working on a patch for that but ran out of time before this commitfest started). This fix at least brings deferred index constraints into line with FK constraints, in terms of memory usage. Regards, Dean
memory_leak.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers