| From: | Andres Freund <andres(at)anarazel(dot)de> |
|---|---|
| To: | David Rowley <dgrowleyml(at)gmail(dot)com> |
| Cc: | Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>, Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Fix tuple deformation with virtual generated NOT NULL columns |
| Date: | 2026-06-08 13:01:24 |
| Message-ID: | pse3eru75b5skbvc7jjrf7origavqojc6nqtwdrr7z6sjkyxfo@siklvj643v4f |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi,
On 2026-06-06 16:50:29 +1200, David Rowley wrote:
> 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().
Seems like a test for some of this would be good too?
Greetings,
Andres Freund
| From | Date | Subject | |
|---|---|---|---|
| Next Message | torikoshia | 2026-06-08 13:09:06 | Why is the LSN reported for pg_logical_emit_message() different from other decoded operations? |
| Previous Message | Xuneng Zhou | 2026-06-08 13:00:17 | Re: t/035_standby_logical_decoding.pl might fail on attempt to read wrong timeline |