From: | Phil Sorber <phil(at)omniti(dot)com> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | patch: move dumpUserConfig call in dumpRoles function of pg_dumpall.c |
Date: | 2011-07-27 19:21:42 |
Message-ID: | CADAkt-jCnns74cq1-78OejeU06zrJQHNvkJwSy9Bn1cz3SqhGA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hello,
The attached patch changes the location of the dumpUserConfig call in
the dumpRoles function of pg_dumpall.
This is related to this thread:
http://archives.postgresql.org/pgsql-hackers/2011-02/msg02359.php
Currently if you use 'ALTER ROLE rolename SET ROLE', pg_dumpall will
dump an 'ALTER ROLE' out right after the 'CREATE ROLE' statement.
Sometimes this will cause a conflict when a dependent role is not yet
created:
--
-- Roles
--
CREATE ROLE a;
ALTER ROLE a WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN
NOREPLICATION;
ALTER ROLE a SET role TO 'b';
CREATE ROLE b;
ALTER ROLE b WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN
NOREPLICATION;
CREATE ROLE postgres;
ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN
NOREPLICATION;
As you can see, role a is set to role b before role b is created.
This patch moves the call to dumpUserConfig to after the loop where
all the roles are created. This produces output like the this:
--
-- Roles
--
CREATE ROLE a;
ALTER ROLE a WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN
NOREPLICATION;
CREATE ROLE b;
ALTER ROLE b WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN
NOREPLICATION;
CREATE ROLE postgres;
ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN
NOREPLICATION;
ALTER ROLE a SET role TO 'b';
Now this dump will succeed upon restore.
This passed all regression tests.
Thanks.
Attachment | Content-Type | Size |
---|---|---|
dump_user_config_last.patch | text/x-patch | 717 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2011-07-27 19:43:35 | Re: PQescapeByteaConn - returns wrong string for PG9.1 Beta3 |
Previous Message | Robert Haas | 2011-07-27 18:29:10 | Re: sinval synchronization considered harmful |