powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
13 сообщений из 13, страница 1 из 1
Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
    #39806579
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь использовать команду
CREATE EXTENSION IF NOT EXISTS plperl;
но, при присутствии уже языка, выдает не нотис а ошибку, что такой язык уже есть
а вот если делать, например,
CREATE EXTENSION IF NOT EXISTS plperlu;
то все работает правильно.

Обошел конструкцией CREATE or replace language plperl; но вопрос почему через EXTENSION IF NOT EXISTS не работает.
...
Рейтинг: 0 / 0
Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
    #39806665
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kK,

Да вроде нормально работает:
Код: sql
1.
2.
3.
4.
5.
=# CREATE EXTENSION IF NOT EXISTS plperl;
CREATE EXTENSION
=# CREATE EXTENSION IF NOT EXISTS plperl;
NOTICE:  extension "plperl" already exists, skipping
CREATE EXTENSION
...
Рейтинг: 0 / 0
Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
    #39806673
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Лузанов,

Код: sql
1.
2.
3.
4.
5.
6.
7.
qqq=# CREATE EXTENSION IF NOT EXISTS plperl;
ERROR:  language "plperl" already exists
qqq=# select version();
                                                 version
---------------------------------------------------------------------------------------------------------
 PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 строка)
...
Рейтинг: 0 / 0
Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
    #39806685
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kK,

дык вы язык ставили не как екстеншн, а руками как язык. потому при попытке поставить поверх екстеншн ругается на язык. можно в sql файл экстеншена залезть и поправить руками на , думается


как-то кусочно тянутый дблинк по функциям пришлось заменять. давно было. бубнов не помню. но часто бывает на старых базах, куда не екстеншенами а из контрибов руками "пакеты" ставили.
...
Рейтинг: 0 / 0
Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
    #39806699
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kK,

Как понимаю у вас язык plperl есть, а расширения plperl нет (проверьте \dx).

Можно удалить язык, если функций на нем еще не наделали: DROP LANGUAGE plperl;
Ну а дальше CREATE EXTENSION IF NOT EXISTS plperl;
...
Рейтинг: 0 / 0
Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
    #39806702
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Лузанов,

А можно пояснить, а это не одно и то же?

Я это расширение ставлю, чтобы у меня был язык и я на нем мог писать процедуры. В чем тогда разница?
...
Рейтинг: 0 / 0
Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
    #39806713
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kK,

create language и create extension - разные вещи.

create extension, в частности, может включать в себя create language - как это происходит с plperl . Но не наоборот.

Если вам нужно расширение - то вам нужен create extension и только.
...
Рейтинг: 0 / 0
Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
    #39806714
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kK,

В состав расширений могут входить самые разные объекты: функции, типы данных, представления и пр. В том числе и языки.
Расширение plperl предназначено ровно для установки языка plperl. А он у вас уже есть, отсюда и ошибка.
...
Рейтинг: 0 / 0
Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
    #39806719
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Лузанов, Melkij,

Ну то есть касательно языка plperl, мне достаточно и через create language, или все же правильней через create extension его переустановить?
...
Рейтинг: 0 / 0
Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
    #39806725
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kK,

Поскольку официально plperl устанавливается через расширение и с учетом комментария по приведенной выше ссылке я бы выбрал установку языка через расширение.
...
Рейтинг: 0 / 0
Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
    #39806726
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kK,

можете оставить как есть.
можете влезть в указанный выше г-м мелким файл контриба и вставить в него (один раз)
Код: sql
1.
CREATE [ OR REPLACE ] [ PROCEDURAL ] LANGUAGE 


после чего запустить создание екстеншена заново.
-- для приведения языка к "фром--екстеншн--пакед"--состоянию.
--если версии перла совпадают.
...
Рейтинг: 0 / 0
Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
    #39806729
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо!
...
Рейтинг: 0 / 0
Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
    #39806732
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
create extension plperl from unpackaged;


должен собрать штатно. Версия plperl всего одна и есть.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Непонятки с CREATE EXTENSION IF NOT EXISTS plperl;
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]