Re: Segfault from PL/Perl Returning vstring

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: "David E(dot) Wheeler" <david(at)kineticode(dot)com>
Cc: Tim Bunce <Tim(dot)Bunce(at)pobox(dot)com>, pgsql-hackers Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Segfault from PL/Perl Returning vstring
Date: 2009-12-22 05:04:39
Message-ID: 4B305367.6070301@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

David E. Wheeler wrote:
> On Dec 21, 2009, at 2:34 PM, David E. Wheeler wrote:
>
>
>> On Dec 21, 2009, at 2:13 PM, Tim Bunce wrote:
>>
>>
>>> You're using 5.8.8. In 5.10.0 $^V was changed to be an object.
>>>
>>> I'm working in that area. I'll look into it.
>>>
>> While you're at it, I have a new problem:
>>
>> CREATE OR REPLACE FUNCTION wtf(
>> expression text
>> ) RETURNS text LANGUAGE plperl AS $$
>> return "{$_[0]}";
>> $$;
>>
>> try=# select wtf('foo');
>> wtf
>> -----
>> {
>> (1 row)
>>
>> Note how I don't even get the closing "}". This does not happen with PL/PerlU. The denizens of #postgresql think that there's some sort of issue with Safe and Encode or Encode::Alias (the latter `require`s Encode in two if its methods). Can you replicate it? It's driving me absolutely batshit. I'm using Perl 5.10.2, Safe 2.20, and Encode 2.39.
>>
>
> Also, my encoding is en_US.UTF-8. I think it matter that it's UTF-8, to judge by the
>
> if (GetDatabaseEncoding() == PG_UTF8)
>
> Block in plperl.c.
>
>
>

I cannot reproduce this. I tested with perl 5.10.1 which is the latest
reported stable release at <http://www.cpan.org/src/README.html>, on an
8.4.2 UTF8 database, and with the same Safe and Encode module versions
as above.

cheers

andrew

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2009-12-22 05:40:59 Re: Backup history file should be replicated in Streaming Replication?
Previous Message Tom Lane 2009-12-22 04:46:05 Re: Streaming replication and non-blocking I/O