Re: How to made available for a database an already installed language on another database ?

Поиск
Список
Период
Сортировка
От Richard Bayet
Тема Re: How to made available for a database an already installed language on another database ?
Дата
Msg-id 3A6586AD.4BEA606@enseirb.fr
обсуждение исходный текст
Ответ на How to made available for a database an already installed language on another database ?  (Richard Bayet <bayet@enseirb.fr>)
Ответы Re: How to made available for a database an already installed language on another database ?
Список pgsql-admin

Tom Lane a écrit :

> Richard Bayet <bayet@enseirb.fr> writes:
> > And the problem is that they can't add any language support with
> > createlang.
> > Anytime they tried (for example '$>createlang plpgsql theirdb'), the
> > program seemed to "freeze" on authentification ...
> > They got a :
> > "$> createlang plpgsql theirdb
> > Password: THEIRPASS Password: THEIRPASS Password: THEIRPASS"
>
> They just needed to be a little more patient ;-)  IIRC, the createlang
> script invokes psql four or five times, so if you are using password
> authentication you're going to have to enter the password four or five
> times.
>
> I agree, this isn't particularly user-friendly ... but then, password
> auth is inherently not user-friendly for something you invoke
> frequently.  You might want to look at the other auth methods.
>
>                         regards, tom lane

Thanks a lot Tom, that do solves the first part of my problem...
Has anyone an idea about the second part, that is, one the
authentification passed, this error message:
"$>createlang plpgsql theirdb
createlang: A function named 'plpgsql_call_handler' already exists.
Installation aborted." ?
Actually, here's the situation on the base (results from "select * from
pg_language")
For template1:
 lanname  | lanispl     | lanpltrusted    | lanplcallfoid      |
lancompiler
----------+---------+--------------+---------------+-------------
 internal    | f             | f                    |
0          | n/a
 C            | f            | f                     |
0          | /bin/cc
 sql          | f            | f                     |
0         | postgres

For theirdb: (the "user" db)
 lanname  | lanispl      | lanpltrusted    | lanplcallfoid     |
lancompiler
----------+---------+--------------+---------------+-------------
 internal    | f             | f                    |
0         | n/a
 C            | f             | f                    |
0         | /bin/cc
 sql          | f             | f                    |
0          | postgres

For myowndb: (the very first db i created an onto which i installed
plpgsql without any trouble)
 lanname   | lanispl    | lanpltrusted     | lanplcallfoid     |
lancompiler
----------+---------+--------------+---------------+-------------
 internal    | f             | f                    |
0         | n/a
 C            | f             | f                    |
0         | /bin/cc
 sql           | f             | f                    |
0         | postgres
 plpgsql    | t             | t                    |         56992     |
PL/pgSQL

Is there any way to "reference" (inherit ?) the plpgsql language installed
for myowndb, and thus making it accessible for the other databases ?
Isn't there a inherit procedure to make any database inherit template1's
installed language ?
(I would have to drop plpgsql from myowndb and reinstall it for template1,
but there shouldn't be a problem as long as I know the right procedure)
Any idea to do this, even with very non user-friendly SQL queries ?




В списке pgsql-admin по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: How to made available for a database an already installed language on another database ?
Следующее
От: Tom Lane
Дата:
Сообщение: Re: How to made available for a database an already installed language on another database ?