Gregory Stark <stark@enterprisedb.com> writes:
> I'm wondering whether it doesn't make sense to lower VARATT_SHORT_MAX to 0x70
> to allow for at least a small number of constant values which could indicate
> some special type of datum. That could be used to indicate that a fixed size
> pointer like a toast pointer follows. That could be used for something like
> common value compression. [*]
I'm not for this because it would complicate the already-too-complicated
inner-loop tests for deciding which form of datum you're looking at.
The idea that I recall mentioning was to expend another byte in TOAST
pointers to make them self-identifying, ie, instead of 0x80 or 0x01
signaling something that *must* be a 17-byte toast pointer, that bit
pattern signals "something else" and the content of the next byte
lets you know what. So TOAST pointers would take 18 bytes instead of
17, and there would be room for additions of other sorts of pointers.
regards, tom lane