> On Jun 10, 2026, at 17:05, Chao Li <[email protected]> wrote: > > > >> On Jun 9, 2026, at 15:28, Chao Li <[email protected]> wrote: >> >> >> >>> On Jun 9, 2026, at 15:23, jian he <[email protected]> wrote: >>> >>> On Tue, Jun 9, 2026 at 2:23 PM Chao Li <[email protected]> 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/ >> > > After reading the other implementation in [1], I realized that I had missed > the partial-index case, so I added coverage for that. > > I am still sending an updated version of this patch because my implementation > is different from the one in [1]. I would like people to compare the two > approaches and decide which direction is better. > > [1] > https://postgr.es/m/cajtyswxokyedvbzymwc9skrq7y_muv6xjxn4h9gfsbopd3n...@mail.gmail.com > > Best regards, > -- > Chao Li (Evan) > HighGo Software Co., Ltd. > https://www.highgo.com/ > >
Oops! Forgot the attachment. Here comes it. Best regards, -- Chao Li (Evan) HighGo Software Co., Ltd. https://www.highgo.com/
v2-0001-Fix-SET-EXPRESSION-with-whole-row-virtual-column-.patch
Description: Binary data
