From: | "Geoff Tolley" <geoff(at)polimetrix(dot)com> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #4231: Interval silent seconds 32-bit wraparound when given as text |
Date: | 2008-06-09 18:19:19 |
Message-ID: | 200806091819.m59IJJE3097801@wwwmaster.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged online:
Bug reference: 4231
Logged by: Geoff Tolley
Email address: geoff(at)polimetrix(dot)com
PostgreSQL version: 8.3.1
Operating system: CentOS 4.6 x86_64 (custom-compiled Linux 2.6.24.2 kernel
unpatched from kernel.org)
Description: Interval silent seconds 32-bit wraparound when given as
text
Details:
When you make an interval by giving it a text representation of a number of
seconds, it appears to have a silent 32-bit wraparound (the example here is
from some raw SPSS data from a colleague; apparently it uses October 14th
1584 as its base so the seconds output tends to be >> 2^31):
select '1584-10-14 00:00'::timestamp + '13424373496 seconds'::interval;
?column?
---------------------
1601-11-17 21:13:28
(1 row)
select 13424373496::bigint % (2 ^ 32)::bigint;
?column?
-----------
539471608
(1 row)
select '1584-10-14 00:00'::timestamp + '539471608 seconds'::interval;
?column?
---------------------
1601-11-17 21:13:28
(1 row)
However, the error is actually raised if it's not a string:
select '1584-10-14 00:00'::timestamp + 13424373496::interval;
ERROR: cannot cast type bigint to interval
LINE 1: ...elect '1584-10-14 00:00'::timestamp + 13424373496::interval;
^
HTH,
Geoff
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2008-06-09 18:45:14 | Re: BUG #4231: Interval silent seconds 32-bit wraparound when given as text |
Previous Message | Gurgen | 2008-06-08 14:35:36 | BUG #4230: No mapping between account names and security IDs was done |