A tidbit I spotted while playing in tablecmds.c
От | Greg Stark |
---|---|
Тема | A tidbit I spotted while playing in tablecmds.c |
Дата | |
Msg-id | CAM-w4HMCUh0xzpo-nYnHGtaBa4WY4fwkx7gMDvDZ8WZ+q+NFsw@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: A tidbit I spotted while playing in tablecmds.c
|
Список | pgsql-hackers |
I think this is a bug: postgres=# alter table only x2 add if not exists i integer; ERROR: 42701: column "i" of relation "x2" already exists Note that it does not occur without the ONLY: postgres=# alter table x2 add if not exists i integer; NOTICE: 42701: column "i" of relation "x2" already exists, skipping ALTER TABLE And I think this would fix it: diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index eef3b3a26c..ad8c176793 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -4054,7 +4054,7 @@ ATExecCmd(List **wqueue, AlteredTableInfo *tab, Relation rel, case AT_AddColumnToView: /* add column via CREATE OR REPLACE VIEW */ address = ATExecAddColumn(wqueue, tab, rel, (ColumnDef *) cmd->def, false, false, - false, lockmode); + cmd->missing_ok, lockmode); break; case AT_AddColumnRecurse: address = ATExecAddColumn(wqueue, tab, rel, (ColumnDef *) cmd->def, -- greg
В списке pgsql-hackers по дате отправления: