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