Fix mapping of PostgreSQL encodings to Python encodings.
authorHeikki Linnakangas
Thu, 5 Jul 2012 18:45:24 +0000 (21:45 +0300)
committerHeikki Linnakangas
Thu, 5 Jul 2012 19:31:47 +0000 (22:31 +0300)
commit773288016d00bd72e8e2bcb5b1eec67abb2d9e00
tree11de66da62a215d726e0498b38d84edf8e426eee
parent071589cb3f6b4e259d3b87f228fd1c69b8189037
Fix mapping of PostgreSQL encodings to Python encodings.

Windows encodings, "win1252" and so forth, are named differently in Python,
like "cp1252". Also, if the PyUnicode_AsEncodedString() function call fails
for some reason, use a plain ereport(), not a PLy_elog(), to report that
error. That avoids recursion and crash, if PLy_elog() tries to call
PLyUnicode_Bytes() again.

This fixes bug reported by Asif Naeem. Backpatch down to 9.0, before that
plpython didn't even try these conversions.

Jan Urbański, with minor comment improvements by me.
src/pl/plpython/plpy_util.c