On Wed, Oct 19, 2011 at 5:13 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> "David E. Wheeler" <david@kineticode.com> writes:
>> We've just found an issue with pg_dumpall in 9.1.1 where a dump starts with lines like these:
>
>> ALTER ROLE dude WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN PASSWORD
'md5bdd7f8e73a214981b1519212b02a5530'VALID UNTIL 'infinity';
>> ALTER ROLE dude SET default_tablespace TO 'users';
>
> I'm beginning to think that the correct solution to these problems is to
> greatly restrict what you can set in ALTER ROLE/DATABASE SET. Or at
> least to document that if you use it, you get to keep both pieces after
> you break pg_dump.
This is another instance of the general principle that we need to
create all the objects first, and then set their properties. I
believe you came up with one counterexample where we needed to set the
GUC first in order to be able to create the object, but ISTM most of
them are going the other way.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company