Обсуждение: ToDo: conditional ALTER TABLE

Поиск
Список
Период
Сортировка

ToDo: conditional ALTER TABLE

От
Pavel Stehule
Дата:
Hello

I am working on quiet dumps now. i found a small issue.

pg_dump produces a statements

ALTER TABLE ONLY public.b DROP CONSTRAINT b_fk_fkey;
ALTER TABLE ONLY public.a DROP CONSTRAINT a_pkey;

DROP TABLE IF EXISTS public.b;
DROP TABLE IF EXISTS public.a;

Actually there is no a conditional ALTER. These statements must be
before DROPs, but then it can fails when these tables are missing.

So some form like ALTER TABLE IF EXISTS ... should be usefull

Regards

Pavel Stehule


Re: ToDo: conditional ALTER TABLE

От
Noah Misch
Дата:
On Mon, Dec 19, 2011 at 10:25:34AM +0100, Pavel Stehule wrote:
> I am working on quiet dumps now. i found a small issue.
> 
> pg_dump produces a statements
> 
> ALTER TABLE ONLY public.b DROP CONSTRAINT b_fk_fkey;
> ALTER TABLE ONLY public.a DROP CONSTRAINT a_pkey;
> 
> DROP TABLE IF EXISTS public.b;
> DROP TABLE IF EXISTS public.a;
> 
> Actually there is no a conditional ALTER. These statements must be
> before DROPs, but then it can fails when these tables are missing.
> 
> So some form like ALTER TABLE IF EXISTS ... should be usefull

If ALTER TABLE is the only ALTER command you'd need to change this way, I think
your proposal is good.

nm (who has never used "pg_dump --clean")