Thread: ToDo: conditional ALTER TABLE

ToDo: conditional ALTER TABLE

From
Pavel Stehule
Date:
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

From
Noah Misch
Date:
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")