On 2014-01-02 09:49:48 +0200, Heikki Linnakangas wrote: > On 01/02/2014 05:14 AM, Peter Eisentraut wrote: > >diff --git a/contrib/hstore/hstore_io.c b/contrib/hstore/hstore_io.c > >index 772a5ca..8331a56 100644 > >--- a/contrib/hstore/hstore_io.c > >+++ b/contrib/hstore/hstore_io.c > >@@ -1114,11 +1114,7 @@ > > HEntry *entries = ARRPTR(in); > > > > if (count == 0) > >- { > >- out = palloc(1); > >- *out = '\0'; > >- PG_RETURN_CSTRING(out); > >- } > >+ PG_RETURN_CSTRING(""); > > > > buflen = 0; > > Is it legal to return a constant with PG_RETURN_CSTRING? Grepping around, I > don't see that being done anywhere else, but there are places that do > PG_RETURN_CSTRING(pstrdup(<constant>))...
I don't see why it wouldn't be legal - constant strings have static storage duration, i.e. the program lifetime. And I can see nothing that would allow pfree()ing the return value of cstring returning functions in the general case. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers