Re: PG_GETARG_TEXT_PP vs PG_GETARG_TEXT_P

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Markur Sens <markursens(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: PG_GETARG_TEXT_PP vs PG_GETARG_TEXT_P
Date: 2022-06-11 21:06:02
Message-ID: 3105047.1654981562@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Markur Sens <markursens(at)gmail(dot)com> 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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Markur Sens 2022-06-11 21:14:33 Re: PG_GETARG_TEXT_PP vs PG_GETARG_TEXT_P
Previous Message Markur Sens 2022-06-11 19:49:48 PG_GETARG_TEXT_PP vs PG_GETARG_TEXT_P