Size of TOAST pointer

Поиск
Список
Период
Сортировка
От Vignesh Raghunathan
Тема Size of TOAST pointer
Дата
Msg-id CAD_AmVgQ6cHwCM_JoHH_vJmcLT6Q4tssNois1Un4AB=uXfVEBA@mail.gmail.com
обсуждение исходный текст
Ответы Re: Size of TOAST pointer  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Hello,

I was looking at the documentation for TOAST (http://www.postgresql.org/docs/devel/static/storage-toast.html) and it's specified that the toast pointer occupies 18 bytes. However, the struct representing the toast pointer is defined as follows 

typedef struct varatt_external
{
        int32           va_rawsize;             /* Original data size (includes header) */
        int32           va_extsize;             /* External saved size (doesn't) */
        Oid                     va_valueid;             /* Unique ID of value within TOAST table */
        Oid                     va_toastrelid;  /* RelID of TOAST table containing it */
}       varatt_external;


Assuming that the pointer is aligned to a 4 byte boundary, doesn't it sum up to 16 bytes?

Could someone please explain why the documentation specifies it as 18 bytes?

I am pretty new to the source code and the C language in general so I apologize if this question has an obvious answer.

Thanks,
Vignesh.


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Ryan Pedela
Дата:
Сообщение: Re: [PATCH] Generalized JSON output functions
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Size of TOAST pointer