Re: Fix SET EXPRESSION for virtual columns with whole-row dependencies
От
jian he
Тема
Re: Fix SET EXPRESSION for virtual columns with whole-row dependencies
Дата
Msg-id
CACJufxHTK0Qk7AwdrHK=y8OtK--zEVY-Ossxx4UUgxaE2NCAXA@mail.gmail.com
Ответ на
Список
Дерево обсуждения
Fix SET EXPRESSION for virtual columns with whole-row dependencies Chao Li <li.evan.chao@gmail.com>
Re: Fix SET EXPRESSION for virtual columns with whole-row dependencies jian he <jian.universality@gmail.com>
Re: Fix SET EXPRESSION for virtual columns with whole-row dependencies Chao Li <li.evan.chao@gmail.com>
On Tue, Jun 9, 2026 at 2:23 PM Chao Li 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
В списке pgsql-hackers по дате отправления
От: Tingchuan Sun
Дата:
От: Chao Li
Дата: