powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Постгрес & regexp
25 сообщений из 26, страница 1 из 2
Постгрес & regexp
    #32345974
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно в PostgreSQL написать процедуру обработки текста с html-тэгами и символами html-мнемоники для преобразования его в обычный текст? Замену тэгов с помощью регулярных выражений на пустую строку?
если можно то натолкните на мысль или подкиньте где почитать.
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32346056
Stellar.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написать ХП на C. Всего делов.

Использовать библиотеки, которые умеют парзить HTML.
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32346174
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что такое ХП на C
и что за библиотеки?
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32346280
Stellar.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ХП - Хранимая Процедура
C - язык программирования
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32346308
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что нужно чтобы написать процедуру на C? я имею в виду должен ли быть каким-то особым образом сконфигурирован Postgres, чтобы использовать C?
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32346423
Stellar.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никакой специальной переконфигурации не требуется.
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32350094
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
брр
тяжко
что-то в документации я не нахожу примеров процедур на С
подкиньте плиз простую процедурку

ну и еще наверное перед тем как ее использовать нужно будет сделать
CREATE FUNCTION
CREATE LANGUAGE
?
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32350354
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот вижу есть PL/PERL, PL/Python
... кстати,PL/Perl - для рег. ведь самое то.... но все - таки объясните плиз про С
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32350465
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ничего что я тут сам с собой разговариваю? :)
просто хочется докопаться до истины с вашей помощью.

В общем я понял что стандартный "Pre-installed languages are SQL, C, and internal"
Еще узнал что стандарт С/С++ регэкспы не поддерживает, нужно как советовалось ранее либы подключать... нафиг, поскольку с перлом я немного работал, лучше буду использовать pl/Perl

Теперь что я делаю:

Postgres ставился из RPM, поставил пакет posqtgresq-perl
теперь включаю поддержку plperl
Код: plaintext
1.
2.
3.
4.
bash- 2 . 04 $ createlang plperl test_inform
bash- 2 . 04 $ createlang plperl test_inform
ERROR:  stat failed on file '$libdir/plperl': No such file or directory
createlang: language installation failed


это что? переменная окружения $libdir не найдена? как ее явно указать? где она находится если ставилось из RPM?
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32350471
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
bash- [b]2 . 04 $ rpm -qa |grep postgresql[/b]
postgresql-jdbc- 7 . 1 . 3 -4bp. 2 
postgresql-server- 7 . 2 . 3 - 5 . 80 
postgresql-odbc- 7 . 2 . 3 -1PGDG
postgresql- 7 . 2 . 3 - 5 . 80 
postgresql-perl- 7 . 2 . 3 -1PGDG
postgresql-python- 7 . 1 . 3 -4bp. 2 
postgresql-libs- 7 . 2 . 3 - 5 . 80 

