Re: why does plperl cache functions using just a bool for is_trigger

Jan Urbański <wulczer@wulczer.org>

From: Jan Urbański <wulczer@wulczer.org>
To: Andrew Dunstan <andrew@dunslane.net>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Postgres - Hackers <pgsql-hackers@postgresql.org>
Date: 2010-10-31T14:44:41Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Remove unnecessary use of trigger flag to hash plperl functions

Attachments

On 25/10/10 03:59, Andrew Dunstan wrote:
> 
> 
> On 10/24/2010 09:34 PM, Tom Lane wrote:
>>
>>> For both trigger and non-trigger functions, we compile this ahead of the
>>> user-set function code:
>>>      our $_TD; local $_TD=shift;
>>> Non-trigger functions get passed "undef" to correspond to this invisible
>>> argument, while trigger functions get passed the hashref that the
>>> trigger calling code has set up.
>> Seems like we don't need it then.  You going to get rid of it?
> 
> Ok, will do.

Seems that this circumverts some output conversion error checking, since
adding the attached to the regression suite results in a segfault during
the plperl installcheck.

Reverting 2d01ec0708d571eef926f3f5795aa73759df5d9a fixes it. Noticed
while fooling around with plpython and hitting a similar error (since
plpython does have a regression test for trigger functions being called
directly).

Cheers,
Jan