Re: checking if jsonb was detoasted and releasing memory
От
Tom Lane
Тема
Re: checking if jsonb was detoasted and releasing memory
Дата
Msg-id
14615.1423753483@sss.pgh.pa.us
Ответ на
checking if jsonb was detoasted and releasing memory (Igor Stassiy)
Список
Дерево обсуждения
checking if jsonb was detoasted and releasing memory Igor Stassiy <istassiy@gmail.com>
Re: checking if jsonb was detoasted and releasing memory Tom Lane <tgl@sss.pgh.pa.us>
Igor Stassiy writes: > Let us say that the datum of type Datum contains a Jsonb* type. > Then after the call > Jsonb *jb = DatumGetJsonb(datum); > the jb might point to a palloc'ed structure, in case detoasting took place. > So the question is if this is the right way to free up the memory after > checking that the jb was detoasted? > if ((void *)jb != DatumGetPointer(datum)) > pfree(jb); // free if detoasted For the most part the answer is "don't bother". Except in very narrow cases, it's not worth it to clean up such values retail as opposed to letting the next evaluation context reset get rid of them in bulk. The code you proposed will work, but it's ugly and usually a net waste of cycles. It also embeds assumptions we might want to change someday. regards, tom lane
В списке pgsql-general по дате отправления