Re: [COMMITTERS] pgsql: Force strings passed to and from plperl to be in UTF8 encoding.

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: PostgreSQL-development <pgsql-hackers@postgresql.org>, Alex Hunsaker <badalex@gmail.com>
Date: 2011-02-07T01:02:05Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Force strings passed to and from plperl to be in UTF8 encoding.





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