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 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers