Re: BUG #17351: Altering a composite type created for a partitioned table can lead to a crash
От | Tom Lane |
---|---|
Тема | Re: BUG #17351: Altering a composite type created for a partitioned table can lead to a crash |
Дата | |
Msg-id | 3057471.1641072425@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | BUG #17351: Altering a composite type created for a partitioned table can lead to a crash (PG Bug reporting form <noreply@postgresql.org>) |
Ответы |
Re: BUG #17351: Altering a composite type created for a partitioned table can lead to a crash
|
Список | pgsql-bugs |
PG Bug reporting form <noreply@postgresql.org> writes: > When executing the following queries: > create table pt (a int, b int) partition by list (b); > create table t(a pt, check (a = '(1, 2)'::pt)); > alter table pt alter column a type char(4); > \d+ t > The server crashes with the following stack: Hmm. We really ought to reject the ALTER TABLE. We do if "pt" is a plain table: regression=# create table pt (a int, b int); CREATE TABLE regression=# create table t(a pt); CREATE TABLE regression=# alter table pt alter column a type char(4); ERROR: cannot alter table "pt" because column "t.a" uses its row type So something is mistakenly skipping that check for partitioned tables. I think we're also failing to worry about the rowtype of the constant in t's check constraint; it seems like that has to be complained of as well, even if the underyling columns aren't of type "pt". regards, tom lane
В списке pgsql-bugs по дате отправления: