date -> timestamp casting bug (integer datetimes)

Started by Neil Conwayalmost 19 years ago5 messagesbugs
Jump to latest
#1Neil Conway
neilc@samurai.com

When integer datetimes are in use, the legal range of the "date" type
actually exceeds that of the "timestamp" type. However, the cast from
date => timestamp fails to take this into account:

postgres=# select '01-01-5874896'::date::timestamp;
timestamp
----------------------------
29355-07-05 15:41:44.48384
(1 row)

The cast works correctly with FP-based datetimes.

Should be simple to fix, but I won't have the free cycles to do it for a
little while, so if anyone wants to take a shot at it in the meanwhile,
they are more than welcome...

-Neil

#2Bruce Momjian
bruce@momjian.us
In reply to: Neil Conway (#1)
Re: date -> timestamp casting bug (integer datetimes)

This has been saved for the 8.4 release:

http://momjian.postgresql.org/cgi-bin/pgpatches_hold

---------------------------------------------------------------------------

Neil Conway wrote:

When integer datetimes are in use, the legal range of the "date" type
actually exceeds that of the "timestamp" type. However, the cast from
date => timestamp fails to take this into account:

postgres=# select '01-01-5874896'::date::timestamp;
timestamp
----------------------------
29355-07-05 15:41:44.48384
(1 row)

The cast works correctly with FP-based datetimes.

Should be simple to fix, but I won't have the free cycles to do it for a
little while, so if anyone wants to take a shot at it in the meanwhile,
they are more than welcome...

-Neil

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://www.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

#3Neil Conway
neilc@samurai.com
In reply to: Bruce Momjian (#2)
Re: date -> timestamp casting bug (integer datetimes)

On Wed, 2007-16-05 at 11:46 -0400, Bruce Momjian wrote:

This has been saved for the 8.4 release

No, this is a bug, and should be fixed in 8.3 and likely backported. I
haven't had a chance to get to it yet, though.

-Neil

#4Bruce Momjian
bruce@momjian.us
In reply to: Neil Conway (#3)
Re: date -> timestamp casting bug (integer datetimes)

OK, moved to patches queue.

---------------------------------------------------------------------------

Neil Conway wrote:

On Wed, 2007-16-05 at 11:46 -0400, Bruce Momjian wrote:

This has been saved for the 8.4 release

No, this is a bug, and should be fixed in 8.3 and likely backported. I
haven't had a chance to get to it yet, though.

-Neil

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faq

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://www.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Neil Conway (#1)
Re: date -> timestamp casting bug (integer datetimes)

Neil Conway <neilc@samurai.com> writes:

When integer datetimes are in use, the legal range of the "date" type
actually exceeds that of the "timestamp" type. However, the cast from
date => timestamp fails to take this into account:

Fixed, but I didn't bother to back-patch it.

regards, tom lane