Re: PG_FREE_IF_COPY()

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: PG_FREE_IF_COPY()
Дата
Msg-id 28383.1118759241@sss.pgh.pa.us
обсуждение исходный текст
Ответ на PG_FREE_IF_COPY()  ("John Hansen" <john@geeknet.com.au>)
Список pgsql-hackers
"John Hansen" <john@geeknet.com.au> writes:
> Given the following snippet:
>     HeapTupleHeader     tuple;
>     Datum               temp;
>     bool              isnull;
>     tuple = PG_GETARG_HEAPTUPLEHEADER(0);
>     temp  = GetAttributeByName(tuple, "data", &isnull);

> When using this for a btree operator functions, you need to
> PG_FREE_IF_COPY(?,?);

> Which of the above parameters need I free?

It'd probably be wise to do a FREE_IF_COPY on the tuple.

GetAttributeByName, however, hasn't copied anything (if it's
a pass-by-ref type you'll just get a pointer into the tuple).
If you do a copy further down that might be a reason to free
something, but this code alone isn't making a copy.
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Teodor Sigaev
Дата:
Сообщение: Re: Gist Recovery testing
Следующее
От: "John Hansen"
Дата:
Сообщение: Re: PG_FREE_IF_COPY()