roundoff problem in time datatype

Поиск
Список
Период
Сортировка
От Tom Lane
Тема roundoff problem in time datatype
Дата
Msg-id 501.1127669185@sss.pgh.pa.us
обсуждение исходный текст
Ответы Re: roundoff problem in time datatype  (Dennis Bjorklund <db@zigo.dhs.org>)
Re: roundoff problem in time datatype  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-hackers
Inserting into a time field with limited precision rounds off, which
is good except for this case:

regression=# select '23:59:59.9'::time(0);  time   
----------24:00:00
(1 row)

This is bad because:

regression=# select '24:00:00'::time(0);
ERROR:  date/time field value out of range: "24:00:00"

which means that data originally accepted will fail to dump and reload.

I see this behavior in all versions back to 7.3.  7.2 was even more
broken:

regression=# select '23:59:59.9'::time(0);  time   
----------00:00:00
(1 row)

I think the correct behavior has to be to check for overflow again
after rounding off.  Alternatively: why are we forbidding the value
24:00:00 anyway?  Is there a reason not to allow the hours field
to exceed 23?
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Vacuum questions...
Следующее
От: Simon Riggs
Дата:
Сообщение: Re: Releasing memory during External sorting?