Well that's good to know. It was just curious that, in my case, I only saw
this in this particular function.

Anyway. I will consider to handle the memory the same way, if this is the
recommendation.

Many thanks.

/Closed

On Sat, Jul 2, 2016 at 4:45 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:

> Dirk Rudolph <dirk.rudo...@netcentric.biz> writes:
> > while implementing my own C function, I mentioned that some memory is
> not freed by the text_overlay function in varlena.c
>
> By and large, that's intentional.  SQL-called functions normally run
> in short-lived memory contexts, so that any memory they don't bother to
> pfree will be cleaned up automatically at the end of the tuple cycle.
> If we did not follow that approach, there would need to be many thousands
> more explicit pfree calls than there are today, and the system would be
> net slower overall because multiple retail pfree's are slower than a
> MemoryContextReset.
>
> There are places where it's important to avoid leaking memory, certainly.
> But I don't think this is one of them, unless you can demonstrate a
> scenario with query-lifespan or worse leakage.
>
> > Particularly I mean the both substrings allocated by text_substring
> (according to the documentation of text_substring "The result is always a
> freshly palloc'd datum.") and one of the concatenation results. I’m aware
> of the MemoryContext being deleted in my case but IMHO builtin functions
> should be memory safe.
>
> That is not the project policy.
>
>                         regards, tom lane
>



-- 

Dirk Rudolph | Senior Software Engineer

Netcentric AG

M: +41 79 642 37 11
D: +49 174 966 84 34

dirk.rudo...@netcentric.biz | www.netcentric.biz

Reply via email to