Skip site navigation (1) Skip section navigation (2)

Re: Plperl trigger variables no longer global

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Alex Hunsaker <badalex(at)gmail(dot)com>
Cc: Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Greg Sabino Mullane <greg(at)endpoint(dot)com>, pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: Plperl trigger variables no longer global
Date: 2011-05-15 20:02:10
Message-ID: BANLkTimn9KosWHviYtbquXVivCz18QNEEQ@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-bugs
On Thu, May 5, 2011 at 12:14 PM, Alex Hunsaker <badalex(at)gmail(dot)com> wrote:
> On Thu, May 5, 2011 at 06:51, Alvaro Herrera <alvherre(at)commandprompt(dot)com> wrote:
>> Excerpts from Alex Hunsaker's message of mié may 04 23:53:34 -0300 2011:
>>
>>> After playing with it a bit more I see 2 clear options:
>>> 1) make $_TD global like %_SHARED. This should not cause any problems
>>> as we make $_TD private via local() before each trigger call. Also pre
>>> 9.1 non trigger functions could still access and check the definedness
>>> of $_TD so if someone was relying on that (for whatever unknown
>>> reason) that will work again.
>>
>> This is strange.  Are you saying that there's no decent way to make a
>> variable global in C code?
>
> Im sure we could... I don't see any reason to do it in C. (performance
> or otherwise)
>
> In other news I found another bug with this-- it was trying to
> local($_TD) by using SAVESPTR() when it seems it really should be
> using save_item(). Currently its not really localizing $_TD, which at
> the very least means recursive triggers might modify the callers $_TD.
> Ugh.
>
> Fixed in the attached plus added regression tests for both issues (use
> strict; && Global symbol "$_TD" requires explicit package name, test
> recursive trigger calls). Although Ill admit, given the point we are
> in the release I could see a revert also being justified.
>
> Greg, big thanks for testing! keep it up! :)

Do we need to apply this patch?

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

pgsql-bugs by date

Next:From: Tom LaneDate: 2011-05-15 21:02:58
Subject: Re: BUG #6021: There is no difference between default and empty access privileges with \dp
Previous:From: Robert HaasDate: 2011-05-15 20:01:16
Subject: Re: BUG #6021: There is no difference between default and empty access privileges with \dp

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group