> On Jul 14, 2021, at 7:57 AM, Mark Dilger <mark.dil...@enterprisedb.com> wrote:
>
> so no valid toast pointer should contain a va_rawsize field greater than
> MaxAllocSize
... nor should any valid toast pointer contain a va_extinfo field encoding a
va_extsize greater than va_rawsize - VARHDRSZ.
Violations of either of these properties suggest either a bug in the code which
wrote the toast pointer, or that the toast pointer has been corrupted since
being written, or that the page of data being read is being interpreted
incorrectly, perhaps due to catalog corruption, or because the page is just
random noise and not part of a valid table, etc. The amcheck code is not
focused specifically on whether the toasted value can be detoasted so much as
deducing that the data cannot be correct.
—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company