pgsql: Fix plperl to handle non-ASCII error message texts correctly.
От | Tom Lane |
---|---|
Тема | pgsql: Fix plperl to handle non-ASCII error message texts correctly. |
Дата | |
Msg-id | E1ZgwGr-0004lw-CW@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix plperl to handle non-ASCII error message texts correctly. We were passing error message texts to croak() verbatim, which turns out not to work if the text contains non-ASCII characters; Perl mangles their encoding, as reported in bug #13638 from Michal Leinweber. To fix, convert the text into a UTF8-encoded SV first. It's hard to test this without risking failures in different database encodings; but we can follow the lead of plpython, which is already assuming that no-break space (U+00A0) has an equivalent in all encodings we care about running the regression tests in (cf commit 2dfa15de5). Back-patch to 9.1. The code is quite different in 9.0, and anyway it seems too risky to put something like this into 9.0's final minor release. Alex Hunsaker, with suggestions from Tim Bunce and Tom Lane Branch ------ REL9_5_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/a16b9b19389d1832286f4d8f259dab0d5be88856 Modified Files -------------- src/pl/plperl/SPI.xs | 2 +- src/pl/plperl/Util.xs | 2 +- src/pl/plperl/expected/plperl_elog.out | 13 ++++++++++ src/pl/plperl/expected/plperl_elog_1.out | 13 ++++++++++ src/pl/plperl/plperl.c | 12 +++++----- src/pl/plperl/plperl_helpers.h | 38 ++++++++++++++++++++++++++++++ src/pl/plperl/sql/plperl_elog.sql | 15 ++++++++++++ 7 files changed, 87 insertions(+), 8 deletions(-)
В списке pgsql-committers по дате отправления: