Re: order by query wrong result

From: Silvio Brandani <silvio(dot)brandani(at)tech(dot)sdb(dot)it>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>, "pgsql-admin(at)postgresql(dot)org" <pgsql-admin(at)postgresql(dot)org>
Subject: Re: order by query wrong result
Date: 2014-11-19 16:36:53
Message-ID: 546CC725.7000805@tech.sdb.it
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Hi,

I find this workaround:

CREATE OR REPLACE FUNCTION cleanup(text)
RETURNS text AS $$
SELECT replace(replace(replace($1, ' ','x'),'-','x'),'.','x')
$$ LANGUAGE sql;

and I get correct result :

select name
from prva
where name ilike 'savino del bene s%'
order by upper(cleanup(name));

Silvio Brandani

--

Il 19/11/2014 17:10, Tom Lane ha scritto:
> Silvio Brandani <silvio(dot)brandani(at)tech(dot)sdb(dot)it> writes:
>> Hi,
>> lc_collate
>> -------------
>> en_US.UTF-8
> en_US (and, in fact, most Linux locales other than C) uses "dictionary
> order", which ignores pretty much everything except letters in its
> first-pass comparison.
>
> You can check that it's not just Postgres being weird by feeding the
> same data through sort(1) after setting LC_COLLATE this way in its
> environment. You'll get the same results.
>
> regards, tom lane
>

--------------------------------------------------------------------------------

This message is for the recipients only. If you receive it in error, please notify the sender and delete it together with any attachments. For any further information, including our privacy policy please refer to http://www.savinodelbene.com/privacy/

--------------------------------------------------------------------------------

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Matheus de Oliveira 2014-11-19 20:07:21 Re: order by query wrong result
Previous Message Tom Lane 2014-11-19 16:10:26 Re: order by query wrong result