Weird pg_dumpall bug?
I did a dump of a 7.4.11 database using the 8.1.2 pg_dumpall. I got
this at the top of the dump:
...
...
CREATE ROLE support;
ALTER ROLE support WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB
LOGIN PASSWORD 'md5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
...
...
CREATE ROLE support;
ALTER ROLE support WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN;
...
...
It dumped the "support" role twice!
Any ideas?
Hmmmm...actually. It's because I have a user called 'support' and a
group called 'support'.
Seems like it needs a fix...
Chris
* Christopher Kings-Lynne (chriskl@familyhealth.com.au) wrote:
Hmmmm...actually. It's because I have a user called 'support' and a
group called 'support'.Seems like it needs a fix...
Have you got a suggestion on just how to fix it...? Debian's
pg_upgradecluster bails out with an error when it discovers this
situation but I don't think it'd be sensible for pg_dump to do that...
Thanks,
Stephen
On Tue, 2006-01-24 at 09:44 -0500, Stephen Frost wrote:
* Christopher Kings-Lynne (chriskl@familyhealth.com.au) wrote:
Hmmmm...actually. It's because I have a user called 'support' and a
group called 'support'.Seems like it needs a fix...
Have you got a suggestion on just how to fix it...? Debian's
pg_upgradecluster bails out with an error when it discovers this
situation but I don't think it'd be sensible for pg_dump to do that...
How about an option to map groups whose names conflict with user names
using a prefix mechanism?
e.g. --map-conflicting-groups=gr_
Then in Christopher's example his support group would become the role
gr_support.
Just a thought.
cheers
andrew
Christopher Kings-Lynne <chriskl@familyhealth.com.au> writes:
Hmmmm...actually. It's because I have a user called 'support' and a
group called 'support'.
This was discussed already. It's a corner case we didn't really think
about while designing roles. It's possible to support this: the group
and the user will now really be the same entity, ie a role that has both
its own login privileges and members. However pg_dump isn't doing the
right things to make the old situation morph into the new one. Want to
write a patch?
regards, tom lane
On Tue, 2006-01-24 at 10:05 -0500, Tom Lane wrote:
Christopher Kings-Lynne <chriskl@familyhealth.com.au> writes:
Hmmmm...actually. It's because I have a user called 'support' and a
group called 'support'.It's possible to support this: the group
and the user will now really be the same entity, ie a role that has both
its own login privileges and members.
Assuming you actually want to unify the two objects. That might well be
the common case, but will it always be true?
cheers
andrew
Andrew Dunstan <andrew@dunslane.net> writes:
On Tue, 2006-01-24 at 10:05 -0500, Tom Lane wrote:
It's possible to support this: the group
and the user will now really be the same entity, ie a role that has both
its own login privileges and members.
Assuming you actually want to unify the two objects. That might well be
the common case, but will it always be true?
As compared to what? I didn't like the notion of auto-renaming one of
the roles, if that's what you're suggesting. That seems well outside
pg_dump's charter.
regards, tom lane
Am Dienstag, 24. Januar 2006 15:44 schrieb Stephen Frost:
Have you got a suggestion on just how to fix it...? Debian's
pg_upgradecluster bails out with an error when it discovers this
situation but I don't think it'd be sensible for pg_dump to do that...
Why not? If the backup cannot be made in a way such that the semantics of the
restored database are the same, it shouldn't do it.
--
Peter Eisentraut
http://developer.postgresql.org/~petere/
Peter Eisentraut <peter_e@gmx.net> writes:
Am Dienstag, 24. Januar 2006 15:44 schrieb Stephen Frost:
Have you got a suggestion on just how to fix it...? Debian's
pg_upgradecluster bails out with an error when it discovers this
situation but I don't think it'd be sensible for pg_dump to do that...
Why not? If the backup cannot be made in a way such that the
semantics of the restored database are the same, it shouldn't do it.
If you take a hard line on that position, then it's not necessary for
pg_dump to support cross-version operation at all, because no major
PG release is ever 100.0% compatible with the previous one.
What is actually required of pg_dump is that it produce the closest
approximation it can get to the old behavior within the context of the
new version's semantics. I can easily cite half a dozen examples of
cases where we've applied this logic in previous versions. I do not
see a reason to treat this case differently. The difference between
a single role acting as both user and group and the prior behavior of
separate objects is certainly well within the "fuzz factor" that we've
allowed pg_dump to have in the past.
regards, tom lane
How about an option to map groups whose names conflict with user names
using a prefix mechanism?e.g. --map-conflicting-groups=gr_
Then in Christopher's example his support group would become the role
gr_support.
No bad, have to change some application code then as well...
Chris
On Tue, Jan 24, 2006 at 10:42:17AM -0500, Tom Lane wrote:
Andrew Dunstan <andrew@dunslane.net> writes:
On Tue, 2006-01-24 at 10:05 -0500, Tom Lane wrote:
It's possible to support this: the group
and the user will now really be the same entity, ie a role that has both
its own login privileges and members.Assuming you actually want to unify the two objects. That might well be
the common case, but will it always be true?As compared to what? I didn't like the notion of auto-renaming one of
the roles, if that's what you're suggesting. That seems well outside
pg_dump's charter.
If you want something renamed, you can handle that case by just renaming
it before you do the dump, but it would be nice if pg_dump would raise a
nice big warning when this condition exists so you're aware of it. Or
maybe even refuse to run unless you supply some command line option to
over-ride.
I don't think we should morph the two together by default either,
because that's very possibly not what the user originally intended.
--
Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com
Pervasive Software http://pervasive.com work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461