diff options
author | Peter Eisentraut <peter@eisentraut.org> | 2025-03-28 07:13:43 +0100 |
---|---|---|
committer | Peter Eisentraut <peter@eisentraut.org> | 2025-03-28 07:13:43 +0100 |
commit | 890fc826c91f153ae8c084d3a008f91798495b13 (patch) | |
tree | 04a22ef76d8421bc08ede090e7e41547866c54e9 /src/backend/utils/adt/pg_locale_libc.c | |
parent | 474d7a1fd858d5ee138cf4504dcd93a9a3123a7d (diff) | |
download | postgresql-890fc826c91f153ae8c084d3a008f91798495b13.tar.gz postgresql-890fc826c91f153ae8c084d3a008f91798495b13.zip |
Use thread-safe strftime_l() instead of strftime().
This removes some setlocale() calls and a lot of commentary about how
dangerous that is. strftime_l() is from POSIX 2008, and on Windows we
use _wcsftime_l().
While here, adjust error message for strftime_l() failure: it does not
in practice set errno (even though POSIX says it could), so no %m.
Author: Thomas Munro <thomas.munro@gmail.com>
Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi>
Reviewed-by: Peter Eisentraut <peter@eisentraut.org>
Discussion: https://postgr.es/m/CA%2BhUKGJqVe0%2BPv9dvC9dSums_PXxGo9SWcxYAMBguWJUGbWz-A%40mail.gmail.com
Diffstat (limited to 'src/backend/utils/adt/pg_locale_libc.c')
-rw-r--r-- | src/backend/utils/adt/pg_locale_libc.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/backend/utils/adt/pg_locale_libc.c b/src/backend/utils/adt/pg_locale_libc.c index 8f9a8637897..199857e22db 100644 --- a/src/backend/utils/adt/pg_locale_libc.c +++ b/src/backend/utils/adt/pg_locale_libc.c @@ -59,7 +59,6 @@ static size_t strnxfrm_libc(char *dest, size_t destsize, extern char *get_collation_actual_version_libc(const char *collcollate); static locale_t make_libc_collator(const char *collate, const char *ctype); -static void report_newlocale_failure(const char *localename); #ifdef WIN32 static int strncoll_libc_win32_utf8(const char *arg1, ssize_t len1, @@ -801,7 +800,7 @@ strncoll_libc_win32_utf8(const char *arg1, ssize_t len1, const char *arg2, #endif /* WIN32 */ /* simple subroutine for reporting errors from newlocale() */ -static void +void report_newlocale_failure(const char *localename) { int save_errno; |