Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Dec 2007 19:09:10 +0200
From:      Ismail YENIGUL <ismail@EnderUNIX.org>
To:        Ivan Voras <ivoras@freebsd.org>
Cc:        freebsd-database@freebsd.org, freebsd-questions@freebsd.org
Subject:   Re[2]: Turkish character sorting on PostgreSQL
Message-ID:  <879443695.20071222190910@EnderUNIX.org>
In-Reply-To: <fkdh2i$vsu$1@ger.gmane.org>
References:  <1605513356.20071219221424@EnderUNIX.org> <fkdh2i$vsu$1@ger.gmane.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello Ivan,

Here is the test result. It seems that the problem is on FreeBSD
(6.2) . Because =C3=B6 and =C5=9F are before then z in Turkish alphabet.

# cat a.c
#include <locale.h>

int main() {

        setlocale(LC_COLLATE, "tr_TR.ISO8859-9");
        printf("%d\n",strcoll("=C3=B6", "z"));
        printf("%d\n",strcoll("=C3=BC", "z"));
}
ftpfreebsd[~]# ./a
124
130
ftpfreebsd[~]#=20

By the way,  LC_COLLATE is link to the  ../la_LN.US-ASCII/LC_COLLATE
in  /usr/share/locale/tr_TR.ISO8859-9 directory.  Does this mean that
LC_COLLATE is missing for tr_TR.ISO8859-9 ?

# ls -al /usr/share/locale/tr_TR.ISO8859-9/
total 14
drwxr-xr-x    2 root  wheel   512 Jul  9 15:32 .
drwxr-xr-x  157 root  wheel  4096 Dec  4  2006 ..
lrwxr-xr-x    1 root  wheel    28 Jul  9 15:32 LC_COLLATE -> ../la_LN.US-AS=
CII/LC_COLLATE
lrwxr-xr-x    1 root  wheel    26 Jul  9 15:32 LC_CTYPE -> ../la_LN.US-ASCI=
I/LC_CTYPE
-r--r--r--    1 root  wheel    18 Jul  9 15:32 LC_MESSAGES
-r--r--r--    1 root  wheel    34 Jul  9 15:32 LC_MONETARY
-r--r--r--    1 root  wheel     8 Jul  9 15:32 LC_NUMERIC
-r--r--r--    1 root  wheel   352 Jul  9 15:32 LC_TIME


and there is no file spesicific  to the tr_TR.ISO8859-9 in   /usr/src/share=
/colldef/

# ls /usr/src/share/colldef/
Makefile                el_GR.ISO8859-7.src     la_LN.ISO8859-15.src    map=
.ISO8859-1           ru_RU.CP1251.src
README                  en_DK.example           la_LN.ISO8859-2.src     map=
.ISO8859-13          ru_RU.CP866.src
be_BY.CP1131.src        es_ES.ISO8859-1.src     la_LN.ISO8859-4.src     map=
.ISO8859-15          ru_RU.ISO8859-5.src
be_BY.CP1251.src        es_ES.ISO8859-15.src    la_LN.US-ASCII.src      map=
.ISO8859-2           ru_RU.KOI8-R.src
be_BY.ISO8859-5.src     et_EE.ISO8859-15.src    lt_LT.ISO8859-13.src    map=
.ISO8859-4           sl_SI.ISO8859-2.src
bg_BG.CP1251.src        hi_IN.ISCII-DEV.src     lt_LT.ISO8859-4.src     map=
.ISO8859-5           sr_YU.ISO8859-5.src
ca_ES.ISO8859-1.src     hy_AM.ARMSCII-8.src     map.ARMSCII-8           map=
.ISO8859-7           sv_SE.ISO8859-1.src
ca_ES.ISO8859-15.src    is_IS.ISO8859-1.src     map.CP1131              map=
.KOI8-R              sv_SE.ISO8859-15.src
cs_CZ.ISO8859-2.src     is_IS.ISO8859-15.src    map.CP1251              map=
.KOI8-U              uk_UA.CP1251.src
de_DE.ISO8859-1.src     kk_KZ.PT154.src         map.CP866               map=
.PT154               uk_UA.ISO8859-5.src
de_DE.ISO8859-15.src    la_LN.ISO8859-1.src     map.ISCII-DEV           pl_=
PL.ISO8859-2.src     uk_UA.KOI8-U.src


Thursday, December 20, 2007, 12:44:34 PM, you wrote:

> Ismail YENIGUL wrote:
>> Hello,
>>=20
>> I am using PostgreSQL 8.2.5 on FreeBSD 6.2. But I have a problem with
>> sorting Turkish characters. They are listed after "z" character.
>> I initialized the PostgreSQL with the following values:
>>=20
>> initdb -E UNICODE --locale=3Dtr_TR.UTF-8 and

> Unicode (UTF-8) collations (sorting) don't work on FreeBSD. You can use
> PostgreSQL 8.1 and the "ICU" patch for it.

>> initdb -E LATIN5 --locale tr_TR.ISO8859-9

> This could work, if the locale is properly defined in the system locale
> database. Try creating a small C program that sorts your strings using
> strcoll() to verify this - if the small C program works, it's a
> PostgreSQL problem.





--=20
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ http://www.enderunix.org/ismail  http://www.endersys.com.tr       +
+ EnderUNIX SDT @ Tr               Endersys Consultancy Ltd.        +
+ ismail ~ enderunix.org           ismail.yenigul ~ endersys.com.tr +
+ Volunteer, Core Team Member      Project Manager                  +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

TCP/IP ve A=C4=9F g=C3=BCvenli=C4=9Fi kitab=C4=B1n=C4=B1n 2. bask=C4=B1s=C4=
=B1 =C3=A7=C4=B1kt=C4=B1!
http://dukkan.acikakademi.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?879443695.20071222190910>