22#define VARATT_EXTERNAL_GET_POINTER(toast_pointer, attr) \
24 varattrib_1b_e *attre = (varattrib_1b_e *) (attr); \
25 Assert(VARATT_IS_EXTERNAL(attre)); \
26 Assert(VARSIZE_EXTERNAL(attre) == sizeof(toast_pointer) + VARHDRSZ_EXTERNAL); \
27 memcpy(&(toast_pointer), VARDATA_EXTERNAL(attre), sizeof(toast_pointer)); \
31#define TOAST_POINTER_SIZE (VARHDRSZ_EXTERNAL + sizeof(varatt_external))
34#define INDIRECT_POINTER_SIZE (VARHDRSZ_EXTERNAL + sizeof(varatt_indirect))
Size toast_datum_size(Datum value)
struct varlena * detoast_attr(struct varlena *attr)
Size toast_raw_datum_size(Datum value)
struct varlena * detoast_external_attr(struct varlena *attr)
struct varlena * detoast_attr_slice(struct varlena *attr, int32 sliceoffset, int32 slicelength)