roundoff problem in time datatype - Mailing list pgsql-hackers

From Tom Lane
Subject roundoff problem in time datatype
Date
Msg-id 501.1127669185@sss.pgh.pa.us
Whole thread Raw
Responses Re: roundoff problem in time datatype
Re: roundoff problem in time datatype
List 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 by date:

Previous
From: Tom Lane
Date:
Subject: Re: Vacuum questions...
Next
From: Simon Riggs
Date:
Subject: Re: Releasing memory during External sorting?