Re: getting 'order by' working with unicode locale? ICU? - Mailing list pgsql-hackers

From Hannu Krosing
Subject Re: getting 'order by' working with unicode locale? ICU?
Date
Msg-id 1103706191.12271.3.camel@fuji.krosing.net
Whole thread Raw
In response to Re: getting 'order by' working with unicode locale? ICU?  (Palle Girgensohn <girgen@pingpong.net>)
List pgsql-hackers
Ühel kenal päeval (laupäev, 18. detsember 2004, 02:41+0100), kirjutas
Palle Girgensohn:
>
> --On torsdag, december 16, 2004 09.20.50 +0100 Peter Eisentraut
> <peter_e@gmx.net> wrote:
>
> > Palle Girgensohn wrote:
> >> Not on FreeBSD, since collation is not implemented in unicode
> >> locales. One way would be to implement it in the OS, of course...
> >
> > Try taking the locale definition files from another system and use
> > localedef to build locale files for your local system.  The localedef
> > source files are supposed to be portable.
>
> As far as I understand, there is no code in FreeBSD to specify the
> collating order for multibyte locales. Would ot be easier to fix the OS or
> hack ICU into PostgreSQL?
>
> A bit off topic: I'm still dreaming of a way to get "order by" working with
> different locales for the same database (different clients getting
> different collation depending on their locale choice). Now this is
> hardcoded at initdb time. Is there any way this could work, ever, in
> PostgreSQL, or will I have to sort client side?

I guess you can write a function that returns something client-specific
and sort on that.

select weirdnames from namelistorder by localesort(weirdnames, 'SE');

You can even build and index on localesort(weirdnames, 'SE') to speed
things up for some queries.

And yes, I think using ICU is the right way to do it ;)

------------------
Hannu


pgsql-hackers by date:

Previous
From: Mahmoud Taghizadeh
Date:
Subject: strcoll_l an new approach for locale per column
Next
From: Richard Huxton
Date:
Subject: Re: Thoughts about updateable views