On 1/5/17, Vitaly Burovoy <vitaly.buro...@gmail.com> wrote: > On 1/4/17, Pantelis Theodosiou <yperc...@gmail.com> wrote: >> On Wed, Jan 4, 2017 at 3:03 PM, <web+postgre...@modin.io> wrote: >> >>> The following bug has been logged on the website: >>> >>> Bug reference: 14486 >>> Logged by: Per Modin >>> Email address: web+postgre...@modin.io >>> PostgreSQL version: 9.6.1 >>> Operating system: Linux 303a92173594 4.8.15-moby #1 SMP Sat Dec 17 0 >>> Description: >>> >>> Found this bug in 9.4.8, tried it in docker towards psql 9.6.1 and it's >>> in >>> there as well. A minimum working example would be as follows: >>> >>> ``` >>> postgres=# CREATE TABLE tbl AS SELECT 9223372036854 * interval '1 >>> second' >>> col; TABLE tbl; >>> SELECT 1 >>> ERROR: interval out of range >>> ``` >>> >>> ``` >>> postgres=# SELECT count(*) FROM tbl; >>> count >>> ------- >>> 1 >>> (1 row) >>> ``` >>> >>> It seems that inserting and retrieving data have different constraints. >>> As >>> you >>> can see from query 2, the data still gets inserted. >>> >>> ``` >>> postgres=# select version(); >>> version >>> ------------------------------------------------------------ >>> ------------------------------ >>> PostgreSQL 9.6.1 on x86_64-pc-linux-gnu, compiled by gcc (Debian >>> 4.9.2-10) >>> 4.9.2, 64-bit >>> (1 row) >>> ``` >>> >>> Best regards, >>> Per Modin >>> >>> >> And these work without error: >> >> postgres=# select col - 9223372036854 * interval '1 second' from tbl ; >> ?column? >> ---------- >> 00:00:00 >> (1 row) >> >> postgres=# select col from xx where col < interval '100000 year' ; >> col >> ----- >> (0 rows) >> > > Yes, it is a bug, but it is not a constraint, it is just different > internal checks. > Moreover even if a function does not raise an error, output could be wrong > (pay attention to the duplicated '-' sign) > postgres=# SELECT '-2147483647:59:59'::interval - '1s'::interval; > ?column? > -------------------- > --2147483648:00:00 > (1 row) > > I've written a patch which fixes that bug (in attachment). > Should it be registered in the CF?
Oops. Forgot to attach the patch. Fixed. -- Best regards, Vitaly Burovoy
0001-Add-check-for-overflow-to-interval-functions.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers