Re: Patch to make Turks happy. - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Patch to make Turks happy.
Date
Msg-id 200212050618.gB56IkZ29683@candle.pha.pa.us
Whole thread Raw
In response to Patch to make Turks happy.  (Nicolai Tufar <ntufar@apb.com.tr>)
Responses Re: [PATCHES] Patch to make Turks happy.  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-hackers
I am not going to apply this patch because I think it will mess up the
handling of other locales.


---------------------------------------------------------------------------

Nicolai Tufar wrote:
> Hi,
>
> Yet another problem with Turkish encoding. clean_encoding_name()
> in src/backend/utils/mb/encnames.c uses tolower() to convert locale
> names to lower-case. This causes errors if locale name contains
> capital "I" and current olcale is Turkish. Some examples:
>
> aaa=# \l
>       List of databases
>    Name    | Owner | Encoding
> -----------+-------+----------
>  aaa       | pgsql | LATIN5
>  bbb       | pgsql | LATIN5
>  template0 | pgsql | LATIN5
>  template1 | pgsql | LATIN5
> (4 rows)
> aaa=# CREATE DATABASE ccc ENCODING='LATIN5';
> ERROR:  LATIN5 is not a valid encoding name
> aaa=# \encoding
> SQL_ASCII
> aaa=# \encoding SQL_ASCII
> SQL_ASCII: invalid encoding name or conversion procedure not found
> aaa=# \encoding LATIN5
> LATIN5: invalid encoding name or conversion procedure not found
>
>
> Patch, is a simple change to use ASCII-only lower-case conversion
> instead of locale-dependent tolower()
>
> Best regards,
> Nic.
>
>
>
>
>
>
> *** ./src/backend/utils/mb/encnames.c.orig    Mon Dec  2 15:58:49 2002
> --- ./src/backend/utils/mb/encnames.c    Mon Dec  2 18:13:23 2002
> ***************
> *** 407,413 ****
>       for (p = key, np = newkey; *p != '\0'; p++)
>       {
>           if (isalnum((unsigned char) *p))
> !             *np++ = tolower((unsigned char) *p);
>       }
>       *np = '\0';
>       return newkey;
> --- 407,416 ----
>       for (p = key, np = newkey; *p != '\0'; p++)
>       {
>           if (isalnum((unsigned char) *p))
> !             if (*p >= 'A' && *p <= 'Z')
> !                 *np++ = *p + 'a' - 'A';
> !             else
> !                 *np++ = *p;
>       }
>       *np = '\0';
>       return newkey;
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Compiere "embedded transactions"
Next
From: Bruce Momjian
Date:
Subject: Re: 7.4 Wishlist