Yes, the correct order would be
IGAZ
IGAZSÁG
IGAZU

IGAZ              (4 charater word)
IGAZU           (5 charater word, 4th is Z and 5th is U)
IGAZSÁG      (7 charater word  4th is Z and 5th is S which is before U in our 
ABC) 
Here to think that 4th character is ZS is incorrect.

Try:
CICA            (4 character word, 1st is C, 2nd is I)
CUKOR        (5 character word, 1st is C, 2nd is U, U following I in ABC)
CSIGA          (4 character word, 1st is CS, 2nd is I,   CS is following C in 
ABC, so the 2nd character doesn't matter here)

On my 3.0 DB:
select 'CICA' from rdb$database
union all
select 'CUKOR' from rdb$database
union all
select 'CSIGA' from rdb$database
order by 1 COLLATE PXW_HUNDC

F_1
CICA
CUKOR
CSIGA
Works fine.

On my 3.0 db:
select 'MANCS' from rdb$database
union all
select 'MANCCSAL' from rdb$database
order by 1 COLLATE PXW_HUNDC

F_1
MANCCSAL
MANCS

Not OK, but I can accept.    (MANCS, MANCSCSAL is the two word that should be 
ordered, but it is too much to know, I think.)

András

(P.S. I think you can order 100% well if you know the basic word in this cases, 
this is necessary to be able to handle the non-simple letters. (I've never 
thought about this before, Hungarian is my mother tongue, not my profession. 
:)))

-----Original Message-----
From: Adriano dos Santos Fernandes [mailto:adrian...@gmail.com] 
Sent: Saturday, November 6, 2021 2:35 PM
To: firebird-devel@lists.sourceforge.net
Subject: Re: [Firebird-devel] ODP: RFC: Fix for issue 6915

On 06/11/2021 10:08, Omacht András wrote:
> Yes, this is a huge problem. When you order you have to know CS is CS or C 
> and S.
> 
> E.g.:
> CICA
> CUKOR
> CSIGA
> is the good order, not
> CICA
> CSIGA
> CUKOR
> even though S is ahead of ABC than U because C is ahead of CS and in CSIGA CS 
> is CS, not C and S.
> 
> Our ABC is:
> A, Á, B, C, Cs, D, Dz, Dzs, E, É, F, G, Gy, H, I, Í, J, K, L, Ly, M, 
> N, Ny, O, Ó, Ö, Ő, P, Q, R, S, Sz, T, Ty, U, Ú, Ü, Ű, V, W, X, Y, Z, 
> Zs
> 
> I can't imagine how can it be solved easily. Maybe if you find double letters 
> you handled them together when you sort and you handled them separated when 
> you search.
> (Maybe we make smaller sorting mistakes by handling the possible 
> double letters together, because the suffixes are always at the end of 
> the words, and there is less chance to cause a sorting error.)
> 

So if we have IGAZ, IGAZU (a fictional word I invented, but if you have some 
word IGAZ(character > S)*, IGAZSÁG, the correct order would be this?

IGAZ
IGAZSÁG
IGAZU

Firebird (ICU) orders it as:

IGAZ
IGAZU
IGAZSÁG

Is it common to see software ordering things this way (even if incorrect)?


Adriano


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to