Обсуждение: BUG #1027: incorrect result from 'order by'

Поиск
Список
Период
Сортировка

BUG #1027: incorrect result from 'order by'

От
"PostgreSQL Bugs List"
Дата:
The following bug has been logged online:

Bug reference:      1027
Logged by:          William H Copson

Email address:      copson@u.arizona.edu

PostgreSQL version: 7.5 Dev

Operating system:   Redhat 7.2 (highly modified)

Description:        incorrect result from 'order by'

Details:

The following:

drop table tst;
create table tst (
name varchar(25));
insert into tst values ('LEE,ADAM');
insert into tst values ('LEEBERMAN,JOHN');
insert into tst values ('LEE,RALPH');
select name from tst order by name;

Produces the following output:

DROP TABLE
CREATE TABLE
INSERT 3307587 1
INSERT 3307588 1
INSERT 3307589 1
      name
----------------
 LEE,ADAM
 LEEBERMAN,JOHN
 LEE,RALPH
(3 rows)

Expected output:
      name
----------------
 LEE,ADAM
 LEE,RALPH
 LEEBERMAN,JOHN
(3 rows)

I have tried databases with SQL_ASCII, LATIN1 and LATIN2
encoding with the same result.
From this small example and others involving an employee
table (80K+ records) it appears that the comma is being
parsed out prior to the sort (i.e. 'LEEB' sorts after
'LEEA' and before 'LEER').

Re: BUG #1027: incorrect result from 'order by'

От
Tom Lane
Дата:
"PostgreSQL Bugs List" <pgsql-bugs@postgresql.org> writes:
> Description:        incorrect result from 'order by'

You initdb'd in the wrong locale.  You are expecting sort order as in
C locale, but that isn't the default locale setting in recent Red Hat
releases --- en_US is probably what you're using, and that result is
correct according to en_US.  (If you don't believe me, try it with
"sort".)

> I have tried databases with SQL_ASCII, LATIN1 and LATIN2
> encoding with the same result.

Database encoding doesn't affect this.  You'll need to re-initdb
with the desired locale environment.

            regards, tom lane