]> granicus.if.org Git - postgresql/commit
Prevent memory leaks in parseRelOptions().
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 13 Aug 2014 15:35:51 +0000 (11:35 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 13 Aug 2014 15:35:51 +0000 (11:35 -0400)
commita844c29966d7c0cd6a457e9324f175349bb12df0
tree29728762901f6667dcb035ca6fefe29ada3f6abc
parentab8c84db2f7af008151b848cf1d6a4672a39eecd
Prevent memory leaks in parseRelOptions().

parseRelOptions() tended to leak memory in the caller's context.  Most
of the time this doesn't really matter since the caller's context is
at most query-lifespan, and the function won't be invoked very many times.
However, when testing with CLOBBER_CACHE_RECURSIVELY, the same relcache
entry can get rebuilt a *lot* of times in one query, leading to significant
intraquery memory bloat if it has any reloptions.  Noted while
investigating a related report from Tomas Vondra.

In passing, get rid of some Asserts that are redundant with the one
done by deconstruct_array().

As with other patches to avoid leaks in CLOBBER_CACHE testing, it doesn't
really seem worth back-patching this.
src/backend/access/common/reloptions.c