extension dependencies with 'requires'
Greetings,
I'm trying to author an extension and running into troubles with
dependencies. The extension depends on the uuid-ossp, pgcrypto and
postgres_fdw extensions, but I would like the dependencies to be installed
in the public schema, though the extension itself lives in its own schema.
Is there a way to use CREATE EXTENSION ... CASCADE and specify in the
control file which schema the dependencies are installed in? How does the
extension know where to install its dependencies?
Thanks,
Eric
--
Eric Hanson
CEO, Aquameta Labs
503-929-1073
www.aquameta.com
--
-- Eric Hanson CEO, Aquameta 503-929-1073
Eric Hanson <eric@aquameta.com> writes:
I'm trying to author an extension and running into troubles with
dependencies. The extension depends on the uuid-ossp, pgcrypto and
postgres_fdw extensions, but I would like the dependencies to be installed
in the public schema, though the extension itself lives in its own schema.
Is there a way to use CREATE EXTENSION ... CASCADE and specify in the
control file which schema the dependencies are installed in?
Afraid not. CASCADE will pass down the same target-schema option to the
child CREATE EXTENSION operations that appeared in the initial command.
regards, tom lane
Ok thanks.
FWIW, this pretty profoundly limits what you can do with dependencies in
extensions that define their own schema: When two extensions that both
define their own schema need to share the same dependency, sounds like that
is impossible, because the dependency extensions can't be installed in two
schemas at the same time. Which ever extension is installed first will
create the dep in the target schema, and then the second extension will try
to install the dep and fail due to it being already installed.
Thanks,
Eric
--
Eric Hanson
CEO, Aquameta Labs
503-929-1073
www.aquameta.com
On Tue, May 1, 2018 at 11:00 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Show quoted text
Eric Hanson <eric@aquameta.com> writes:
I'm trying to author an extension and running into troubles with
dependencies. The extension depends on the uuid-ossp, pgcrypto and
postgres_fdw extensions, but I would like the dependencies to beinstalled
in the public schema, though the extension itself lives in its own
schema.
Is there a way to use CREATE EXTENSION ... CASCADE and specify in the
control file which schema the dependencies are installed in?Afraid not. CASCADE will pass down the same target-schema option to the
child CREATE EXTENSION operations that appeared in the initial command.regards, tom lane