Markur Sens <markursens@xxxxxxxxx> writes: > In the “Extending SQL” chapter I see both of these forms are mentioned. > But can’t find info about when to use which one. PG_GETARG_TEXT_P returns a traditional-format, 4-byte-header value. PG_GETARG_TEXT_PP is allowed to return either that or a 1-byte-header value, in case that's what the input is. PG_GETARG_TEXT_PP is preferred in new code since it can avoid one step of palloc-and-copy-the-value; the only real downside is you have to use the appropriate macros to get the string's start address and length. regards, tom lane