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

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

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

В общем я понял что стандартный "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
11.12.2003, 12:18
    #32350471
Zimbabwe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
Код: 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
11.12.2003, 13:03
    #32350555
Zimbabwe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
мда... смотрю на пакеты и ужасаюсь
один пакет из 7.1, другой от 1-DevelopmentGroup, а главый пакет и либа ред -хатовской сборки для 8.0
щас постараюсь положение исправить и снова если траблы будут обращусь
пока не пинайте плиз
...
Рейтинг: 0 / 0
11.12.2003, 13:10
    #32350574
Shweik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
Сразу скажу - pl/Perl для твоей задачи конечно куда предпочтительней С
(хотя люди сообщали уже о некоторых граблях впрочем PL-языки
все небезграбельны 8( )
Что касаемо установки - ну тут все довольно просто - нужно собрать либу
(plpgsql/plperl собственно и занимается интерпретацией твоих процедур)
создать функцию - посредник, опирающуюся на твою либу
и наконец создать язык коммандой CREATE LANGUAGE.
Последние две операции делает скрипт createlanguage.
А вот собранную либу возможно в твой любимый рпм и невключили.
Абыдно!
Что делать? Можешь подождать появления таких рпм. Можно просто взять скачать свеженькие исходники (полный комплект весит ~12MB )
и написать ./configure --with-perl && make && make install
Сия операция заняла у меня на P100 около двух часов.
Ну а прочитав чего пишут в ./configure --help можно добавить еще пару опций.
Наверное можно вообще порывшись надыбать отдельный снапшот этой либы.
Те все зависит от твоих возможностей и предпочтений. Сам я держусь где-то
посередине между радикалами которые собирают сервак из cvs (инет таки не резиновый) и конссерваторами которые окромя супернадежных бинарников или портов ничего знать не хотят.
...
Рейтинг: 0 / 0
11.12.2003, 13:39
    #32350646
Zimbabwe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
сэнькс за ответ.
да, ну если есть пакет postgresql-perl-7.2.3, то не зря же он собран

почитал в маэл-листах, такая проблема была, решилась, она , само собой... обновлением версии.. ладно, будем обновляться чуть погодя...
...
Рейтинг: 0 / 0
11.12.2003, 14:33
    #32350771
Shweik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
Ну а что вошло в этот пакет? Если после его установки 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
19.01.2004, 10:55
    #32379858
Zimbabwe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
Разрешите оживить тему.
Хочу 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
19.01.2004, 10:59
    #32379863
Zimbabwe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
так вот, если это и есть postgresql-perl то plperl.so все равно не появился в системе.

подскажите как быть. Только из исходников ставить? не зря же ведь PGDG собирает этот пакет , значит должно быть и решение???
...
Рейтинг: 0 / 0
19.01.2004, 12:31
    #32380073
Shweik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
Насчет rpm и Pl-языков ты не совсем прав. Если у тебя есть логин
postgres - то собрать plperl.so можно и дома - принести на работу и положить в домашнем каталоге постгреса готовый plperl.so
и спокойно сделать
CREATE LANGUAGE по схеме описанной в доке с версии 6.3.
Т.е ставить постгрес из сорцов в данном случае необязательно.
...
Рейтинг: 0 / 0
19.01.2004, 20:09
    #32380966
Zimbabwe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
а из каких сырцов собирать? Версия имеет значение?
...
Рейтинг: 0 / 0
20.01.2004, 11:19
    #32381396
Zimbabwe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
откомпилировал , положил 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
20.01.2004, 11:44
    #32381442
Zimbabwe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
На серваке:

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
20.01.2004, 13:51
    #32381669
Zimbabwe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
вот, надыбал на 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
20.01.2004, 13:55
    #32381674
Zimbabwe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
блин, ну вилы-то, а
...
Рейтинг: 0 / 0
20.01.2004, 16:40
    #32382008
Zimbabwe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
подскажите плиз что мне с перлом делать
...
Рейтинг: 0 / 0
20.01.2004, 20:45
    #32382356
Shweik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
Мдя... А почитать 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
21.01.2004, 10:01
    #32382572
Zimbabwe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Постгрес & regexp
ниче не понял
есть же libperl.so в системе
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Постгрес & regexp / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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