updatable view set default interact with base rel generated stored columns
От | jian he |
---|---|
Тема | updatable view set default interact with base rel generated stored columns |
Дата | |
Msg-id | CACJufxG4SWuFRq0its0wfpVZ8HENFEWWg8jrdUgzqP9JaxfBRg@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: updatable view set default interact with base rel generated stored columns
|
Список | pgsql-hackers |
hi. While reviewing virtual generated columns, I find some issues with the updatable view interacting with stored generated columns. ----------------------- drop table if exists base_tbl cascade; CREATE TABLE base_tbl (a int, b int GENERATED ALWAYS AS (22) stored, d int default 22); create view rw_view1 as select * from base_tbl; insert into rw_view1(a) values (12) returning *; alter view rw_view1 alter column b set default 11.1; insert into rw_view1(a,b,d) values ( 12, default,33) returning *; insert into rw_view1(a,d) values (12,33) returning *; insert into rw_view1 default values returning *; SELECT events & 4 != 0 AS can_upd, events & 8 != 0 AS can_ins, events & 16 != 0 AS can_del FROM pg_catalog.pg_relation_is_updatable('rw_view1'::regclass, false) t(events); ----------------------- "alter view rw_view1 alter column b set default 11.1;" because rw_view1 view relation in ATExecColumnDefault TupleDesc->attgenerated == '\0', otherwise it can error out in ATExecColumnDefault. Now after we set default, we cannot insert any value to rw_view1, which makes it not updatable.
В списке pgsql-hackers по дате отправления: