Re: Is this a BUG? Is there anyone has the same problem?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "jack" <datactrl(at)tpg(dot)com(dot)au>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Is this a BUG? Is there anyone has the same problem?
Date: 2002-04-22 16:35:11
Message-ID: 16398.1019493311@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

"jack" <datactrl(at)tpg(dot)com(dot)au> writes:
>> What locale is your database running in?

> My locale is en_AU (on Redhat 7.2)

Hmph. It seems to be a peculiarity of the locale sorting rules for
English. Using RedHat 7.2, I made a file containing 3 lines, the last
of which has one trailing blank:

[tgl(at)rh1 tgl]$ cat test
AAB
AA B
AAB

-- hmm, can't see the spaces very well, so do this:

[tgl(at)rh1 tgl]$ sed 's/ /_/g' test
AAB
AA_B
AAB_

-- Now sort under Aussie rules:

[tgl(at)rh1 tgl]$ LANG=en_AU sort test
AAB
AA B
AAB

-- uh, let's try looking to see where the spaces are:

[tgl(at)rh1 tgl]$ LANG=en_AU sort test | sed 's/ /_/g'
AAB
AA_B
AAB_

-- Not too consistent, eh? I get the same results with en_US though:

[tgl(at)rh1 tgl]$ LANG=en_US sort test | sed 's/ /_/g'
AAB
AA_B
AAB_

-- but traditional "C" locale does this:

[tgl(at)rh1 tgl]$ LANG=C sort test | sed 's/ /_/g'
AA_B
AAB
AAB_

The reason that your SQL tests reflect this is that comparisons for type
CHAR(n) remove any trailing blanks before comparing; but the result of
substr() is of type TEXT, so it assumes trailing blanks are significant.
So the data you were sorting were in the one case effectively

'AA B'
'AAB'
'BB 123'
'BB123'

and in the other case

'AA B'
'AAB '
'BB 1'
'BB12'

and the locale sort rules treat 'AAB' differently from 'AAB '.

If you think that's a bug, you can take it up with whoever maintains
Linux's locale rules. It ain't our bug though. (You might prefer
to initdb under C locale if you'd rather sort according to C rules.)

regards, tom lane

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message David Stanaway 2002-04-22 17:36:02 Re: Is this a BUG? Is there anyone has the same problem?
Previous Message jack 2002-04-22 11:36:21 Is this a BUG? Is there anyone has the same problem?