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?