On Sat, Oct 21, 2023 at 09:59:04PM -0400, Bruce Momjian wrote:
> On Sat, Oct 21, 2023 at 09:56:13PM -0400, Bruce Momjian wrote:
> > I did some more research. It turns out that the source slot/planSlot is
> > populating its pg_attribute information via makeTargetEntry() and it
> > has no concept of a storage type.
> >
> > Digging further, I found that we cannot get rid of the the use of
> > att->attstorage != TYPSTORAGE_PLAIN in macros ATT_IS_PACKABLE and
> > VARLENA_ATT_IS_PACKABLE macros in src/backend/access/common/heaptuple.c
> > because there are internal uses of fill_val() that can't handle packed
> > varlena headers.
> >
> > I ended up with a doc patch that adds a C comment about this odd
> > behavior and removes doc text about PLAIN storage not using packed
> > headers.
>
> Oops, patch attached.
Patch applied to all supported versions.
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com
Only you can decide what is important to you.