Обсуждение: Re: [COMMITTERS] pgsql: Force strings passed to and from plperl to be in UTF8 encoding.
Re: [COMMITTERS] pgsql: Force strings passed to and from plperl to be in UTF8 encoding.
От
Andrew Dunstan
Дата:
On 02/06/2011 05:31 PM, Andrew Dunstan wrote: > Force strings passed to and from plperl to be in UTF8 encoding. > > String are converted to UTF8 on the way into perl and to the > database encoding on the way back. This avoids a number of > observed anomalies, and ensures Perl a consistent view of the > world. > > Some minor code cleanups are also accomplished. > > Alex Hunsaker, reviewed by Andy Colson. This has broken the buildfarm :-( perl ppport.h reports: *** WARNING: Uses HeUTF8, which may not be portable below perl 5.11.0, even with 'ppport.h' Experimentation on a CentOS machine suggests we can cure it with this: #ifndef HeUTF8 #define HeUTF8(he) ((HeKLEN(he) == HEf_SVKEY) ? \ SvUTF8(HeKEY_sv(he)) : \ (U32)HeKUTF8(he)) #endif cheers andrew
Re: [COMMITTERS] pgsql: Force strings passed to and from plperl to be in UTF8 encoding.
От
Alex Hunsaker
Дата:
On Sun, Feb 6, 2011 at 18:02, Andrew Dunstan <andrew@dunslane.net> wrote: > > > > > > On 02/06/2011 05:31 PM, Andrew Dunstan wrote: >> >> Force strings passed to and from plperl to be in UTF8 encoding. >> >> String are converted to UTF8 on the way into perl and to the >> database encoding on the way back. This avoids a number of >> observed anomalies, and ensures Perl a consistent view of the >> world. >> >> Some minor code cleanups are also accomplished. >> >> Alex Hunsaker, reviewed by Andy Colson. > > > This has broken the buildfarm :-( Drat. > perl ppport.h reports: > > *** WARNING: Uses HeUTF8, which may not be portable below perl > 5.11.0, even with 'ppport.h' > Experimentation on a CentOS machine suggests we can cure it with this: > > #ifndef HeUTF8 > #define HeUTF8(he) ((HeKLEN(he) == HEf_SVKEY) ? \ > SvUTF8(HeKEY_sv(he)) > : \ > (U32)HeKUTF8(he)) > #endif Yeah, that should work. BTW I would have loved to add some regression tests for some of this (like the example hek2cstr states). Is there any way to do that?
Re: [COMMITTERS] pgsql: Force strings passed to and from plperl to be in UTF8 encoding.
От
Andrew Dunstan
Дата:
On 02/06/2011 09:13 PM, Alex Hunsaker wrote: > I would have loved to add some regression > tests for some of this (like the example hek2cstr states). Is there > any way to do that? > I can't think of an obvious way. Anyone else? cheers ndrew