Re: [PATCHES] [HACKERS] Patch to make Turks happy.
Peter, is that patch OK for 7.3.1? I am not sure. --- Peter Eisentraut wrote: 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.origMon 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 [EMAIL PROTECTED] ---(end of broadcast)--- TIP 4: Don't 'kill -9' the postmaster -- Bruce Momjian| http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup.| Newtown Square, Pennsylvania 19073 ---(end of broadcast)--- TIP 2: you can get off all lists at once with the unregister command (send unregister YourEmailAddressHere to [EMAIL PROTECTED])
Re: [PATCHES] [HACKERS] Patch to make Turks happy.
Bruce Momjian writes: Peter, is that patch OK for 7.3.1? I am not sure. Definitely. It's a bug fix. -- Peter Eisentraut [EMAIL PROTECTED] ---(end of broadcast)--- TIP 2: you can get off all lists at once with the unregister command (send unregister YourEmailAddressHere to [EMAIL PROTECTED])
Re: [PATCHES] [HACKERS] Patch to make Turks happy.
Thanks. Applied for 7.3.1. --- Peter Eisentraut wrote: Bruce Momjian writes: Peter, is that patch OK for 7.3.1? I am not sure. Definitely. It's a bug fix. -- Peter Eisentraut [EMAIL PROTECTED] ---(end of broadcast)--- TIP 2: you can get off all lists at once with the unregister command (send unregister YourEmailAddressHere to [EMAIL PROTECTED]) -- Bruce Momjian| http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup.| Newtown Square, Pennsylvania 19073 ---(end of broadcast)--- TIP 4: Don't 'kill -9' the postmaster
Re: [PATCHES] [HACKERS] Patch to make Turks happy.
Bruce Momjian [EMAIL PROTECTED] writes: Are you 64-bit s390? The patch is for GNU/Linux on S/390 hardware. This platform is sane and it uses ASCII. Only the traditional UNIX subsystem for OS/390 uses EBCDIC. -- Florian Weimer[EMAIL PROTECTED] University of Stuttgart http://CERT.Uni-Stuttgart.DE/people/fw/ RUS-CERT fax +49-711-685-5898 ---(end of broadcast)--- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly
Re: [PATCHES] [HACKERS] Patch to make Turks happy.
Nicolai Tufar [EMAIL PROTECTED] writes: As far as I figured from the source code this function only deals with cleaning up locale names and nothing else. Since all the locale names are in plain ASCII I think it will be safe to use ASCII-only lower-case conversion. Does PostgreSQL run on the UNIX subsystem of OS/390? ;-) (EBCDIC is a bit, uhm, strange. Only the decimal digits are consecutive the rest is a big mess.) -- Florian Weimer[EMAIL PROTECTED] University of Stuttgart http://CERT.Uni-Stuttgart.DE/people/fw/ RUS-CERT fax +49-711-685-5898 ---(end of broadcast)--- TIP 6: Have you searched our list archives? http://archives.postgresql.org
Re: [PATCHES] [HACKERS] Patch to make Turks happy.
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 [EMAIL PROTECTED] ---(end of broadcast)--- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly
Re: [PATCHES] [HACKERS] Patch to make Turks happy.
OK, Peter, that helps. Thanks. I will apply it. --- Peter Eisentraut wrote: 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.origMon 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 [EMAIL PROTECTED] -- Bruce Momjian| http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup.| Newtown Square, Pennsylvania 19073 ---(end of broadcast)--- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/users-lounge/docs/faq.html
Re: [PATCHES] [HACKERS] Patch to make Turks happy.
OK, patch applied. Peter, should this appear in 7.3.1 too? --- Peter Eisentraut wrote: 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.origMon 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 [EMAIL PROTECTED] -- Bruce Momjian| http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup.| Newtown Square, Pennsylvania 19073 Index: src/backend/utils/mb/encnames.c === RCS file: /cvsroot/pgsql-server/src/backend/utils/mb/encnames.c,v retrieving revision 1.10 diff -c -c -r1.10 encnames.c *** src/backend/utils/mb/encnames.c 4 Sep 2002 20:31:31 - 1.10 --- src/backend/utils/mb/encnames.c 5 Dec 2002 23:19:40 - *** *** 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,418 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 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly