ALTER TABLE does not check for column existence before starting operations
Вложения
В списке pgsql-hackers по дате отправления:
| От | Pierre Ducroquet |
|---|---|
| Тема | ALTER TABLE does not check for column existence before starting operations |
| Дата | |
| Msg-id | 1897070.0DItnajBuJ@pierred-pdoc обсуждение исходный текст |
| Ответы |
Re: ALTER TABLE does not check for column existence before startingoperations
Re: ALTER TABLE does not check for column existence before startingoperations |
| Список | pgsql-hackers |
Hi While working on a big table recently, I noticed that ALTER TABLE does not check for column existence in operations like SET NOT NULL before starting working on the table, for instance adding a primary key. It is thus possible, if a typo has been made, to generate a long lock and a lot of WAL that will serve no purpose since the whole transaction will be discarded. For example : toto=# alter table test add primary key(i), alter column typo set not null; ERROR: column "typo" of relation "test" does not exist Time: 10.794 s The attached patch fixes this behaviour by adding a small check in the first pass of alter table to make sure that a column referenced by an alter command exists first. It also checks if the column is added by another alter sub- command. It does not handle every scenario (dropping a column and then altering it for instance), these are left to the exec code to exclude. The patch has been checked with make check, and I see no documentation change to do since this does not alter any existing documented behaviour. Regards Pierre
В списке pgsql-hackers по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера