Robert Haas <robertmh...@gmail.com> writes: > On Tue, Feb 5, 2013 at 12:18 AM, Phil Sorber <p...@omniti.com> wrote: >> On Mon, Feb 4, 2013 at 10:52 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: >>> I don't believe that callers should be trying to free() the result. >>> Whether it's been strdup'd or not is not any of their business.
>> Is that just because of the nature of this specific function? > I can't presume to speak for Tom, but I think so. Sometimes the API > of a function includes the notion that the caller should pfree the > result. Sometimes it doesn't. The advantage of NOT including that in > the API contract is that you can sometimes do optimizations that would > be impossible otherwise - e.g. you can return the same palloc'd string > on successive calls to the function; or you can sometimes return a > statically allocated string. Yeah. In this particular case, it seems rather obvious that the function should be returning the same string each time --- if it's actually doing a fresh malloc, that sounds like a bug. But in any case, adding or removing a const qualifier from a function's result typically goes along with an API-contract change as to whether the caller is supposed to free the result or not. My objection here was specifically that I don't believe the contract for get_progname includes caller-free now, and I don't want it to start being that. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers