Re: plperl and inline functions -- first draft
Andrew Dunstan <andrew@dunslane.net>
From: Andrew Dunstan <andrew@dunslane.net>
To: Alexey Klyukin <alexk@waki.ru>
Cc: Joshua Tolley <eggyknap@gmail.com>, pgsql-hackers@postgresql.org
Date: 2009-11-17T23:05:19Z
Lists: pgsql-hackers
Alexey Klyukin wrote:
>
> I've noticed that the patch doesn't install current_call_data before calling plperl_call_perl_func, although it saves and restores 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't emit one on my system):
>
> (void) plperl_call_perl_func(&desc, &fake_fcinfo);
>
>
Right.
cheers
andrew