Gregory Stark <[EMAIL PROTECTED]> writes: > "Tom Lane" <[EMAIL PROTECTED]> writes: >> 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.
> Here's a patch that does all of the above. I'd be inclined to make the second byte be the length and have VARSIZE_1B_E depend on that --- any objection? > 2) the test in tuptoaster.c could be > if (toast_isnull[i] || > !VARATT_IS_EXTERNAL(new_value) || > VARSIZE_EXTERNAL(old_value) != VARSIZE_EXTERNAL(new_value) || > memcmp(VARDATA_SHORT(old_value), > VARDATA_SHORT(new_value), > VARSIZE_EXTERNAL(old_value)) != 0) Yeah, I'd go with this just to avoid having hardwired knowledge of the datum size here. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings