On Fri, Jun 28, 2013 at 9:23 AM, Robert Haas <robertmh...@gmail.com> wrote:
> On Thu, Jun 27, 2013 at 12:56 PM, Andres Freund <and...@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


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to