From 3adba41a3c31132c7864a07c8cb673826da7fd64 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Sat, 7 May 2005 15:18:17 +0000
Subject: [PATCH] Add comment on C locale test for upper/lower/initcap().

---
 src/backend/utils/adt/oracle_compat.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/backend/utils/adt/oracle_compat.c b/src/backend/utils/adt/oracle_compat.c
index ee59ae60eef..d0d1fc5fecf 100644
--- a/src/backend/utils/adt/oracle_compat.c
+++ b/src/backend/utils/adt/oracle_compat.c
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *	$PostgreSQL: pgsql/src/backend/utils/adt/oracle_compat.c,v 1.59 2005/03/16 01:49:10 momjian Exp $
+ *	$PostgreSQL: pgsql/src/backend/utils/adt/oracle_compat.c,v 1.60 2005/05/07 15:18:17 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -167,7 +167,11 @@ Datum
 lower(PG_FUNCTION_ARGS)
 {
 #ifdef USE_WIDE_UPPER_LOWER
-	/* use wide char code only when max encoding length > 1 and ctype != C */
+	/*
+	 *	Use wide char code only when max encoding length > 1 and ctype != C.
+	 *	Some operating systems fail with multi-byte encodings and a C locale.
+	 *	Also, for a C locale there is no need to process as multibyte.
+	 */
 	if (pg_database_encoding_max_length() > 1 && !lc_ctype_is_c())
 	{
 		text	   *string = PG_GETARG_TEXT_P(0);
@@ -229,7 +233,11 @@ Datum
 upper(PG_FUNCTION_ARGS)
 {
 #ifdef USE_WIDE_UPPER_LOWER
-	/* use wide char code only when max encoding length > 1 and ctype != C */
+	/*
+	 *	Use wide char code only when max encoding length > 1 and ctype != C.
+	 *	Some operating systems fail with multi-byte encodings and a C locale.
+	 *	Also, for a C locale there is no need to process as multibyte.
+	 */
 	if (pg_database_encoding_max_length() > 1 && !lc_ctype_is_c())
 	{
 		text	   *string = PG_GETARG_TEXT_P(0);
@@ -294,7 +302,11 @@ Datum
 initcap(PG_FUNCTION_ARGS)
 {
 #ifdef USE_WIDE_UPPER_LOWER
-	/* use wide char code only when max encoding length > 1 and ctype != C */
+	/*
+	 *	Use wide char code only when max encoding length > 1 and ctype != C.
+	 *	Some operating systems fail with multi-byte encodings and a C locale.
+	 *	Also, for a C locale there is no need to process as multibyte.
+	 */
 	if (pg_database_encoding_max_length() > 1 && !lc_ctype_is_c())
 	{
 		text	   *string = PG_GETARG_TEXT_P(0);
-- 
GitLab