Locale support on Mac OS X

Lists: pgsql-general
From: Giorgio Valoti <giorgio_v(at)mac(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Locale support on Mac OS X
Date: 2004-04-16 14:41:57
Message-ID: 36126D18-8FB4-11D8-B106-00039398E21E@mac.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-general

Hi,
I'm trying to enable italian locale support on a Mac OS X host.
I run the initdb command with the following parameters (among others):
--encoding=UNICODE --locale=it_IT.UTF-8
then I created a new test database

test_locale=# \d test_sort
Table "public.test_sort"
Column | Type | Modifiers
------------+------+-----------
text_field | text |

test_locale=# select * from test_sort;
text_field
------------
a
b
c
d
e
è
é
à
A
(9 rows)

But the order by clause yields the wrong results

test_locale=# select * from test_sort order by text_field;
text_field
------------
A
a
b
c
d
e
à
è
é
(9 rows)

Further points:
- The sort command gives the same (wrong) results.
- GUI (Cocoa) applications give the expected sort.

Any clues? Should I assume that if sort does not give the expected
result, postgresql will not be different?

Thank you in advance

--
Giorgio Valoti
--------------


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Giorgio Valoti <giorgio_v(at)mac(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Locale support on Mac OS X
Date: 2004-04-16 16:11:50
Message-ID: 109.1082131910@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-general

Giorgio Valoti <giorgio_v(at)mac(dot)com> writes:
> Further points:
> - The sort command gives the same (wrong) results.
> - GUI (Cocoa) applications give the expected sort.

Hm, that's interesting.

> Any clues? Should I assume that if sort does not give the expected
> result, postgresql will not be different?

Correct. I would consider it a bug if PG did not give the same sort
order as sort(1) for the same locale setting --- they'll both ultimately
depend on what the C library's strcoll() routine does. What you need to
look into is why strcoll acts differently from your Cocoa apps. Are you
certain you are really using the same locale setting for both cases?

regards, tom lane