Inline pg_ascii_tolower() and pg_ascii_toupper().
authorJeff Davis <jdavis@postgresql.org>
Wed, 26 Nov 2025 18:04:32 +0000 (10:04 -0800)
committerJeff Davis <jdavis@postgresql.org>
Wed, 26 Nov 2025 18:04:32 +0000 (10:04 -0800)
Discussion: https://postgr.es/m/450ceb6260cad30d7afdf155d991a9caafee7c0d.camel@j-davis.com
Reviewed-by: Chao Li <li.evan.chao@gmail.com>
src/include/port.h
src/port/pgstrcasecmp.c

index 3964d3b12936ee5edbae67266d11196aa7c7b8fe..159c2bcd7e323e0532406f6cd27b3280c5dd540d 100644 (file)
@@ -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
index ec2b3a75c3dcd77032cbb9777961e0ed0fc50bc6..17e9318038184b574b1b82d97b85d4c40d870678 100644 (file)
  *
  * 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;
-}