| 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 |
| 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. |