The function has been introduced in
368202501539 to test at a low level
the new kinds of external toast datums, and would fail on OOM when
dealing with a plain storage attribute. The existing tests of
indirect_toast do not test this case, still the error generated was
confusing.
Author: Alexander Lakhin
Discussion: https://postgr.es/m/
250a21e5-d677-6b2a-2692-
cd4233785e37@gmail.com
/* only work on existing, not-null varlenas */
if (TupleDescAttr(tupdesc, i)->attisdropped ||
nulls[i] ||
- TupleDescAttr(tupdesc, i)->attlen != -1)
+ TupleDescAttr(tupdesc, i)->attlen != -1 ||
+ TupleDescAttr(tupdesc, i)->attstorage == TYPSTORAGE_PLAIN)
continue;
attr = (struct varlena *) DatumGetPointer(values[i]);