Re: Life cycles of tuple descriptors
От | Tom Lane |
---|---|
Тема | Re: Life cycles of tuple descriptors |
Дата | |
Msg-id | 609406.1639534478@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Life cycles of tuple descriptors (Chapman Flack <chap@anastigmatix.net>) |
Ответы |
Re: Life cycles of tuple descriptors
|
Список | pgsql-hackers |
Chapman Flack <chap@anastigmatix.net> writes: > On 12/14/21 20:02, Tom Lane wrote: >> The API contract for lookup_rowtype_tupdesc specifies that you must "call >> ReleaseTupleDesc or DecrTupleDescRefCount when done using the tupdesc". >> It's safe to assume that the tupdesc will stick around as long as you >> haven't done that. > I think what threw me was having a function whose API contract mentions > reference counts, but that sometimes gives me things that don't have them. That's supposed to be hidden under ReleaseTupleDesc; you shouldn't have to think about it. > Oh, hmm, maybe one thing in that API comment ought to be changed. It says > I must call ReleaseTupleDesc *or* DecrTupleDescRefCount. Maybe that dates > from before the shared registry? ReleaseTupleDesc is safe, but anybody who > uses DecrTupleDescRefCount on a lookup_rowtype_tupdesc result could be > in for an assertion failure if a non-refcounted tupdesc is returned. Yeah, I was just wondering the same. I think DecrTupleDescRefCount is safe if you know you are looking up a named composite type, but maybe that's still too much familiarity with typcache innards. regards, tom lane
В списке pgsql-hackers по дате отправления: