• T
    Fix char2wchar/wchar2char to support collations properly. · 2ab0796d
    Tom Lane 提交于
    These functions should take a pg_locale_t, not a collation OID, and should
    call mbstowcs_l/wcstombs_l where available.  Where those functions are not
    available, temporarily select the correct locale with uselocale().
    
    This change removes the bogus assumption that all locales selectable in
    a given database have the same wide-character conversion method; in
    particular, the collate.linux.utf8 regression test now passes with
    LC_CTYPE=C, so long as the database encoding is UTF8.
    
    I decided to move the char2wchar/wchar2char functions out of mbutils.c and
    into pg_locale.c, because they work on wchar_t not pg_wchar_t and thus
    don't really belong with the mbutils.c functions.  Keeping them where they
    were would have required importing pg_locale_t into pg_wchar.h somehow,
    which did not seem like a good plan.
    2ab0796d
configure 843.9 KB