[postgres] Неправильная сортировка

zya369

субж :

dmitri=# CREATE TEMP TABLE q(i text);
CREATE TABLE
dmitri=# insert into q values('z');
INSERT 14116749 1
dmitri=# insert into q values('.z');
INSERT 14116750 1
dmitri=# insert into q values('.q');
INSERT 14116751 1
dmitri=# insert into q values('q');
INSERT 14116752 1
dmitri=# insert into q values('.');
INSERT 14116753 1
dmitri=# select * from q order by i;
i
----
.
q
.q
z
.z
(5 rows)
кто-нить сталкивался с таким?
как заставить постргес сортровать правильно?

skvoria

У тебя че-то с локалью.
rusmarket=> CREATE TEMP TABLE q(i text);
CREATE TABLE
rusmarket=> insert into q values('z');
INSERT 177158234 1
rusmarket=> insert into q values('.z');
INSERT 177158297 1
rusmarket=> insert into q values('.q');
INSERT 177158350 1
rusmarket=>
rusmarket=> insert into q values('q');
INSERT 177158413 1
rusmarket=> insert into q values('.');
INSERT 177158450 1
rusmarket=> select * from q order by i;
i
----
.
.q
.z
q
z
Какая система стоит на машине?

zya369

locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
uname -a
Linux 2.6.7 Thu Aug 12 19:10:37 MSD 2004 i686 i686 i386 GNU/Linux

zya369

да, маза...
это с локолью баг :


[ asuuis]$ cat q
.
.z
q
z
.q
[ asuuis]$ cat q | sort
.
q
.q
z
.z
в чем тут маза?

artimon

~> export LC_COLLATE=C
~> cat a.txt | sort
.
.q
.z
q
z
~>

zya369

thanxs
Оставить комментарий
Имя или ник:
Комментарий: