Make regress function make_tuple_indirect() able to handle plain attributes

The function has been introduced in 3682025015 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
This commit is contained in:
Michael Paquier 2024-06-17 14:26:27 +09:00
parent faaa0d2798
commit 8f1888eb6d

View file

@ -595,7 +595,8 @@ make_tuple_indirect(PG_FUNCTION_ARGS)
/* 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]);