Fix unsafe memory management in CloneRowTriggersToPartition().

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

Commit: eaf0292c3ba7acac2735f99a8988bd49a26112f5
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2019-06-03T20:59:26Z
Releases: 12.0
Fix unsafe memory management in CloneRowTriggersToPartition().

It's not really supported to call systable_getnext() in a different
memory context than systable_beginscan() was called in, and it's
*definitely* not safe to do so and then reset that context between
calls.  I'm not very clear on how this code survived
CLOBBER_CACHE_ALWAYS testing ... but Alexander Lakhin found a case
that would crash it pretty reliably.

Per bug #15828.  Fix, and backpatch to v11 where this code came in.

Discussion: https://postgr.es/m/15828-f6ddd7df4852f473@postgresql.org

Files

PathChange+/−
src/backend/commands/tablecmds.c modified +7 −7

Discussion