Alexey Klyukin wrote:
>
> I've noticed that the patch doesn't install current_call_data before calling plperl_call_perl_func, although it saves
andrestores its previous value. This breaks spi code, which relies on current_call_data->prodesc, i.e.:
>
> postgres=# DO $$ $result = spi_exec_query("select 1"); $$ LANGUAGE plperl;
>
Yeah, good catch. We need to lift some stuff out of
plperl_func_handler(), because this code bypasses that. Not only setting
the call_data but also connectin g to the SPI manager and maybe one or
two other things.
> Also, a call to to plperl_call_perl_func should be cast to void to avoid a possible compiler warning (although It
doesn'temit one on my system):
>
> (void) plperl_call_perl_func(&desc, &fake_fcinfo);
>
>
Right.
cheers
andrew