can insert timestamp value that can't be read

From: Jeff Davis <pgsql(at)j-davis(dot)com>
To: pgsql-bugs(at)postgresql(dot)org
Subject: can insert timestamp value that can't be read
Date: 2014-05-06 22:31:11
Message-ID: 1399415471.27807.49.camel@sussancws0025
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Example:

=> create table r(t timestamp);
CREATE TABLE
=> insert into r values(
timestamp '294277-01-09 00:00:00' + interval '36 hour'
);
INSERT 0 1
=> select * from r;
ERROR: timestamp out of range

(A similar case with different values exists when compiled with
--disable-integer-datetimes.)

It looks like timestamp[tz]_pl_interval() is not doing proper validation
in all paths.

Patch attached. I looked for other areas that might be affected, but
none jumped out.

The patch does not introduce any tests because I couldn't think of a
good way to test both integer and float timestamps properly.

Regards,
Jeff Davis

Attachment Content-Type Size
timestamp_validation.patch text/x-patch 3.5 KB

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Andres Freund 2014-05-06 22:41:39 Re: BUG #9635: Wal sender process is using 100% CPU
Previous Message Noah Misch 2014-05-06 19:39:52 Re: regression failure on master with --disable-integer-datetimes