Fix some oversights in commit 2455ab488.

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

Commit: de570047993bd5fd65ad2bdf6b0acf5b8939bcb3
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2019-03-14T22:36:33Z
Releases: 12.0
Fix some oversights in commit 2455ab488.

The idea was to generate all the junk in a destroyable subcontext rather
than leaking it in the caller's context, but partition_bounds_create was
still being called in the caller's context, allowing plenty of scope for
leakage.  Also, get_rel_relkind() was still being called in the rel's
rd_pdcxt, creating a risk of session-lifespan memory wastage.

Simplify the logic a bit while at it.  Also, reduce rd_pdcxt to
ALLOCSET_SMALL_SIZES, since it seems likely to not usually be big.

Probably something like this needs to be back-patched into v11,
but for now let's get some buildfarm testing on this.

Discussion: https://postgr.es/m/15943.1552601288@sss.pgh.pa.us

Files

PathChange+/−
src/backend/partitioning/partdesc.c modified +33 −39

Discussion