Hello. I've just discovered a very strange thing:
SELECT '1 mon'::interval = '30 days'::interval --> TRUE??? This returns TRUE (also affected when I create an unique index using an interval column). Why? I know that Postgres stores monthes, days and seconds in interval values separately. So how to make "=" to compare intervals "part-by-part" and not treat "1 mon" as "30 days"? P.S. Reproduced at least in 8.4 and 9.1.