Re: [HACKERS] Patch to make Turks happy. - Mailing list pgsql-patches
From | Peter Eisentraut |
---|---|
Subject | Re: [HACKERS] Patch to make Turks happy. |
Date | |
Msg-id | Pine.LNX.4.44.0212052302390.12428-100000@localhost.localdomain Whole thread Raw |
In response to | Re: [HACKERS] Patch to make Turks happy. (Bruce Momjian <pgman@candle.pha.pa.us>) |
Responses |
Re: [HACKERS] Patch to make Turks happy.
(Bruce Momjian <pgman@candle.pha.pa.us>)
Re: [HACKERS] Patch to make Turks happy. (Bruce Momjian <pgman@candle.pha.pa.us>) Re: [HACKERS] Patch to make Turks happy. (Bruce Momjian <pgman@candle.pha.pa.us>) |
List | pgsql-patches |
Bruce Momjian writes: > I am not going to apply this patch because I think it will mess up the > handling of other locales. This patch looks OK to me. Normally, character set names should use identifier case-folding rules anyway, so seems to be a step in the right direction. Much better than saying that users of certain locales can't properly use PostgreSQL. > > > --------------------------------------------------------------------------- > > 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 > > > > -- Peter Eisentraut peter_e@gmx.net
pgsql-patches by date: