Fix SetClientEncoding() to maintain a cache of previously selected encoding
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 2 Apr 2009 17:30:53 +0000 (17:30 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 2 Apr 2009 17:30:53 +0000 (17:30 +0000)
commitf13b2ae5f9093cf4b0d8b101aaa1215c378b9fbe
tree319ae61c90a5f51de058a77ac5ebbc23a00ea0a1
parent327ef57a04763346695e6c84abbf5780e8f93a1a
Fix SetClientEncoding() to maintain a cache of previously selected encoding
conversion functions.  This allows transaction rollback to revert to a
previous client_encoding setting without doing fresh catalog lookups.
I believe that this explains and fixes the recent report of "failed to commit
client_encoding" failures.

This bug is present in 8.3.x, but it doesn't seem prudent to back-patch
the fix, at least not till it's had some time for field testing in HEAD.

In passing, remove SetDefaultClientEncoding(), which was used nowhere.
src/backend/utils/mb/mbutils.c
src/include/mb/pg_wchar.h