Re: BUG #6743: BETWEEN operator does not work for char(1)
От | Tom Lane |
---|---|
Тема | Re: BUG #6743: BETWEEN operator does not work for char(1) |
Дата | |
Msg-id | 20880.1342708387@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | BUG #6743: BETWEEN operator does not work for char(1) (spatarel1@yahoo.com) |
Список | pgsql-bugs |
spatarel1@yahoo.com writes: > I use "UTF8" charset and "Romania, Romanian" locale. > I came across this as I wanted to test if a symbol was a letter: > SELECT 'a' BETWEEN 'a' AND 'z'; -- true > SELECT 'z' BETWEEN 'a' AND 'z'; -- true > SELECT 'A' BETWEEN 'a' AND 'z'; -- true > SELECT 'Z' BETWEEN 'a' AND 'z'; -- false (!) > SELECT 'a' BETWEEN 'A' AND 'Z'; -- false (!) > SELECT 'z' BETWEEN 'A' AND 'Z'; -- true > SELECT 'A' BETWEEN 'A' AND 'Z'; -- true > SELECT 'Z' BETWEEN 'A' AND 'Z'; -- true > It seems that the intent is for the comparison to be case-insensitive, but > in some limit-cases it fails. I dunno exactly what sorting rule is implemented by Windows' Romanian locale, but these examples are consistent with the theory that the sort order is like aAbBcC ... zZ. In any case, you need to complain to Microsoft if you don't like the locale's sort order. We just do what the platform's strcoll() function tells us to. regards, tom lane
В списке pgsql-bugs по дате отправления: