BUG #6270: Invalid string comparison if the string contains '+' or '-' sign.
От | Evgeniy Galkin |
---|---|
Тема | BUG #6270: Invalid string comparison if the string contains '+' or '-' sign. |
Дата | |
Msg-id | 201110251537.p9PFbxVn000209@wwwmaster.postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #6270: Invalid string comparison if the string contains '+' or '-' sign.
|
Список | pgsql-bugs |
The following bug has been logged online: Bug reference: 6270 Logged by: Evgeniy Galkin Email address: unikoid@gmail.com PostgreSQL version: 9.0.4 Operating system: GNU/Linux (Ubuntu 10.10) Description: Invalid string comparison if the string contains '+' or '-' sign. Details: I'm running postgresql 9.0.4 on GNU/Linux system. I'm trying to compare two strings which are starting with '+' and '-' signs. And there is some strange behaviour. Example: Query "SELECT '+' > '-';" returns t (true), but "SELECT '+1' > '-2';" returns f (false). And query "SELECT ascii('+') > ascii('-');" returns f as it should be, so saying that '+' > '-' is true probably is not valid result. More complex example: db=> create table tbl_tmp (a text); insert into tbl_tmp values ('+'), ('-'), ('+1'), ('+2'), ('+3'), ('-1'), ('-2'), ('-3'); select * from tbl_tmp order by a; CREATE TABLE INSERT 0 8 a ---- - + -1 +1 -2 +2 -3 +3 (8 rows) This behaviour is also appeared on postgresql 9.1.1 on ubuntu 11.10, but the same version of psql on Mac OS X Lion works as expected ("SELECT '+' > '-';" returns f and example with order by gives at first values that are starting with '+' and at last that are starting with '-' sign). So, I think that it can be GNU/Linux (maybe glibc) related bug. Sorry for probably ugly English or if it is duplication of well known issue.
В списке pgsql-bugs по дате отправления: