Re: Range type adaptation implemented
От | Karsten Hilbert |
---|---|
Тема | Re: Range type adaptation implemented |
Дата | |
Msg-id | 20120924095045.GB3823@hermes.hilbert.loc обсуждение исходный текст |
Ответ на | Re: Range type adaptation implemented (Karsten Hilbert <Karsten.Hilbert@gmx.net>) |
Список | psycopg |
On Mon, Sep 24, 2012 at 11:45:42AM +0200, Karsten Hilbert wrote: > > The funniest surprise I've had during the development > > was an error creating the object TextRange('#', '$') in the database. > > It should be possible as > > > > >>> ord('#'), ord('$') > > (35, 36) > > > > but PG insisted that "range lower bound must be less than or equal to > > range upper bound". Well, turns out that: > > > > postgres=# select ascii('#') < ascii('$'), '#' < '$'; > > ?column? | ?column? > > ----------+---------- > > t | f > > (1 row) > > This does not seem intuitive but is probably quite logical: > > While > > ascii('#') < ascii('$') > > eventually compares numerical values (35 and 36) the comparison > > '#' < '$' > > operates on characters the sorting order (<) of which > depends on the lcoale in use. And can thus invalidate range bounds when collation rules are changed per-query !?! Karsten -- GPG key ID E4071346 @ gpg-keyserver.de E167 67FD A291 2BEA 73BD 4537 78B9 A9F9 E407 1346
В списке psycopg по дате отправления: