summaryrefslogtreecommitdiff
path: root/src/include/port.h
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2011-03-20 12:43:39 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2011-03-20 12:44:13 -0400
commit176d5bae1d636fc1e91840b12cbd04c96d638b7e (patch)
treef861d3f9d9eb2bead0cd932e7825271fb1fbc1e1 /src/include/port.h
parentc2f4ea469b52e6f7fedff651a4aa0acced873a5f (diff)
downloadpostgresql-176d5bae1d636fc1e91840b12cbd04c96d638b7e.tar.gz
Fix up handling of C/POSIX collations.
Install just one instance of the "C" and "POSIX" collations into pg_collation, rather than one per encoding. Make these instances exist and do something useful even in machines without locale_t support: to wit, it's now possible to force comparisons and case-folding functions to use C locale in an otherwise non-C database, whether or not the platform has support for using any additional collations. Fix up severely broken upper/lower/initcap functions, too: the C/POSIX fastpath now does what it is supposed to, and non-default collations are handled correctly in single-byte database encodings. Merge the two separate collation hashtables that were being maintained in pg_locale.c, and be more wary of the possibility that we fail partway through filling a cache entry.
Diffstat (limited to 'src/include/port.h')
-rw-r--r--src/include/port.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/include/port.h b/src/include/port.h
index 9d08b392ce..1116a92fd1 100644
--- a/src/include/port.h
+++ b/src/include/port.h
@@ -155,6 +155,8 @@ 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);
#ifdef USE_REPL_SNPRINTF