Обсуждение: Multiple Schema and extensions

Поиск
Список
Период
Сортировка

Multiple Schema and extensions

От
Alan Nilsson
Дата:
Is it the case that extensions can be added to only one schema?  If so, what is the recommended practice for accessing
afunction from an extension in multiple schemas? 

Is it *ok* to load the extension in the pg_catalog schema so functions can be accessed by unqualified names?  Is it
*better*to have a separate schema for functions and use qualified names to access?  What is the general accepted
practice?

As a side note:
ALTER EXTENSION foo ADD SCHEMA bar
What the heck does this do?  AFICS, it has no effect on the visibility of an extension function in the *added* schema.

thanks
alan



Re: Multiple Schema and extensions

От
"Albe Laurenz"
Дата:
Alan Nilsson wrote:
> Is it the case that extensions can be added to only one schema?  If
so, what is the recommended
> practice for accessing a function from an extension in multiple
schemas?

Yes, a (relocatable) extension can belong to only one schema.
There are two ways to access the functions:
1) Use qualified names.
2) Set search_path to contain the schema.

> Is it *ok* to load the extension in the pg_catalog schema so functions
can be accessed by unqualified
> names?  Is it *better* to have a separate schema for functions and use
qualified names to access?
> What is the general accepted practice?

No, that is not ok.
pg_catalog is only for system objects.
You should use schema "public" - that is in search_path by
default, and everybody can use it.

> As a side note:
> ALTER EXTENSION foo ADD SCHEMA bar
> What the heck does this do?  AFICS, it has no effect on the visibility
of an extension function in the
> *added* schema.

This makes "bar" belong to extension "foo", not the other way around.
The effect is that
a) "bar" will not be dumped by pg_dump
b) "DROP EXTENSION foo" will drop schema "bar"

Yours,
Laurenz Albe