On 2019-Mar-13, Robert Haas wrote:
> On Wed, Mar 13, 2019 at 1:38 PM Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
> > A bit, yes, but not overly so, and it's less fragile that not having
> > such a protection. Anything that allocates in CacheMemoryContext needs
> > to be very careful anyway.
>
> True, but I think it's more fragile than either of the options I proposed.
You do? Unless I misunderstood, your options are:
1. (the patch you attached) create a temporary memory context that is
used for everything, then at the end copy the good stuff to CacheMemCxt
(or a sub-context thereof). This still needs to copy.
2. create a temp memory context, do everything there, do retail freeing
of everything we don't want, reparenting the context to CacheMemCxt.
Hope we didn't forget to pfree anything.
How is any of those superior to what I propose?
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services