wrong sort order

Started by Alejandro D. Burnealmost 21 years ago6 messagesgeneral
Jump to latest
#1Alejandro D. Burne
alejandro.dburne@gmail.com

Hi, maybe there is a problem with sorting latin10? Seems to be like
spaces don't exists just sorting.

Version() ->PostgreSQL 8.0.2 on i686-redhat-linux-gnu,
compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)

SELECT nombreasociado, codigoasociado
FROM Asociados
WHERE nombreasociado LIKE 'VILLA%'
ORDER BY 1;

"VILLA CLAUDIA MARIA";2208
"VILLA CLOTILDE";2902
"VILLAFAA'E ALFREDO ";916
"VILLAFAA'E MARIA ESTER ROSA ";933
"VILLAFAA'E MARIA JULIA ";7590
"VILLAFANE OSVALDO";3548
"VILLAGGI CARLOS RAUL";1523
"VILLAGRA ILEANA";2305
"VILLAGRA MARIA EUGENIA";7310
"VILLA HORACIO E ";2106
"VILLALBA MABEL";397
"VILLALBA ROLANDO A";398
"VILLALBA SILVIA MONICA";2917
"VILLA LUIS SANTIAGO";560
"VILLA MARIA ISABEL";2687
"VILLANI LUCRECIA LILIANA";6657
"VILLANUEVA DIEGO";5888
"VILLANUEVA RICARDO NORBERTO";4608
"VILLA PABLO JOSE";2717
"VILLAR EDUARDO";399
"VILLAR ERNESTO";400
"VILLARES JOSE ANGEL";7174
"VILLAR HUGO EDUARDO";3820
"VILLAR IGNACIO JAVIER";8385
"VILLAR MANUEL ANTONIO";3821
"VILLA ROCA MIGUEL ANGEL";1698
"VILLARREAL NORBERTO";1749
"VILLA SEBASTIAN MARCELO";8159
"VILLA STELLA MARIS";7180
"VILLATA ALBERTO LUIS";7646
"VILLATA MARCELO";5973
"VILLAVICENCIO CARLOS HORACIO";7953

but if you try:

SELECT nombreasociado, codigoasociado
FROM Asociados
WHERE nombreasociado LIKE 'VILLA %'
ORDER BY 1;

"VILLA CLAUDIA MARIA";2208
"VILLA CLOTILDE";2902
"VILLA HORACIO E ";2106
"VILLA LUIS SANTIAGO";560
"VILLA MARIA ISABEL";2687
"VILLA PABLO JOSE";2717
"VILLA ROCA MIGUEL ANGEL";1698
"VILLA SEBASTIAN MARCELO";8159
"VILLA STELLA MARIS";7180

¿? any clues ¿?

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Alejandro D. Burne (#1)
Re: wrong sort order

"Alejandro D. Burne" <alejandro.dburne@gmail.com> writes:

Hi, maybe there is a problem with sorting latin10? Seems to be like
spaces don't exists just sorting.

The guys who write the locale specifications think that's a feature,
not a bug ;-)

If you don't want it, either use C locale or create your own locale
definition. (I have no idea how easy or hard the latter is.)

regards, tom lane

#3Alejandro D. Burne
alejandro.dburne@gmail.com
In reply to: Tom Lane (#2)
Re: wrong sort order

Maybe I'm wrong, but this "feature" I don't see it in any other rdbms ;-)

2005/7/2, Tom Lane <tgl@sss.pgh.pa.us>:

Show quoted text

"Alejandro D. Burne" <alejandro.dburne@gmail.com> writes:

Hi, maybe there is a problem with sorting latin10? Seems to be like
spaces don't exists just sorting.

The guys who write the locale specifications think that's a feature,
not a bug ;-)

If you don't want it, either use C locale or create your own locale
definition. (I have no idea how easy or hard the latter is.)

regards, tom lane

#4Martijn van Oosterhout
kleptog@svana.org
In reply to: Alejandro D. Burne (#1)
Re: wrong sort order

On Sat, Jul 02, 2005 at 11:28:12AM -0300, Alejandro D. Burne wrote:

Hi, maybe there is a problem with sorting latin10? Seems to be like
spaces don't exists just sorting.

It's not the encoding, it's the locale. For example, the en_US sorts in
dictionary order (ignore spaces and case).

Hope this helps,
--
Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/

Show quoted text

Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
tool for doing 5% of the work and then sitting around waiting for someone
else to do the other 95% so you can sue them.

#5Alejandro D. Burne
alejandro.dburne@gmail.com
In reply to: Martijn van Oosterhout (#4)
Re: wrong sort order

Martjin, this little example show your answer:
$ LANG=es_AR
$ export LANG
$ touch 'villa'
$ touch 'villa f'
$ touch 'villaa'
$ touch 'villat'
$ ls | sort
villa
villaa
villa f
villat

May be this is an off topic, but the question now is how to change or
find a locale that include spaces in sort order.
Thanks!!!, Alejandro.

2005/7/2, Martijn van Oosterhout <kleptog@svana.org>:

Show quoted text

On Sat, Jul 02, 2005 at 11:28:12AM -0300, Alejandro D. Burne wrote:

Hi, maybe there is a problem with sorting latin10? Seems to be like
spaces don't exists just sorting.

It's not the encoding, it's the locale. For example, the en_US sorts in
dictionary order (ignore spaces and case).

Hope this helps,
--

#6Alvaro Herrera
alvherre@surnet.cl
In reply to: Alejandro D. Burne (#5)
Re: wrong sort order

On Mon, Jul 04, 2005 at 12:13:27PM -0300, Alejandro D. Burne wrote:

May be this is an off topic, but the question now is how to change or
find a locale that include spaces in sort order.

You can hack the locale definitions from the GNU C library. Start by
getting the source and reading it -- it's far from a trivial task.

Or you can use the C locale. But you'll find "strange" behavior with �
and accented vowels.

--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"Just treat us the way you want to be treated + some extra allowance
for ignorance." (Michael Brusser)