Re: BUG #6642: Spanish collation fault

From: Tulio J Carrasco <tulio(dot)carrasco(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Pg Bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #6642: Spanish collation fault
Date: 2012-05-17 00:55:49
Message-ID: CAFsvbVCz+sWanXP=-RJuON44P1E4mSfU8sSH9djUpgybbrLTwQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Thank you very much Álvaro,

As far as I understood from someone who knows about ;) "...the SQL
standard indicates to order according the first column and consider the
second column only for those records which first column has identical order
values..."

The bug I refer to is that first column is FINALLY ordered for character
value -not the order value which the collation requests.

"León", "leon", "leOn" has identical order values: none of them weights
more for Spanish collation and PG is not working according it if PG makes a
"second pass" that ignores collation and reorders by its character value.
Best Regards

Tulio

On Wed, May 16, 2012 at 2:20 PM, Alvaro Herrera
<alvherre(at)commandprompt(dot)com>wrote:

>
> Excerpts from tulio.carrasco's message of mar may 15 21:45:00 -0400 2012:
>
> > In Spanish every vowel has the same precedence value even with or without
> > any type of accent, so: a = á = ä = A = Á = Ä
>
> > In which due dad column has the same value it uses the mum column and if
> > they also have the same value then it should use the name column.
>
> I see your point, and it makes sense, but it just doesn't work that way.
>
> The way it works is that it goes over the first column and does the two
> passes (first ignoring accents, second considering them) over it using
> the collating rules you describe; and once that is complete, it goes to
> look at the second column. I don't think it's possible at all to
> implement what you suggest, which is to make the first pass over all the
> columns and then the second pass over all the columns.
>
> I didn't try, but if you were to do an ORDER BY dad || ' ' || mum ' ' ||
> name
> I think it should do what you want. (Not really sure the spaces are
> necessary). Because then you're sorting on a single string and it can
> do the first pass on the whole thing and then the second pass.
>
> --
> Álvaro Herrera <alvherre(at)commandprompt(dot)com>
> The PostgreSQL Company - Command Prompt, Inc.
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
>

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Karthik Ramasamy S 2012-05-17 06:22:03 Problem in connecting database after machine-restart !in both admin-rights enabled/disabled machines!
Previous Message Tom Lane 2012-05-17 00:04:18 Re: BUG #6644: Query give wrong results when 'is not null' is applied in where clause