plperlu reload external modules
От | sanya-spb@mail.ru |
---|---|
Тема | plperlu reload external modules |
Дата | |
Msg-id | E1EpP69-000Iqd-00.sanya-spb-mail-ru@f44.mail.ru обсуждение исходный текст |
Список | pgsql-ru-general |
Доброго время суток Столкнулся со след. недопониманием: имеется вот такая, к примеру, процедурка: CREATE OR REPLACE FUNCTION foto.utest(text) RETURNS text AS $BODY$ use strict; use warnings; use lib '/usr/.../libs'; use lib_foto2; return lib_foto2::ptest2(shift); END; $BODY$ LANGUAGE 'plperlu' VOLATILE ========================================== также, соответственно, в нужном месте модуль: package lib_foto2; require Exporter; use strict; use warnings; our @ISA = qw(Exporter); our @EXPORT = qw(ptest2); sub ptest2 { my $result = shift; return '112'.$result; } 1; ========================================== все работает: sanya=# select * from foto.utest('nechto1'); utest ------------ 112nechto1 (1 запись) ========================================== теперь если в модуле сделать изменения, например заменить строку return '112'.$result; на return '221'.$result; то будет таже картинка: sanya=# select * from foto.utest('nechto1'); utest ------------ 112nechto1 (1 запись) до тех пор, пока (видимо) заново не подключиться к базе, только в новом подключении получим: sanya=# select * from foto.utest('nechto1'); utest ------------ 221nechto1 (1 запись) ========================================== ========================================== отсюда вопросы... где толково написано что и как происходит при таком раскладе? и что там вообще происходит? и на каком этапе компилируется внешний мой модуль (при запросе или при подключении)? как заставить перекомпилироваться все это хозяйство не закрывая подключения к базе?? Заранее спасибо за любую информацию, с уважением
В списке pgsql-ru-general по дате отправления: