Steve Krall <swalker@iglou.com> writes:
> [root@r-and-d /tmp]# strings core | grep "DROP TRIGGER" | wc -l
> 5450219
> We have alot of triggers, but not 5.5 million :)
Looks like a smoking gun to me ...
Armed with that, I went back to the 7.1 source code, and what I see is a
huge (like O(N^2) in the number of triggers) leak in this routine. What
it needs is a "resetPQExpBuffer(delqry);" call somewhere in the loop
over triggers. I'd suggest putting it right before the line
appendPQExpBuffer(delqry, "DROP TRIGGER %s ", fmtId(tgname, force_quotes));
I see the same leak in 7.2, btw, but it's gone in 7.3. Didn't look at
prior releases ...
(It seems the reason no one noticed is that the constructed string isn't
actually *used* anyplace. Sigh.)
regards, tom lane