"Peter J. Holzer" <hjp-pgsql@xxxxxx> writes: > On 2024-03-06 12:45:33 -0500, Stephen Frost wrote: >> That's an additional 21 bytes, which is really quite a lot. What's >> included in those 21 bytes are >> [...] >> the type information (typmod if there is one and the OID of the >> composite type), > Is it necessary to store this in every row? Can a column contain > different composite types? Operations on type RECORD need to be able to ascertain which concrete rowtype they're dealing with, so yes the type info is critical in that case. Even without that, it wouldn't be terribly practical to insist on creating a separate copy of record_out (and every other function that accepts composite types) just so that it could have a hard-wired notion of what rowtype it's going to deal with. regards, tom lane