Thread: date -> timestamp casting bug (integer datetimes)

date -> timestamp casting bug (integer datetimes)

From
Neil Conway
Date:
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

Re: date -> timestamp casting bug (integer datetimes)

From
Bruce Momjian
Date:
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. +

Re: date -> timestamp casting bug (integer datetimes)

From
Neil Conway
Date:
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

Re: date -> timestamp casting bug (integer datetimes)

From
Bruce Momjian
Date:
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. +

Re: date -> timestamp casting bug (integer datetimes)

From
Tom Lane
Date:
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