On Wed, Mar 13, 2019 at 12:42 PM Alvaro Herrera <alvhe...@2ndquadrant.com> wrote: > I remember going over this code's memory allocation strategy a bit to > avoid the copy while not incurring potential leaks CacheMemoryContext; > as I recall, my idea was to use two contexts, one of which is temporary > and used for any potentially leaky callees, and destroyed at the end of > the function, and the other contains the good stuff and is reparented to > CacheMemoryContext at the end. So if you have any accidental leaks, > they don't affect a long-lived context. You have to be mindful of not > calling leaky code when you're using the permanent one.
Well, that assumes that the functions which allocate the good stuff do not also leak, which seems a bit fragile. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company