diff options
| author | Jeff Davis <jdavis@postgresql.org> | 2025-11-26 10:04:32 -0800 |
|---|---|---|
| committer | Jeff Davis <jdavis@postgresql.org> | 2025-11-26 10:04:32 -0800 |
| commit | ec4997a9d733e91b614d0c2f3e6445cc2905fd16 (patch) | |
| tree | 01a12d2f10470c374c9dbeb4409f1c8df5a2479b | |
| parent | 2dd506b859cfacf8afaae81256ddec8cca0c0d6f (diff) | |
Inline pg_ascii_tolower() and pg_ascii_toupper().
Discussion: https://postgr.es/m/450ceb6260cad30d7afdf155d991a9caafee7c0d.camel@j-davis.com
Reviewed-by: Chao Li <li.evan.chao@gmail.com>
| -rw-r--r-- | src/include/port.h | 25 | ||||
| -rw-r--r-- | src/port/pgstrcasecmp.c | 26 |
2 files changed, 23 insertions, 28 deletions
diff --git a/src/include/port.h b/src/include/port.h index 3964d3b1293..159c2bcd7e3 100644 --- a/src/include/port.h +++ b/src/include/port.h @@ -169,8 +169,29 @@ extern int pg_strcasecmp(const char *s1, const char *s2); extern int pg_strncasecmp(const char *s1, const char *s2, size_t n); extern unsigned char pg_toupper(unsigned char ch); extern unsigned char pg_tolower(unsigned char ch); -extern unsigned char pg_ascii_toupper(unsigned char ch); -extern unsigned char pg_ascii_tolower(unsigned char ch); + +/* + * Fold a character to upper case, following C/POSIX locale rules. + */ +static inline unsigned char +pg_ascii_toupper(unsigned char ch) +{ + if (ch >= 'a' && ch <= 'z') + ch += 'A' - 'a'; + return ch; +} + +/* + * Fold a character to lower case, following C/POSIX locale rules. + */ +static inline unsigned char +pg_ascii_tolower(unsigned char ch) +{ + if (ch >= 'A' && ch <= 'Z') + ch += 'a' - 'A'; + return ch; +} + /* * Beginning in v12, we always replace snprintf() and friends with our own diff --git a/src/port/pgstrcasecmp.c b/src/port/pgstrcasecmp.c index ec2b3a75c3d..17e93180381 100644 --- a/src/port/pgstrcasecmp.c +++ b/src/port/pgstrcasecmp.c @@ -13,10 +13,6 @@ * * NB: this code should match downcase_truncate_identifier() in scansup.c. * - * We also provide strict ASCII-only case conversion functions, which can - * be used to implement C/POSIX case folding semantics no matter what the - * C library thinks the locale is. - * * * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group * @@ -127,25 +123,3 @@ pg_tolower(unsigned char ch) ch = tolower(ch); return ch; } - -/* - * Fold a character to upper case, following C/POSIX locale rules. - */ -unsigned char -pg_ascii_toupper(unsigned char ch) -{ - if (ch >= 'a' && ch <= 'z') - ch += 'A' - 'a'; - return ch; -} - -/* - * Fold a character to lower case, following C/POSIX locale rules. - */ -unsigned char -pg_ascii_tolower(unsigned char ch) -{ - if (ch >= 'A' && ch <= 'Z') - ch += 'a' - 'A'; - return ch; -} |
