Patch to make Turks happy.

Поиск
Список
Период
Сортировка
От Nicolai Tufar
Тема Patch to make Turks happy.
Дата
Msg-id Pine.GSO.4.10.10212021846420.1239-100000@prana
обсуждение исходный текст
Ответы Re: [HACKERS] Patch to make Turks happy.  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-patches
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;


В списке pgsql-patches по дате отправления:

Предыдущее
От: Neil Conway
Дата:
Сообщение: documentation improvements
Следующее
От: "Michael Richards"
Дата:
Сообщение: contrib/xml patch