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?