Re: Fix SET EXPRESSION for virtual columns with whole-row dependencies

From: Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>
To: jian he <jian(dot)universality(at)gmail(dot)com>
Cc: Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Peter Eisentraut <peter(at)eisentraut(dot)org>
Subject: Re: Fix SET EXPRESSION for virtual columns with whole-row dependencies
Date: 2026-06-09 07:28:18
Message-ID: 5B739323-C897-4B1A-9BFC-656E5CB4AD58@gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> On Jun 9, 2026, at 15:23, jian he <jian(dot)universality(at)gmail(dot)com> wrote:
>
> On Tue, Jun 9, 2026 at 2:23 PM Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> wrote:
>>
>> Hi,
>>
>> While testing “[f80bedd52] Allow ALTER COLUMN SET EXPRESSION on virtual columns”, I found that the feature missed handling whole-row check constraints.
>>
>> Here is a repro:
>> ```
>> evantest=# create table t(
>> evantest(# a int,
>> evantest(# b int generated always as (a*2) virtual,
>> evantest(# constraint row_c check (t is not null)
>> evantest(# );
>> CREATE TABLE
>> evantest=# insert into t(a) values(1);
>> INSERT 0 1
>> evantest=# alter table t alter b set expression as (nullif(a, 1));
>> ALTER TABLE
>> evantest=# select * from t;
>> a | b
>> ---+---
>> 1 |
>> (1 row)
>> ```
>>
>> The ALTER TABLE should fail, because it makes b become NULL, which breaks the constraint row_c.
>>
>
> Hi.
>
> In case you are wondering whole-row objects:
> ALTER TABLE DROP COLUMN and ALTER COLUMN SET DATA TYPE are covered by
> https://commitfest.postgresql.org/patch/5988 and
> https://commitfest.postgresql.org/patch/6055.
>
> Meanwhile, ALTER TABLE SET EXPRESSION is being handled over in
> https://commitfest.postgresql.org/patch/6755

Thanks for pointing out that. I will review 6755.

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

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Benoit Lobréau 2026-06-09 07:36:41 Re: Logging parallel worker draught
Previous Message jian he 2026-06-09 07:23:24 Re: Fix SET EXPRESSION for virtual columns with whole-row dependencies