Re: extensible external toast tuple support
От | Robert Haas |
---|---|
Тема | Re: extensible external toast tuple support |
Дата | |
Msg-id | CA+TgmoaA-ccADNmzV6==h00=XXcbToBWUj5eWR5-vDkGX2ib3Q@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: extensible external toast tuple support (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: extensible external toast tuple support
|
Список | pgsql-hackers |
On Fri, Jun 28, 2013 at 9:23 AM, Robert Haas <robertmhaas@gmail.com> wrote: > On Thu, Jun 27, 2013 at 12:56 PM, Andres Freund <andres@2ndquadrant.com> wrote: >> Please find attached the next version of the extensible toast >> support. There basically are two changes: >> >> * handle indirect toast tuples properly in heap_tuple_fetch_attr >> and related places >> * minor comment adjustments > > It looks to me like you need to pass true, rather than false, as the > first argument to TrapMacro: > > +#define VARTAG_SIZE(tag) \ > + ((tag) == VARTAG_INDIRECT ? sizeof(varatt_indirect) : \ > + (tag) == VARTAG_ONDISK ? sizeof(varatt_external) : \ > + TrapMacro(false, "unknown vartag")) > > Still looking at the rest of this. Why does toast_insert_or_update() need to go through all the rigamarole in toast_datum_differs()? I would have thought that it could simply treat any external-indirect value as needing to be detoasted and retoasted, since the destination is the disk anyhow. Do you see external-indirect values getting used for anything other than logical replication? Is there code to do so anywhere? -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: