BUG #15919: When sorting, does the result show that S > s is correct?

Started by PG Bug reporting formover 6 years ago2 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 15919
Logged by: 强 魏
Email address: 1726002692@qq.com
PostgreSQL version: 11.4
Operating system: CentOS Linux release 7.6.1810 (Core)
Description:

postgres@[local]:5433[postgres]#select * from t order by info desc;
+------+
| info |
+------+
| S |
| s |
+------+
(2 rows)

Time: 0.718 ms
postgres@[local]:5433[postgres]#select * from t order by info asc;
+------+
| info |
+------+
| s |
| S |
+------+
(2 rows)

Time: 0.789 ms
postgres@[local]:5433[postgres]#select ascii('s') AS "s",ascii('S') AS
"S";
+-----+----+
| s | S |
+-----+----+
| 115 | 83 |
+-----+----+
(1 row)

Time: 0.381 ms
postgres@[local]:5433[postgres]#show lc_collate
postgres-# ;
+-------------+
| lc_collate |
+-------------+
| en_US.UTF-8 |
+-------------+
(1 row)

Time: 0.407 ms

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: PG Bug reporting form (#1)
Re: BUG #15919: When sorting, does the result show that S > s is correct?

PG Bug reporting form <noreply@postgresql.org> writes:

postgres@[local]:5433[postgres]#select * from t order by info asc;
+------+
| info |
+------+
| s |
| S |
+------+
(2 rows)

This is the expected behavior for en_US locale, as you can easily
confirm outside of Postgres:

$ (echo s; echo S) | LANG=en_US sort
s
S

Perhaps you are confusing it with C locale?

$ (echo s; echo S) | LANG=C sort
S
s

regards, tom lane