Re: String operators <= and >=
От | Tom Lane |
---|---|
Тема | Re: String operators <= and >= |
Дата | |
Msg-id | 13797.1077823999@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | String operators <= and >= ("Patrick Vachon" <kaleidelf@hotmail.com>) |
Список | pgsql-ports |
"Patrick Vachon" <kaleidelf@hotmail.com> writes: > We have a strange problem when searching for a string using <= and >= > operators on Solaris. > It did work with 7.3, but not with 7.3.3, 7.3.4 and 7.4.1. > The database have been initialized with locale en_US.ISO8859-1 > Have a simple table testtbl: > create table testtbl ( id int, name varchar(20)); > Insert this record: > insert into testtbl values(10, 'PEREZ'); > Now do that search: > select * from testtbl where name >= 'PERE' and name <= 'PERE\377'; I would expect this not to find PEREZ in that locale, no matter which PG version you use. Try putting the three strings in a file and sorting them with the sort(1) command-line tool --- in en_US locale you'll likely find that 'PERE\377' comes between the others. For instance, on HPUX I get: $ cat zzz PEREZ PERE PERE� $ LC_ALL=C sort zzz PERE PEREZ PERE� $ LC_ALL=en_US.iso88591 sort zzz PERE PERE� PEREZ $ My guess is that your 7.3 installation used C locale, and you failed to reproduce that setting when you installed the newer versions. regards, tom lane
В списке pgsql-ports по дате отправления: