Search Postgresql Archives

Re: Collation in ORDER BY not lexicographical

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thank you all very much for your help.

Maximilian, we simplified your replacing code:

replace(replace(replace(replace(replace(replace ($1,'Ä','A'),'Ö','O'),'Ü','U'
),'ä','a'),'ö','o'),'ü','u');



to this:

translate(upper($1),'ÄÖÜ','AOU')


Paul






Am 29.09.2009 um 14:36 schrieb Maximilian Tyrtania:

am 29.09.2009 11:21 Uhr schrieb Scott Marlowe unter scott.marlowe@xxxxxxxxx :

On Tue, Sep 29, 2009 at 2:52 AM, Paul Gaspar <devlist@xxxxxxxxxxxxxxxx > wrote:
Hi!

We have big problems with collation in ORDER BY, which happens in binary
order, not alphabetic (lexicographical), like:.

PG is running on Mac OS X 10.5 and 10.6 Intel.

I seem to recall there were some problem with Mac locales at some
point being broken.  Could be you're running into that issue.

Yep, i ran into this as well. Here is my workaround: Create a function like
this:

CREATE OR REPLACE FUNCTION f_getorderbyfriendlyversion(texttoconvert text)

RETURNS text AS
$BODY$
select
replace(replace(replace(replace(replace(replace ($1,'Ä','A'),'Ö','O'),'Ü','U'
),'ä','a'),'ö','o'),'ü','u');

$BODY$

LANGUAGE 'sql' IMMUTABLE STRICT
COST 100;

ALTER FUNCTION f_getorderbyfriendlyversion(text) OWNER TO postgres;

Then create an index like this:

create index idx_personen_nachname_orderByFriendly on personen
(f_getorderbyfriendlyversion(nachname))


Now you can do:

select * from personen order by f_getorderbyfriendlyversion (p.nachname)

Seems pretty fast.

Best,

Maximilian Tyrtania

--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux