On 2/1/13 3:21 PM, Tom Lane wrote:
> Peter Eisentraut <pete...@gmx.net> writes:
>> create extension hstore with schema pg_catalog;
>> alter extension hstore set schema public;
>> ERROR:  0A000: cannot remove dependency on schema pg_catalog because it
>> is a system object
>> drop extension hstore;  -- works
> 
>> I've seen this happen cleaning up after mistakenly misplaced extensions.
>>  I suspect this is a bug.
> 
> It's not a bug, it's an intentional implementation restriction that
> would be quite expensive to remove.
> 
> The reason it fails is that we don't record dependencies on system
> objects, and therefore there's no way for ALTER EXTENSION to modify
> those dependencies when trying to do SET SCHEMA.  That is, since
> pg_catalog is pinned, we don't have any explicit record of which
> objects in the extension would've needed dependencies on it, thus
> no way to manufacture the dependencies on schema public that would
> need to exist after the SET SCHEMA.

Fair enough.  It's not that important.

> I wonder whether it'd not be a better idea to forbid specifying
> pg_catalog as the target schema for relocatable extensions.

But that would be important, I think.



-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to