bash- [b]2 . 04 $ whereis plperl[/b]
plperl: 
bash- 2 . 04 $
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32350555
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мда... смотрю на пакеты и ужасаюсь
один пакет из 7.1, другой от 1-DevelopmentGroup, а главый пакет и либа ред -хатовской сборки для 8.0
щас постараюсь положение исправить и снова если траблы будут обращусь
пока не пинайте плиз
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32350574
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу скажу - pl/Perl для твоей задачи конечно куда предпочтительней С
(хотя люди сообщали уже о некоторых граблях впрочем PL-языки
все небезграбельны 8( )
Что касаемо установки - ну тут все довольно просто - нужно собрать либу
(plpgsql/plperl собственно и занимается интерпретацией твоих процедур)
создать функцию - посредник, опирающуюся на твою либу
и наконец создать язык коммандой CREATE LANGUAGE.
Последние две операции делает скрипт createlanguage.
А вот собранную либу возможно в твой любимый рпм и невключили.
Абыдно!
Что делать? Можешь подождать появления таких рпм. Можно просто взять скачать свеженькие исходники (полный комплект весит ~12MB )
и написать ./configure --with-perl && make && make install
Сия операция заняла у меня на P100 около двух часов.
Ну а прочитав чего пишут в ./configure --help можно добавить еще пару опций.
Наверное можно вообще порывшись надыбать отдельный снапшот этой либы.
Те все зависит от твоих возможностей и предпочтений. Сам я держусь где-то
посередине между радикалами которые собирают сервак из cvs (инет таки не резиновый) и конссерваторами которые окромя супернадежных бинарников или портов ничего знать не хотят.
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32350646
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сэнькс за ответ.
да, ну если есть пакет postgresql-perl-7.2.3, то не зря же он собран

почитал в маэл-листах, такая проблема была, решилась, она , само собой... обновлением версии.. ладно, будем обновляться чуть погодя...
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32350771
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а что вошло в этот пакет? Если после его установки createlang
ненаходит либы - очевидно проблема с путями. И решать все придется ручками
Если есть там есть plperl.so то положи ее в /usr/local/pgsql/lib/plperl.so
(или где там у тебя Постгрес держит либы)
Делаешь функцию-хендлер($libdir/perl можно заменить )
CREATE FUNCTION plperl_call_handler() RETURNS language_handler
AS '$libdir/plperl', 'plperl_call_handler'
LANGUAGE c;
Ну и создаем язык.
CREATE PROCEDURAL LANGUAGE plperlu HANDLER plperl_call_handler;
Вот IMHO и вся премудрость.
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32379858
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разрешите оживить тему.
Хочу Pl/Perl! :((
Сразу скажу - я прекрасно понимаю что моя проблема решается сборкой из исходников. Но админ сервера упорно ставит все из rpm
Так вот, поставили 7.4.

rpm -qa |grep postgresql

postgresql-devel-7.4-0.3PGDG
postgresql-libs-7.4-0.3PGDG
postgresql-server-7.4-0.3PGDG
postgresql-pl-7.4-0.3PGDG
postgresql-7.4-0.3PGDG


postgresql-pl-7.4-0.3PGDG - это я так понимаю pl/perl? в версии 7.2. был postgresql-perl
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32379863
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так вот, если это и есть postgresql-perl то plperl.so все равно не появился в системе.

подскажите как быть. Только из исходников ставить? не зря же ведь PGDG собирает этот пакет , значит должно быть и решение???
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32380073
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет rpm и Pl-языков ты не совсем прав. Если у тебя есть логин
postgres - то собрать plperl.so можно и дома - принести на работу и положить в домашнем каталоге постгреса готовый plperl.so
и спокойно сделать
CREATE LANGUAGE по схеме описанной в доке с версии 6.3.
Т.е ставить постгрес из сорцов в данном случае необязательно.
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32380966
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а из каких сырцов собирать? Версия имеет значение?
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32381396
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
откомпилировал , положил plperl.so в /var/lib/pgsql (домашняя)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
inform=# create function plperl_call_handler()
inform-# returns opaque as '/var/lib/pgsql/plperl.so'
inform-# language 'C';
ERROR:  Load of file /var/lib/pgsql/plperl.so failed: libperl.so: cannot open shared object file: No such file or directory
inform=# \q
bash- 2 . 04 $ ls -la /var/lib/pgsql
итого  84 
drwx ------    6 postgres postgres     4096 Янв 20 12:24 .
 
drwxr-xr-x    23  root     root          4096  Янв  15   21 : 48  ..
drwxrwxrwx     2  root     root          4096  Дек  30   13 : 27  backup
-rw -------    1 postgres postgres    15279 Янв 19 13:52 .bash_history
 
drwx ------    2 postgres postgres     4096 Ноя  8 12:23 .cedit
 
drwx ------    6 postgres postgres     4096 Янв 20 11:58 data
 
-rw-r --r--    1 root     root          159 Окт 15 20:10 initdb.i18n
 
-rwxr-xr-x     1  postgres postgres     34542  Янв  20   11 : 48  plperl.so
-rw -------    1 postgres postgres     1692 Янв 20 12:29 .psql_history
 
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32381442
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На серваке:

whereis perl
perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz

find / -name libperl.so
/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libperl.so


О чем это все говорит? по какому пути ищет libperl.so Postgres?
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32381669
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот, надыбал на postgresql.org ответ по такой же теме:


i think you need to have think you need to have Perl installed as a shared-library as well as a static executable. I don't think it defaults to this, so you'll either need to recompile, or more likely grab the appropriate RPM/apt-get your package.


ну и что это такое - Perl installed as a shared-library?
а уж тем более и как искать appropriate RPM?
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32381674
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
блин, ну вилы-то, а
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32382008
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите плиз что мне с перлом делать
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32382356
Shweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мдя... А почитать INSTALL ??? Кажется там все ясно написано.
/usr/ins/postgresql-7.4/INSTALL
* To build the server programming language PL/Perl you need a full Perl
installation, including the "libperl" library and the header files. Since
PL/Perl will be a shared library, the "libperl" library must be a shared
library also on most platforms. This appears to be the default in recent
COPYPerl versions, but it was not in earlier versions, and in general it is
the choice of whomever installed Perl at your site.
If you don't have the shared library but you need one, a message like
this will appear during the build to point out this fact:

*** Cannot build PL/Perl because libperl is not a shared library.
*** You might have to rebuild your Perl installation. Refer to
*** the documentation for details.

(If you don't follow the on-screen output you will merely notice that the
PL/Perl library object, "plperl.so" or similar, will not be installed.)
If you see this, you will have to rebuild and install Perl manually to be
able to build PL/Perl. During the configuration process for Perl, request
a shared library.
...
Рейтинг: 0 / 0
Постгрес & regexp
    #32382572
Zimbabwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ниче не понял
есть же libperl.so в системе
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Постгрес & regexp
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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