On 21/08/2018 17:38, Peter Eisentraut wrote:
> On 20/08/2018 15:14, Tom Lane wrote:
>> I agree this is all moot as long as there's no pad bytes. What I'm
>> trying to figure out is if we need to put in place some provisions
>> to prevent there from being pad bytes at the end of any catalog struct.
>> According to what Andres is saying, it seems like we do (at least for
>> ones with varlena fields).
>
> Yes, I think there could be a problem. I took a brief look through the
> catalogs, and while there are plenty of catalogs with trailing padding,
> finding that in combination with trailing varlena fields that might
> legitimately be all null in practice might require a closer look.
Looking into this a bit more, a few catalogs could use some
BKI_FORCE_NOT_NULL settings, which then avoids the described situation.
See attached patch.
That leaves pg_constraint and pg_event_trigger where you can construct
legitimate tuples where the fixed portion has trailing padding and the
variable fields can all be null.
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services