[Java lista] pg order

CoL col at gear.hu
2010. Feb. 26., P, 16:43:06 CET


Hali,

On 2010.02.26. 16:31, Balázs Hollósi wrote:
> szia
>
> 2010/2/26 CoL<col at gear.hu>:
>    
>> Hali,
>>
>> [x]$ less t.txt
>> Adj egy egeret
>> Apu okolbe szorult okle vagyok
>> Disznosagok salata agyon
>> -Egeret vegyenek
>> Egyedem begyedem
>> -Emlos
>> -Ez egy negylabu
>> Ez is egy macsek
>> Ez is egy macsek
>> Fuss gepard fuss
>> -Hallatlan
>> Tibi a verengzo
>> Ugass ameddig birsz
>> -Zakkant macsek
>>
>>
>> - sort t.txt -nek nálad mi a kimenete? (hu_HU.UTF8 locale legyen beállítva)
>>      
> export LC_ALL=hu_HU.UTF-8
>
> $ sort t.txt
> Adj egy egeret
> Apu okolbe szorult okle vagyok
> Disznosagok salata agyon
> -Egeret vegyenek
> Egyedem begyedem
> -Emlos
> -Ez egy negylabu
> Ez is egy macsek
> Ez is egy macsek
> Fuss gepard fuss
> -Hallatlan
> Tibi a verengzo
> Ugass ameddig birsz
> -Zakkant macsek
>    

akkor én úgy látom, PG helyesen csinálja, a locale-nak megfelelően 
sort-olta.

>> - order by convert(title, 'UTF8', 'LATIN2'); is ezt produkálja?
>>
>>      
> select title from aaa order by convert(title::bytea, 'UTF8', 'LATIN2');
>               title
> --------------------------------
>   -Egeret vegyenek
>   -Emlos
>   -Ez egy negylabu
>   -Hallatlan
>   -Zakkant macsek
>   Adj egy egeret
>   Apu okolbe szorult okle vagyok
>   Disznosagok salata agyon
>   Egyedem begyedem
>   Ez is egy macsek
>   Ez is egy macsek
>   Fuss gepard fuss
>   Tibi a verengzo
>   Ugass ameddig birsz
> (14 rows)
>
> tok jo, de miert is? :)
>    

azért mert LATIN2-be már jó a locale nálad.

> no akkor most mar kiderult hogy latin2-re konvertalva mukodik, viszont
> ez nem megoldas, mert lehetnek utf8 karakterek. a kliens amivel
> betolom az adatot szinten utf8, nem gondolom hogy ott csuszik el
> (lehet rosszul gondolom). so what?

Szerintem nem. Tisztán látszik, hogy nálad a sort progi is "rosszúl" 
adta vissza, azaz ugyan úgy mint pg, tehát nem a pg-vel van a gond, 
hanem a locale-val a gépeiteken.

Alapból ilyen kellene legyen:
[x]$ locale
LANG=
LC_CTYPE="C"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=
[x]$ export LC_ALL=hu_HU.UTF-8
[x]$ sort t.txt
-Egeret vegyenek
-Emlos
-Ez egy negylabu
-Hallatlan
-Zakkant macsek
Adj egy egeret
Apu okolbe szorult okle vagyok
Disznosagok salata agyon
Egyedem begyedem
Ez is egy macsek
Ez is egy macsek
Fuss gepard fuss
Tibi a verengzo
Ugass ameddig birsz

Szóval én javaslok egy reconfigure locale-t, hátha az helyre teszi. Nem 
adatbázis szintű problémával állsz szemben, hanem rendszer szintű 
problémával.

C.


További információk a(z) Javalist levelezőlistáról