On Wed, Aug 5, 2026 at 8:55 PM David Rowley <[email protected]> wrote:
> Thanks. Looks like the populate_isnull_array() tts_isnull population
> writes back that the DEFAULT attribute is NULL for attributes greater
> than what's in the tuple (which is valid as the array is always large
> enough), but invalid as that might overwrite a tts_isnull value that
> was set by the missing attribute code path in some a previous pass of
> deformation for that tuple where we only deformed up to some previous
> attribute.

Incorrect results also seem possible with ALTER COLUMN ... SET NOT
NULL: old snapshots can sometimes see NULL values where they
shouldn't, due in part to a concurrent SET NOT NULL operation.

See the attached patch's isolation test, which fails for me on master.
I'm not sure if this is the same bug as the one you've diagnosed, or a
different one. But another git bisect also points to commit c456e3911,
so it's certainly an issue in the same area.

-- 
Peter Geoghegan

Attachment: 0001-Add-isolation-test-for-SET-NOT-NULL-with-an-older-sn.patch
Description: Binary data

Reply via email to