pgsql: Fix PL/Tcl's encoding conversion logic.

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Fix PL/Tcl's encoding conversion logic.
Дата
Msg-id E1abBXS-0006ju-Ax@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix PL/Tcl's encoding conversion logic.

PL/Tcl appears to contain logic to convert strings between the database
encoding and UTF8, which is the only encoding modern Tcl will deal with.
However, that code has been disabled since commit 034895125d648b86, which
made it "#if defined(UNICODE_CONVERSION)" and neglected to provide any way
for that symbol to become defined.  That might have been all right back
in 2001, but these days we take a dim view of allowing strings with
incorrect encoding into the database.

Remove the conditional compilation, fix warnings about signed/unsigned char
conversions, clean up assorted places that didn't bother with conversions.
(Notably, there were lots of assumptions that database table and field
names didn't need conversion...)

Add a regression test based on plpython_unicode.  It's not terribly
thorough, but better than no test at all.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/c8c7c93de8e116d802eddfd8821f8f77588aee00

Modified Files
--------------
src/pl/tcl/Makefile                   |   2 +-
src/pl/tcl/expected/pltcl_unicode.out |  45 ++++++++++++
src/pl/tcl/pltcl.c                    | 132 ++++++++++++++++------------------
src/pl/tcl/sql/pltcl_unicode.sql      |  38 ++++++++++
4 files changed, 145 insertions(+), 72 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Make PL/Tcl require Tcl 8.4 or later.
Следующее
От: Alvaro Herrera
Дата:
Сообщение: pgsql: Prefix temp data dirs with the node name