Re: Fix tuple deformation with virtual generated NOT NULL columns - Mailing list pgsql-hackers

From Chao Li
Subject Re: Fix tuple deformation with virtual generated NOT NULL columns
Date
Msg-id 981D66D0-1185-4319-9C32-9317966C8A02@gmail.com
Whole thread
In response to Re: Fix tuple deformation with virtual generated NOT NULL columns  (David Rowley <dgrowleyml@gmail.com>)
List pgsql-hackers

> On Jun 6, 2026, at 12:50, David Rowley <dgrowleyml@gmail.com> wrote:
>
> On Thu, 4 Jun 2026 at 17:57, Chao Li <li.evan.chao@gmail.com> wrote:
>> While testing "Optimize tuple deformation”, I found a bug:
>
>> I think the problem is in finding the first non-guaranteed attribute where virtual generated attributes are not
considered:
>
> Thanks for the report and fix. I pushed a slightly adjusted version.

Thanks for pushing.

> Form_pg_attribute.attgenerated is '\0' for non-generated columns, so
> there's no point in checking cattr->attgenerated as well as that.
>

I was trying to avoid unconditionally fetching TupleDescAttr(tupdesc, i), since cattr->attgenerated is already
availableand most columns won't be virtual generated columns. But I was probably overthinking the performance angle
here.TupleDescFinalize() runs only when finalizing a tuple descriptor, not during per-tuple deformation. I agree your
adjustedversion is cleaner. 

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/







pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: index prefetching
Next
From: Chao Li
Date:
Subject: Re: Fix domain fast defaults on empty tables