Force LC_COLLATE to C in postmaster.
Jeff Davis <jdavis@postgresql.org>
Force LC_COLLATE to C in postmaster. Avoid dependence on setlocale(). strcoll(), etc., are not called directly; all collation-sensitive calls should go through pg_locale.c and use the appropriate provider. By setting LC_COLLATE to C, we avoid accidentally depending on libc behavior when using a different provider. No behavior change in the backend, but it's possible that some extensions will be affected. Such extensions should be updated to use the pg_locale_t APIs. Discussion: https://postgr.es/m/9875f7f9-50f1-4b5d-86fc-ee8b03e8c162@eisentraut.org Reviewed-by: Peter Eisentraut <peter@eisentraut.org>
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/catalogs.sgml | modified | +1 −1 |
| doc/src/sgml/charset.sgml | modified | +1 −1 |
| doc/src/sgml/ref/create_database.sgml | modified | +23 −22 |
| doc/src/sgml/ref/createdb.sgml | modified | +2 −1 |
| src/backend/main/main.c | modified | +10 −6 |
| src/backend/utils/init/postinit.c | modified | +5 −6 |
Discussion
- Remaining dependency on setlocale() 94 messages · 2024-08-06 → 2026-01-27