On Thu, Feb 11, 2010 at 10:47 PM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Thu, Feb 11, 2010 at 3:12 PM, Alexey Klyukin <alexk@commandprompt.com> wrote:
>>> I think this might be the same problem previously discussed here:
>>> http://archives.postgresql.org/pgsql-bugs/2010-01/msg00224.php
>>
>> Seems to be the same problem. Backtrace I'm getting on 8.4 is almost identical to the one at the end of this post:
>> http://archives.postgresql.org/pgsql-bugs/2010-01/msg00144.php
>>
>>> Does that patch fix it?
>> The problem doesn't appear on 9.0 alpha with that patch committed.
>
> It looks like the plperl.c change applies cleanly back to 8.2, though
> I haven't yet verified that it actually fixes the problem on all those
> branches.
Ah. Well. So it turns out that this patch causes any branch other
than CVS HEAD to not compile, because select_perl_context() was only
added to the tree on January 26th. And on CVS HEAD, the OP's test
case doesn't crash.
CREATE LANGUAGE 'plperl';
CREATE LANGUAGE 'plperlu';
CREATE OR REPLACE FUNCTION test_one() RETURNS TRIGGER AS $$ $$
language 'plperlu';
CREATE OR REPLACE FUNCTION test_two() RETURNS TRIGGER AS $$ $$
language 'plperl';
CREATE OR REPLACE FUNCTION test_two() RETURNS TRIGGER AS $$ $$
language 'plperl';
Not sure where to go from here. The prerequisite patch ("Various
small improvements and cleanups for PL/Perl") is not suitable for
backpatching, so I think someone needs to prepare a cut-down patch
that addresses this issue in a more surgical fashion. Also, would
like to understand why the test case fails to fail on CVS HEAD.
...Robert