I am encountering, here and there, an idiom like
pstrdup(TextDatumGetCString(foo))
or a pre-8.4 version,
pstrdup(DatumGetCString(DirectFunctionCall1(textout, foo)))
It's leading me to question my sanity because it appears to me
that both text_to_cstring (underlying TextDatumGetCString) and
textout already return a string palloc'd in the current context,
and that pstrdup (without any change of context) can't be accomplishing
anything. I'm probably missing something crucial, but what?
-Chap