Re: [HACKERS] BUG #2683: spi_exec_query in plperl returns

From: "Andrew Dunstan" <andrew(at)dunslane(dot)net>
To: pgsql-hackers(at)postgresql(dot)org
Cc: "Vitali Stupin" <vitali(dot)stupin(at)ria(dot)ee>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: [HACKERS] BUG #2683: spi_exec_query in plperl returns
Date: 2006-10-15 21:50:15
Message-ID: 2202.24.211.165.134.1160949015.squirrel@www.dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

Tom Lane wrote:
> I wrote:
>> It looks to me like basically everywhere in plperl.c that does newSVpv()
>> should follow it with
>>
>> #if PERL_BCDVERSION >= 0x5006000L
>> if (GetDatabaseEncoding() == PG_UTF8)
>> SvUTF8_on(sv);
>> #endif
>
> Experimentation proved that this was insufficient to fix Vitali's
> problem --- the string he's unhappy about is actually a hash key entry,
> and there's no documented way to mark the second argument of hv_store()
> as being a UTF-8 string. Some digging in the Perl source code found
> that since at least Perl 5.8.0, hv_fetch and hv_store recognize a
> negative key length as meaning a UTF-8 key (ick!!), so I used that hack.
> I am not sure there is any reasonable fix available in Perl 5.6.x.
>
> Attached patch applied to HEAD, but I'm not going to risk back-patching
> it without some field testing.
>

Hmm. That negative pointer hack is mighty ugly.

I am also wondering, now that it's been raised, if we need to issue a "use
utf8;" in the startup code, so that literals in the code get the right
encoding.

cheers

andrew

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message David Fetter 2006-10-15 21:52:05 Re: BUG #2683: spi_exec_query in plperl returns column names which are not marked as UTF8
Previous Message Greg Sabino Mullane 2006-10-15 21:04:31 Re: BUG #2683: spi_exec_query in plperl returns column names which are not marked as UTF8

Browse pgsql-hackers by date

  From Date Subject
Next Message David Fetter 2006-10-15 21:52:05 Re: BUG #2683: spi_exec_query in plperl returns column names which are not marked as UTF8
Previous Message Josh Berkus 2006-10-15 21:39:36 Re: Postgresql Caching