В процессе написания программы, которая принимает литералы tsrange от пользователя, которые затем подключаются к различным SQL-запросам, сегодня я тестировал некоторые tsranges, чтобы увидеть, как они интерпретируются PostgreSQL 9.3.5.PostgreSQL tsrange: правильно ли для lower_inf ('(- infinity, today)' :: tsrange) false?
Это один, в частности, ведет себя странно: '(-Infinity, сегодня)' :: tsrange
Функция lower_inf говорит нижняя граница не бесконечна
test=> SELECT lower_inf('(-infinity,today)'::tsrange);
lower_inf
-----------
f
(1 row)
Еще PostgreSQL (!) сообщает, что этот tsrange содержит отметку времени, например «1000-01-01 BC». , ,
test=> SELECT '(-infinity,today)'::tsrange @> '1000-01-01 BC'::timestamp;
?column?
----------
t
(1 row)
Может ли кто-нибудь пролить свет на это?
Выглядит достаточно подозреваемый, чтобы оправдать сообщение об ошибке для меня. –
@CraigRinger: Я тоже так думал. Но, оказывается, это задокументировано. Более похоже на неудачное двойное использование термина «бесконечность». –