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?


Reply via email to