Re: 7.4.1 release status - Turkish Locale

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: ntufar(at)pisem(dot)net
Cc: pgsql-hackers(at)postgresql(dot)org, devrim(at)tdmsoft(dot)com
Subject: Re: 7.4.1 release status - Turkish Locale
Date: 2004-02-01 04:23:04
Message-ID: 11795.1075609384@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

"Nicolai Tufar" <ntufar(at)pisem(dot)net> writes:
>> We might think that the Turkish-locale problem Devrim Gunduz pointed out
>> is a must-fix, too. But I'm not convinced yet what to do about it.

> Here is a first try to fix what Devrim Gunduz talked about.

I still don't much like having a locale-specific wart in the parser
(and the code you give could not work anyway --- for starters, the
first argument of setlocale is not a pointer).

A possible compromise is to apply ASCII downcasing (same as in
keywords.c) for 7-bit-ASCII characters, and apply tolower() only
for character codes above 127. In other words

unsigned char ch = (unsigned char) ident[i];

if (ch >= 'A' && ch <= 'Z')
ch += 'a' - 'A';
else if (ch > 127 && isupper(ch))
ch = tolower(ch);
ident[i] = (char) ch;

In reasonably sane locales this will have the same effects as currently,
while in unsane locales it will ensure that basic-ASCII identifiers are
treated the way we want.

Comments?

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2004-02-01 06:31:27 Re: Make length(char(n)) return 'true' length
Previous Message Joe Conway 2004-02-01 04:07:38 Re: [HACKERS] v7.4.1 text_position() patch