pg_dumpall --clean is completely broken

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)postgreSQL(dot)org
Subject: pg_dumpall --clean is completely broken
Date: 2009-04-11 14:25:53
Message-ID: 17165.1239459953@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

A thread over in -admin has made me realize the truth of $SUBJECT.
With --clean, pg_dumpall does indeed emit a DROP command for each
role, tablespace, or database ... just before recreating it. This
takes no account of dependencies and so the role and tablespace
drops are pretty much guaranteed to fail due to databases still
depending on them.

I'm not sure if we need any real dependency analysis. It seems
like it would be sufficient to issue the drops in a separate
pass:
- drop all the databases
- drop all the tablespaces
- drop all the roles
- go on with creation

The roles might still have references to each other in step 3,
but the DROP ROLE docs claim that's okay (I haven't tested).

Comments?

regards, tom lane

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2009-04-11 14:32:14 Re: Closing some 8.4 open items
Previous Message Tom Lane 2009-04-11 14:07:51 Re: Allow COMMENT ON to accept an expression rather than just a string