interval_scale not work as expected? - Mailing list pgsql-hackers

From jian he
Subject interval_scale not work as expected?
Date
Msg-id CACJufxHWW_ogDVRcCJPTjAg_AQXJPHrGDZjteGdxNhVo-etuHQ@mail.gmail.com
Whole thread Raw
Responses Re: interval_scale not work as expected?
List pgsql-hackers
Hi.

    (
        SELECT interval(0) '1 day 01:23:45.6789'
        union all
        SELECT interval(1) '1 day 01:23:45.6789'
        union all
        SELECT interval(2) '1 day 01:23:45.6789'
        union all
        SELECT interval(3) '1 day 01:23:45.6789'
        union all
        SELECT interval(4) '1 day 01:23:45.6789'
    )
    EXCEPT all
    (
        SELECT pg_catalog.interval('1 day 01:23:45.6789'::interval,2147418112)
        union all
        SELECT pg_catalog.interval('1 day 01:23:45.6789'::interval,2147418113)
        union all
        SELECT pg_catalog.interval('1 day 01:23:45.6789'::interval,2147418114)
        union all
        SELECT pg_catalog.interval('1 day 01:23:45.6789'::interval,2147418115)
        union all
        SELECT pg_catalog.interval('1 day 01:23:45.6789'::interval,2147418116)
    );

https://dbfiddle.uk/zT8OByj1
the above works even in postgres 9.6. I debugged, then found out these
magic values like 2147418112.

I thought:
SELECT pg_catalog.interval('1 day 01:23:45.6789'::interval, 0)
is same as
SELECT interval(0) '1 day 01:23:45.6789'

is this a bug in AdjustIntervalForTypmod?



pgsql-hackers by date:

Previous
From: Alexander Korotkov
Date:
Subject: Re: On login trigger: take three
Next
From: Tom Lane
Date:
Subject: Re: interval_scale not work as expected?