Skip site navigation (1) Skip section navigation (2)

Re: [PATCHES] Patch to make Turks happy.

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: Nicolai Tufar <ntufar(at)apb(dot)com(dot)tr>,<pgsql-hackers(at)postgresql(dot)org>, <pgsql-patches(at)postgresql(dot)org>
Subject: Re: [PATCHES] Patch to make Turks happy.
Date: 2002-12-05 23:21:17
Message-ID: Pine.LNX.4.44.0212052302390.12428-100000@localhost.localdomain (view raw or flat)
Thread:
Lists: pgsql-hackerspgsql-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(at)gmx(dot)net




In response to

Responses

pgsql-hackers by date

Next:From: Peter EisentrautDate: 2002-12-05 23:21:34
Subject: Re: PQnotifies() in 7.3 broken?
Previous:From: Bruce MomjianDate: 2002-12-05 23:20:17
Subject: Re: [PATCHES] Patch to make Turks happy.

pgsql-patches by date

Next:From: Rod TaylorDate: 2002-12-06 03:02:23
Subject: Truncate doc fix
Previous:From: Bruce MomjianDate: 2002-12-05 23:20:17
Subject: Re: [PATCHES] Patch to make Turks happy.

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group