Problem with pg_upgrade (8.4 -> 9.0) due to ALTER DATABASE SET ROLE

From: Florian Pflug <fgp(at)phlo(dot)org>
To: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Problem with pg_upgrade (8.4 -> 9.0) due to ALTER DATABASE SET ROLE
Date: 2010-12-12 01:30:48
Message-ID: A42848D9-D6DC-4C45-A6F7-27D363571CF0@phlo.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi

I've just ran into a problem while upgrading from 8.4 to 9.0.

pg_upgrade aborted during the step "Adding support functions to new cluster" with "ERROR: permission denied for language c" error. Unfortunately, the log didn't include the name of the database where the error occurred, so it took me a while to figure out that the culprit was a "ALTER DATABASE SET ROLE = <non-superuser>" I had done on one of my databases, which effectively prevented pg_upgrade from connection with superuser privileges.

While one could argue that this behaviour is perfectly consistent, I believe most users will expect pg_upgrade (and to a lesser extent also pg_dump and pg_restore) to be unaffected by such settings.

Should we provide a way (for super-users only, of course) to skip per-database/per-role settings when connecting?

best regards
Florian Pflug

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2010-12-12 01:56:40 Re: create tablespace fails silently, or succeeds improperly
Previous Message David E. Wheeler 2010-12-12 01:01:05 Re: function attributes