plperl - make $_TD global
От | Andrew Dunstan |
---|---|
Тема | plperl - make $_TD global |
Дата | |
Msg-id | 447229B5.3090009@dunslane.net обсуждение исходный текст |
Ответы |
Re: plperl - make $_TD global
|
Список | pgsql-patches |
The attached tiny patch will fix the problem Greg Sabino Mullane had with a shared lexical $_TD, by making it a global and just pushing a local value in the trigger function. I don't think what we had is strictly a bug, so I don't thinbk we need top backpatch this. It will, however, require use of perl 5.6 at a minimum, because that's when the "our" function came in. Since that was over 6 years ago, I think this is not unreasonable. If there are squawks, I have another slightly longer and slightly more old-fashioned way to do the same thing, but this is the best modern way. I don't think a docs change is needed. If there's no objection I will apply thin in a few days. cheers andrew Index: src/pl/plperl/plperl.c =================================================================== RCS file: /cvsroot/pgsql/src/pl/plperl/plperl.c,v retrieving revision 1.108 diff -c -r1.108 plperl.c *** src/pl/plperl/plperl.c 4 Apr 2006 19:35:37 -0000 1.108 --- src/pl/plperl/plperl.c 22 May 2006 20:46:37 -0000 *************** *** 765,771 **** ENTER; SAVETMPS; PUSHMARK(SP); ! XPUSHs(sv_2mortal(newSVpv("my $_TD=$_[0]; shift;", 0))); XPUSHs(sv_2mortal(newSVpv(s, 0))); PUTBACK; --- 765,771 ---- ENTER; SAVETMPS; PUSHMARK(SP); ! XPUSHs(sv_2mortal(newSVpv("our $_TD; local $_TD=$_[0]; shift;", 0))); XPUSHs(sv_2mortal(newSVpv(s, 0))); PUTBACK;
В списке pgsql-patches по дате отправления: