Re: Whole row var issue

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: David Rowley <dgrowleyml(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Whole row var issue
Date: 2026-08-06 02:25:14
Message-ID: CAH2-WzmJbcw=HBsqSR=9jyaDkuAz1ztoB=ow9Vso-VMLDBwsBw@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Aug 5, 2026 at 8:55 PM David Rowley <dgrowleyml(at)gmail(dot)com> 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 Content-Type Size
0001-Add-isolation-test-for-SET-NOT-NULL-with-an-older-sn.patch application/octet-stream 2.7 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Xuneng Zhou 2026-08-06 03:34:14 Re: BUG: ReadStream look-ahead exhausts local buffers when effective_io_concurrency>=64
Previous Message Jeff Davis 2026-08-06 02:18:02 Re: CREATE SUBSCRIPTION ... SERVER vs. pg_dump, etc.