Re: Fix tuple deformation with virtual generated NOT NULL columns

From: David Rowley <dgrowleyml(at)gmail(dot)com>
To: Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>
Cc: Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Fix tuple deformation with virtual generated NOT NULL columns
Date: 2026-06-06 04:50:29
Message-ID: CAApHDvoQKY8zHb1LZBuYZBRszi0qVmTaV_zFup=A9xqRpJWMRQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, 4 Jun 2026 at 17:57, Chao Li <li(dot)evan(dot)chao(at)gmail(dot)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.
Form_pg_attribute.attgenerated is '\0' for non-generated columns, so
there's no point in checking cattr->attgenerated as well as that.

I also added an Assert() to help catch any other reason that the
guaranteed column gets set incorrectly again in TupleDescFinalize().

David

In response to

Browse pgsql-hackers by date

  From Date Subject
Previous Message ZizhuanLiu X-MAN 2026-06-06 03:30:26 Re: Adjust pg_stat_get_lock() prorows to match lock types