plperlu reload external modules - Mailing list pgsql-ru-general

From sanya-spb@mail.ru
Subject plperlu reload external modules
Date
Msg-id E1EpP69-000Iqd-00.sanya-spb-mail-ru@f44.mail.ru
Whole thread Raw
List 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 by date:

Previous
From: "Alexander M. Pravking"
Date:
Subject: Re: некорр
Next
From: Serik Akhmetov
Date:
Subject: определение размера массива