Avoid assuming that struct varattrib_pointer doesn't get padded by the
Tom Lane <tgl@sss.pgh.pa.us>
Avoid assuming that struct varattrib_pointer doesn't get padded by the compiler --- at least on ARM, it does. I suspect that the varvarlena patch has been creating larger-than-intended toast pointers all along on ARM, but it wasn't exposed until the latest tweak added some Asserts that calculated the expected size in a different way. We could probably have fixed this by adding __attribute__((packed)) as is done for ItemPointerData, but struct varattrib_pointer isn't really all that useful anyway, so it seems cleanest to just get rid of it and have only struct varattrib_1b_e. Per results from buildfarm member quagga.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/heap/tuptoaster.c | modified | +11 −8 |
| src/include/postgres.h | modified | +6 −11 |