Re: Variable length varlena headers redux
От | Tom Lane |
---|---|
Тема | Re: Variable length varlena headers redux |
Дата | |
Msg-id | 879.1171383832@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Variable length varlena headers redux (Greg Stark <gsstark@mit.edu>) |
Ответы |
Re: Variable length varlena headers redux
|
Список | pgsql-hackers |
Greg Stark <gsstark@mit.edu> writes: > Tom Lane <tgl@sss.pgh.pa.us> writes: >> I'd be inclined to put the intelligence into heap_form_tuple and thereby >> avoid getting the TOAST code involved unless there are wide fields to >> deal with. > And have heap_deform_tuple / heap_getattr palloc and memcpy the the datum on > the way out? Or wait until detoast time and then do it? No, heap_deform_tuple / heap_getattr are not responsible for palloc'ing anything, only for computing appropriate pointers into the tuple. Existing functions that use PG_DETOAST_DATUM would incur a palloc to produce a 4-byte-header version of a short-header datum. We could then work on modifying one function at a time to use some alternative macro that doesn't force a useless palloc, but the system wouldn't be broken meanwhile; and only the high-traffic functions would be worth fixing at all. The point I'm trying to get across here is to do things one small step at a time; if you insist on a "big bang" patch then it'll never get done. You might want to go back and review the CVS history for some other big changes like TOAST and the version-1 function-call protocol to see our previous uses of this approach. regards, tom lane
В списке pgsql-hackers по дате отправления: