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 по дате отправления:

Предыдущее
От: "Alexander M. Pravking"
Дата:
Сообщение: Re: некорр
Следующее
От: Serik Akhmetov
Дата:
Сообщение: определение размера массива