postgresql/src/include
Tom Lane 2ab0796d7a Fix char2wchar/wchar2char to support collations properly.
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.
2011-04-23 12:35:41 -04:00
..
access Make GIN and GIST pass the index collation to all their support functions. 2011-04-22 20:13:12 -04:00
bootstrap Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
catalog Avoid changing an index's indcheckxmin horizon during REINDEX. 2011-04-19 18:50:56 -04:00
commands Allow ALTER TABLE name {OF type | NOT OF}. 2011-04-20 21:38:47 -04:00
executor pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
foreign pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
lib Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
libpq pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
mb Fix char2wchar/wchar2char to support collations properly. 2011-04-23 12:35:41 -04:00
nodes Allow ALTER TABLE name {OF type | NOT OF}. 2011-04-20 21:38:47 -04:00
optimizer Clean up collation processing in prepunion.c. 2011-04-16 16:40:42 -04:00
parser Fix handling of collations in multi-row VALUES constructs. 2011-04-18 15:31:52 -04:00
port Fix char2wchar/wchar2char to support collations properly. 2011-04-23 12:35:41 -04:00
portability Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
postmaster Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
regex Teach regular expression operators to honor collations. 2011-04-10 18:03:09 -04:00
replication pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
rewrite pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
snowball Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
storage pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
tcop Revise the API for GUC variable assign hooks. 2011-04-07 00:12:02 -04:00
tsearch pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
utils Fix char2wchar/wchar2char to support collations properly. 2011-04-23 12:35:41 -04:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
c.h Enable building with the Mingw64 compiler. 2011-01-30 19:56:46 -05:00
fmgr.h Pass collations to functions in FunctionCallInfoData, not FmgrInfo. 2011-04-12 19:19:24 -04:00
funcapi.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
getaddrinfo.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
getopt_long.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
Makefile Add maintainer-check target 2011-03-28 22:56:52 +03:00
miscadmin.h Code review for postmaster.pid contents changes. 2011-01-13 19:01:28 -05:00
pg_config.h.in Fix char2wchar/wchar2char to support collations properly. 2011-04-23 12:35:41 -04:00
pg_config.h.win32 Fix char2wchar/wchar2char to support collations properly. 2011-04-23 12:35:41 -04:00
pg_config_manual.h Support unlogged tables. 2010-12-29 06:48:53 -05:00
pg_trace.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
pgstat.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
pgtime.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
port.h Fix up handling of C/POSIX collations. 2011-03-20 12:44:13 -04:00
postgres.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
postgres_ext.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
postgres_fe.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
rusagestub.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
windowapi.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00